中级CTF:VID writeup

CTF:http://106.75.26.211:1111/

提示信息:VID

1.访问页面,发现一串简单的英文

中级CTF:VID writeup

2.点击查看源代码,发现一个index.php.txt

中级CTF:VID writeup

3.访问这个文件,发现提示信息

中级CTF:VID writeup

4.从信息中发现通过get的方式传递flag1,flag2,flag3

中级CTF:VID writeup

5.访问这个zip文件,可以进行下载,发现是给的网站源文件

中级CTF:VID writeup

6.利用这个路径进行挨个访问,发现注册页面register.html和登录login.html,那么我们就开始飙车了

7.有注册那我们就先注册一个,注册成功后会自动弹到登录连接,但是你会发现,经过一万次尝试你发现还是翻车了

中级CTF:VID writeup

8.进行代码审计,发现login.php页面的代码过滤的不严谨

    中级CTF:VID writeup

    首先调用了safe_data,那我们先来到dbmysql.class.php,找到这个它

中级CTF:VID writeup

9.分析完了,那我们开始尝试注入,先对登录进行抓包,并发送到repeater方便进行重复尝试

中级CTF:VID writeup

这里username语句它会在'单引号前面加个\,就变成了admin%00',由于%00是一个特殊的字符它会被解析成/0,这里就变成了admin/0/',由于之前的代码,会把number和username里相同的替换为空,就变成了admin//',/把/给转译了,所以最后就变成了admin',这样就成功的达到目的了

10.但是这里设置了显示的位数所以需要用substr进行截取,分2次查看,然后拼接就获取到了完整的flag(把,1,32改成,31,65就可以了)



感谢各位大佬赏脸,有什么不足的地方请多多指教,谢谢!!!