日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BugkuCTF-WEB题web16备份是个

發(fā)布時間:2024/9/27 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BugkuCTF-WEB题web16备份是个 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

知識點

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ù)把查詢字符串解析到變量里。
實例:把查詢字符串解析到變量里:

<?php parse_str("name=Bill&age=60"); echo $name."
"; 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可以掃描出來)

備份文件:

<?php /*** Created by PhpStorm.* User: Norse* Date: 2017/8/6* Time: 20:22 */include_once "flag.php"; //包含flag.php ini_set("display_errors", 0); $str = strstr($_SERVER['REQUEST_URI'], '?');//設(shè)變量str的值為url里?后面的字符串 $str = substr($str,1);//設(shè)str為str里第一位開始后的字符串 $str = str_replace('key','',$str);//把str里的key替換成空 parse_str($str);//把str里的字符串解析為變量 echo md5($key1);//輸出md5加密的key1 echo md5($key2);//輸出md5加密的key2 if(md5($key1) == md5($key2) && $key1 !== $key2){echo $flag."取得flag"; } /* 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://American.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","PHP","Hello world!"); 返回Hello PHP! 語法:str_replace(find,replace,string,count)parse_str — 將字符串解析成多個變量,parse_str() 函數(shù)把查詢字符串解析到變量里。 實例:把查詢字符串解析到變量里: <?php parse_str("name=Bill&age=60"); echo $name."<br>"; echo $age; ?> 結(jié)果: Bill 60 */ ?>

要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)

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的BugkuCTF-WEB题web16备份是个的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。