BugkuCTF之代码审计题部分
第一题:
分析代码:
首先确定extract()函数的用法,以及参数:
理解了extract()函数就好写了。
直接
?shiyan=&falg=
第二题:
这个也是strcmp()函数的绕过,参数传入一个a数组
?a[]=12
第三题:
看代码,应该是让我们传入一个id=hackerDJ使之获取flag
不过又需要我们urldecode(),因为浏览器在传输网址的时候已经urldecode()一次了,所以我们需要解两次。
因为%在urlencode是%25,a是%61所以直接:
?id=h%2561ckerDJ
第四题:
因为md5()加密不能加密数组,所以直接传入两个数组
?username[]=123&password[]=456
第五题:
看题目也知道是数组绕过所以就直接上payload吧
?password[]=asd--
第六题:
同理也是数组绕过。
?password[]=123456
第七题:
跟md5()函数差不多吧,数组绕过。
?name[]=123&password[]=456
第八题:
这个题有点难度,既要两个md5的变量相等又要a不等于QNKCDZO
这个怎么办啊!!
应该是MD5碰撞吧,使之两个加密之后相等,加密之前不等
QNKCDZO和240610708是两个md5加密相等的值
所以
?a=240610708
第九题:
说实话一开始我也不知道怎么办,直接赋值错!!
后来看题目说16进制,就直接传入3735929054的16进制吧!
没想到对了!!
?password=0xdeadc0de
第十题网站炸了,无法显示
第十一题:
看题就知道是%00截断,不过我用数组也可以直接绕过!!
?password[]=123
第二种方法:
%00截断:
?password[]=1%00
第十二题:
直接数组绕过:
?ctf[]=123