Bugku 代碼審計

extract變量覆蓋

我們看到extract函數(shù)沒有設(shè)置extract_rules,而extract默認的規(guī)則是如果有沖突則覆蓋掉已有的變量,因此我們可以構(gòu)造? 120.24.86.145:9009/1.php?shiyan=&flag=

還有另一種方法

看到file_get_contents函數(shù),我們可以通過php://input為其賦值

strcmp比較字符串

strcmp是比較字符串的函數(shù),構(gòu)造數(shù)組即可繞過

payload:120.24.86.145:9009/6.php?a[]=1

urldecode二次編碼繞過

解讀源碼

1、id不等于hackerDJ

2、傳入的id url解碼后等于hackerDJ

因為瀏覽器自身會對id解碼一次,所以我們只要傳入兩次url編碼后的hackerDJ即可

payload:120.24.86.145:9009/10.php?id=hacker%2544J

md5()函數(shù)

解讀源碼:

1、username不等于password

2、md5(username) === md5(password)

因此0e開頭的字符串不能繞過了,但是我們可以構(gòu)造數(shù)組繞過

payload:120.24.86.145:9009/18.php?username[]=a&password[]=b

數(shù)組返回NULL繞過

ereg、strops是處理字符串的函數(shù),在處理數(shù)組時會返回null,即可繞過

payload: 120.24.86.145:9009/19.php?password[]=

弱類型整數(shù)大小比較繞過

is_numeric是檢測數(shù)字及數(shù)字字符串的,因此我們只需要在我們傳進去的數(shù)字后面加入非數(shù)字字符即可繞過

payload:?120.24.86.145:9009/22.php?password=1377a

sha()函數(shù)比較繞過

解讀源碼:

1、name不等于password

2、他們的sha1值相等

sha1不能處理數(shù)組,因此構(gòu)造數(shù)組即可繞過

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

md5加密相等繞過

常見的md5比較漏洞,就不多說了

payload:?120.24.86.145:9009/13.php?a=s878926199a

十六進制與數(shù)字比較

ord()返回字符串首字母的ascii值,結(jié)合題目,傳入3735929054的十六進制即可getflag

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

變量覆蓋

這題和第一題一模一樣的,就不多說了,兩種方法任選一種都可以

ereg正則%00截斷

ereg存在%00漏洞,因此這里可以用%00繞過,而passowrd長的要小于8但是數(shù)值又要大于9999999,因此可以用科學(xué)計數(shù)法繞過

payload:http://120.24.86.145:9009/5.php?password=9e8%00*-*

strpos數(shù)組繞過

利用ereg和strops處理數(shù)組時的漏洞

payload: 120.24.86.145:9009/15.php?ctf[]=1

數(shù)字驗證正則繞過

preg_match('/^[[:graph:]]{12,}$/', $password) 即匹配password中除空格和tab鍵之外的字符12次以上,那如果我們傳進去的password長度小于12或者是數(shù)組的話,preg_match 返回的就是0,就能輸出flag

簡單的waf

要求傳入abcde,a中不能包含php,因此a不能用php://input來為其賦值了,但是可以通過遠程文件包含來為其賦值,即在自己的服務(wù)器上寫一個txt文件,e可以用php://input來賦值,然后就會看到返回hello admin

但是c和d不知道有什么作用,看到c中不能包含flag,d不能包含base64,于是猜測題目可能存在flag.php之類的,需要通過d去讀取?嘗試訪問flag.php看到flag on my head,訪問flag,發(fā)現(xiàn)會下載一個文件,里面說Please call admin to get flag,令c=flag.php會觸發(fā)他的waf,但是令c=Flag.php可以繞過,但是也沒有返回其他的東西,搖頭.gif不知道怎么操作了,希望有大佬會的話帶帶我Orz

作者水平有限,若有錯誤請指出Orz

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 新銀報到,多多指教,如有錯誤,多謝指出 extract變量覆蓋 第一次遇到extract()函數(shù),百度一波含義(回...
    yangc隨想閱讀 4,384評論 5 2
  • md5()函數(shù) 得到flag的條件是變量username和password不等,但是其經(jīng)過md5加密后相等。若經(jīng)過...
    Hf1dw閱讀 2,224評論 0 0
  • 1.extract變量覆蓋 2.strcmp比較字符串 strcmp()用法參考: 函數(shù)期望傳入的類型是字符串類...
    心飛丶閱讀 675評論 0 0
  • 我使用的是火狐瀏覽器 使用火狐瀏覽器的hackbar插件 如果有錯誤的地方希望大家多多指出,多謝多謝 WEB2 點...
    yangc隨想閱讀 54,853評論 11 16
  • WEB2 看源代碼得flag 文件上傳測試 找一張圖片上傳,截包改后綴名為.php得flag 計算題 F12修改輸...
    a2dd56f6ad89閱讀 18,644評論 0 2

友情鏈接更多精彩內(nèi)容