天天看點

BugkuCTF之代碼審計題部分(未完待續。。。。)

BugkuCTF之代碼審計題部分

第一題:

BugkuCTF之代碼審計題部分(未完待續。。。。)

分析代碼:

首先确定extract()函數的用法,以及參數:

BugkuCTF之代碼審計題部分(未完待續。。。。)
BugkuCTF之代碼審計題部分(未完待續。。。。)

了解了extract()函數就好寫了。

直接

?shiyan=&falg=
           
BugkuCTF之代碼審計題部分(未完待續。。。。)

第二題:

BugkuCTF之代碼審計題部分(未完待續。。。。)

這個也是strcmp()函數的繞過,參數傳入一個a數組

?a[]=12
           
BugkuCTF之代碼審計題部分(未完待續。。。。)

第三題:

BugkuCTF之代碼審計題部分(未完待續。。。。)

看代碼,應該是讓我們傳入一個id=hackerDJ使之擷取flag

不過又需要我們urldecode(),因為浏覽器在傳輸網址的時候已經urldecode()一次了,是以我們需要解兩次。

因為%在urlencode是%25,a是%61是以直接:

?id=h%2561ckerDJ
           
BugkuCTF之代碼審計題部分(未完待續。。。。)

第四題:

BugkuCTF之代碼審計題部分(未完待續。。。。)

因為md5()加密不能加密數組,是以直接傳入兩個數組

?username[]=123&password[]=456
           
BugkuCTF之代碼審計題部分(未完待續。。。。)

第五題:

BugkuCTF之代碼審計題部分(未完待續。。。。)

看題目也知道是數組繞過是以就直接上payload吧

?password[]=asd--
           
BugkuCTF之代碼審計題部分(未完待續。。。。)

第六題:

BugkuCTF之代碼審計題部分(未完待續。。。。)

同理也是數組繞過。

?password[]=123456
           
BugkuCTF之代碼審計題部分(未完待續。。。。)

第七題:

BugkuCTF之代碼審計題部分(未完待續。。。。)

跟md5()函數差不多吧,數組繞過。

?name[]=123&password[]=456
           
BugkuCTF之代碼審計題部分(未完待續。。。。)

第八題:

BugkuCTF之代碼審計題部分(未完待續。。。。)

這個題有點難度,既要兩個md5的變量相等又要a不等于QNKCDZO

這個怎麼辦啊!!

應該是MD5碰撞吧,使之兩個加密之後相等,加密之前不等

QNKCDZO和240610708是兩個md5加密相等的值

是以

?a=240610708
           
BugkuCTF之代碼審計題部分(未完待續。。。。)

第九題:

BugkuCTF之代碼審計題部分(未完待續。。。。)

說實話一開始我也不知道怎麼辦,直接指派錯!!

後來看題目說16進制,就直接傳入3735929054的16進制吧!

沒想到對了!!

?password=0xdeadc0de
           
BugkuCTF之代碼審計題部分(未完待續。。。。)

第十題網站炸了,無法顯示

第十一題:

BugkuCTF之代碼審計題部分(未完待續。。。。)

看題就知道是%00截斷,不過我用數組也可以直接繞過!!

?password[]=123
           
BugkuCTF之代碼審計題部分(未完待續。。。。)

第二種方法:

%00截斷:

?password[]=1%00
           
BugkuCTF之代碼審計題部分(未完待續。。。。)

第十二題:

BugkuCTF之代碼審計題部分(未完待續。。。。)

直接數組繞過:

?ctf[]=123
           
BugkuCTF之代碼審計題部分(未完待續。。。。)