BugkuCTF-WEB题web16备份是个
知識點
ini_set — 為一個配置選項設(shè)置值
PHP ini_set用來設(shè)置php.ini的值,在函數(shù)執(zhí)行的時候生效,腳本結(jié)束后,設(shè)置失效。無需打開php.ini文件,就能修改配置,對于虛擬空間來說,很方便
strstr — 查找字符串的首次出現(xiàn),strstr() 函數(shù)搜索字符串在另一字符串里的第一次出現(xiàn)。
實例
查找 “python” 在 “I love python!” 里的第一次出現(xiàn),并返回字符串的剩余部分:
echo strstr(“I love python!”,“python”);返回python!
$_SERVER[‘REQUEST_URI’] 這是取得當前URL的 路徑地址 比如:
http://microsoft.com/question/469321857.html?push=core&group=1
他獲得是這個路徑:question/469321857.html?push=core&group=1
substr() 函數(shù)返回字符串的一部分。
echo substr(“Hello world”,6); 返回world
語法
substr(string,start,length)
str_replace — 子字符串替換,str_replace() 函數(shù)以其他字符替換字符串里的一些字符(區(qū)分大小寫)。
echo str_replace(“world”,“python”,“Hello world!”); 返回Hello python!
語法:str_replace(find,replace,string,count)
parse_str — 將字符串解析成多個變量,parse_str() 函數(shù)把查詢字符串解析到變量里。
實例:把查詢字符串解析到變量里:
"; echo $age; ?>
結(jié)果:
Bill
60
補充:
md5(‘240610708’) 的結(jié)果是:0e462097431906509019562988736854
md5(‘QNKCDZO’) 的結(jié)果是:0e830400451993494058024219903391
PHP 是弱類型語言,在使用 == 號時,如果比較一個數(shù)字和字符串或者比較涉及到數(shù)字內(nèi)容的字符串,則字符串會被轉(zhuǎn)換為數(shù)值并且比較按照數(shù)值來進行。此規(guī)則也適和于 switch 語句。上述例子里的兩個字符串恰好以 0e 的科學記數(shù)法開頭,字符串被隱式轉(zhuǎn)換為浮點數(shù),實際上也就等效于 0×10^0 ,因此比較起來是相等的
解題流程
常用備份文件后綴:.swp,.bak
御劍掃描,發(fā)現(xiàn)index.php.bak文件,下載下來(若御劍掃描不出,可以通過dirsearch可以掃描出來)
備份文件:
要key1和key2加密后的md5值相等,但是key1和key2不相等,想到md5繞過-------傳md5值是0e開頭的字符串
構(gòu)造url:?key1=QNKCDZO&key2=s878926199a,頁面并沒有彈出flag
正確的payload:?kkeyey1=QNKCDZO&kkeyey2=s878926199a
用kkeyey而不用key的原因:
傳入的參數(shù)帶有key就會被替換為空,所以這里雙寫kkeyey來繞過,這樣kkey ey即使key替換成空了一頭一尾拼起來還是key
或者輸入http://114.67.246.176:13427/index.php?kkeyey1=QNKCDZO&kkeyey2=240610708
或者輸入?kekeyy1[]=1&kekeyy2[]=2(即null==null)
總結(jié)
以上是生活随笔為你收集整理的BugkuCTF-WEB题web16备份是个的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python callable 函数 -
- 下一篇: jq(jquery)之点击隐藏段落