[网鼎杯 2020 总决赛]Game Exp
[网鼎杯 2020 总决赛]Game Exp
考点
代码审计
phar反序列化
wp
第一段 login/index.php
题目附件给了源码,跟着功能点审一下。直接访问靶机会跳转到登陆页面,地址是login/index.php
。
很明显要先注册,源码也给了注册的源码
第二段 login/register.php
上来就是一个危险类,可以代码执行。然后注册页面有个头像上传的功能,大概率是phar触发这个AnyClass
的__destruct
后面就是很正常的注册流程代码
大概流程如下:
对输入进行转义,并对密码md5加密
设置白名单,上传图片只能是正常的图片,这个对上传进行过滤的方式也可以确定大概率要phar
上传的文件最终文件名
filename
以username.extension
方式命名file_exists
检查filename
是否存在,可以触发phar
到这里思路大概就出来了,先注册一个用户,上传构造的phar文件,然后再去注册页面那里,利用注册,在username
里面传phar://***
,后面在进行拼接时会让filename
变成phar://***.extension
,再用file_exists
触发phar
思路
先生成phar文件,改名成123.gif
1.去注册,username我填的是peri0d,上传生成的gif
2.上传成功后,它的名字是peri0d.gif
,先访问一下login/peri0d.gif
,看一下有没有成功上传
3.再回到注册那,username
填phar://peri0d
,用burp抓包,在Repeater那里Get传参进行命令执行即可
最后更新于