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