Bugku------代碼審計

新銀報到,多多指教,如有錯誤,多謝指出

extract變量覆蓋

http://120.24.86.145:9009/1.php

第一次遇到extract()函數,百度一波含義(回到家后google被ban了):

@http://www.w3school.com.cn/php/func_array_extract.asp(來自W3school)

這樣就簡單了,直接構造payload:?shiyan=&flag,得到flag.

strcmp比較字符串

http://120.24.86.145:9009/6.php,題目崩了,flag是第一道題的

做的時候這道題目崩了,不過既然提到了strcmp,那么一定會用到數組繞過,隨便丟了一個a[]進去,flag出來了???

urldecode二次編碼繞過

http://120.24.86.145:9009/10.php

百度一波相關函數:

????????eregi()函數在一個字符串搜索指定的模式的字符串。搜索不區分大小寫。

? ? 這樣題目就簡單了:

? ? ? ? 第一關:id不能等于hackerDJ

????????第二關:$_GET[id] = urldecode($_GET[id]);

? ? ? ? 第三關 :if($_GET[id] == "hackerDJ")

? ? 這道題很豐富了我的見識,讓我感覺到一直以來我對GET函數了解的還不是很深刻。

? ? 剛開始我做這道題的時候,直接將id賦值為hackerDJ的一次url編碼,然后撲街了好久,最后多虧了題目的提示二次編碼繞過將id賦值為hackerDJ的二次url編碼,才得到flag,之后我又對題目進行了分析:

好題,好題。

md5()函數

http://120.24.86.145:9009/18.php

這道題就是使username!=password? ? &&? ? md5(username)===md5(password)

這樣就很簡單了,直接將240610708和QNKCDZO分別對上述賦值即可。

另外一種比較簡單的方法就是md5()方法無法處理數組,直接構造payload:? ?

? ? username[]=1&password[]=2即可

數組返回NULL繞過

http://120.24.86.145:9009/19.php

遇到 了熟悉的ereg函數,直接用%00截斷。

還有熟悉的strpos函數,直接用數組截斷。

構造如下payload:http://120.24.86.145:9009/19.php?password[]=%00

sha()函數比較繞過

http://120.24.86.145:9009/7.php

比較長的一道題目,emmmmm。

需要對name和password進行賦值,而且需要他們的值不等,但是sha1的值相等。

sha1()函數無法處理數組,直接構造如下payload:

? ??????http://120.24.86.145:9009/7.php?name[]=1&password[]=2

md5加密相等繞過

http://120.24.86.145:9009/13.php

這道題上面已經說過了,兩個md5加密相等的值為240610708和QNKCDZO,這里需要將a賦值為240610708直接得到flag,payload:

? ??http://120.24.86.145:9009/13.php?a=240610708

十六進制與數字比較

http://120.24.86.145:9009/20.php

又是一道老長老長的題目,瀏覽一遍程序,最后需要number==temp是才可以輸出flag ,然后我們可以對password賦值,根據題目提示,直接將password賦值為number的十六進制,然后flag出來了??(0x表示16進制)

payload:http://120.24.86.145:9009/20.php?password=0xdeadc0de

ereg正則%00截斷

http://120.24.86.145:9009/5.php

題目需要對password賦值

? ? 關卡1:if (ereg ("^[a-zA-Z0-9]+$", $_GET['password']) === FALSE)? ? ?? ? %00截斷

? ? 關卡2:strlen($_GET['password']) < 8 && $_GET['password'] > 9999999

? ? ? ? ? ? ?可以用數組繞過,并且這里為&&,前面可以用數組截斷(True),后面數組中有字母以及%,無法解析(true)。

? ? 關卡3:strpos ($_GET['password'], '-') !== FALSE)? ? ?也可以用數組繞過

? ? 最終我的payload:

? ??????????????http://120.24.86.145:9009/5.php?password[]=1%00

strpos數組繞過

http://120.24.86.145:9009/15.php

對ctf進行賦值

? ? 關卡1:if (@ereg ("^[1-9]+$", $_GET['ctf']) === FALSE)? ? 用%00截斷

? ? 關卡2:else if (strpos ($_GET['ctf'], '#biubiubiu') !== FALSE) 用數組截斷

? ? 最終我的payload:

? ??????????????http://120.24.86.145:9009/15.php?ctf[]=1%00

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 我使用的是火狐瀏覽器 使用火狐瀏覽器的hackbar插件 如果有錯誤的地方希望大家多多指出,多謝多謝 WEB2 點...
    yangc隨想閱讀 54,438評論 11 16
  • WEB2 看源代碼得flag 文件上傳測試 找一張圖片上傳,截包改后綴名為.php得flag 計算題 F12修改輸...
    a2dd56f6ad89閱讀 18,541評論 0 2
  • 簽到2 地址:來源:網絡攻防大賽 說了輸入zhimakaimen,開始輸入沒認真看,只能輸入10個數字,可是zhi...
    JasonChiu17閱讀 4,775評論 0 9
  • 題目鏈接:https://cgctf.nuptsast.com/challenges#Web 簽到題 查看網頁源...
    a2dd56f6ad89閱讀 8,259評論 0 2
  • 像我這么冷漠自律的人,卻非要變得溫暖善解人意,真是太特么辛苦我了。
    生姜27閱讀 54評論 0 0