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