web_ping的writeup
web_ping是cc給我出的題目之一,為了降低難度,把題目的原始碼也一起放出來了。下面是原始碼:
<?php
$target = @$_REQUEST[ 'ip' ];
if(!$target){
show_source(__FILE__);
}
$target=trim($target);
$substitutions = array(
'&' => ' ',
' ' => '',
';' => ' ',
'|' => ' ',
'-' => ' ',
'$' => ' ',
'(' => ' ',
')' => ' ',
'`' => ' ',
'||' => ' ',
'<>' => ' ',
'bash' => ' ',
'>' => ' ',
'wget' => ' ',
'cat' => ' ',
'cd' => ' ',
'../' => ' ',
'/' => ' ',
'rm' => ' ',
'>>' => ' ',
'echo' => ' ',
'curl' => ' ',
'dd' => ' ',
'cp' => ' ',
);
// Remove any of the charactars in the array (blacklist).
$target = str_replace( array_keys( $substitutions ), $substitutions, $target );
// var_dump($target);
// Determine OS and execute the ping command.
if(!preg_match('/web[2-6]/i',$target))
{
if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
$cmd = shell_exec( 'ping ' . $target );
}
else {
$cmd = shell_exec( 'ping -c 1 ' . $target );
}
echo "<pre>{$cmd}</pre>";
}
?>
因為題目關聯其他方面,所以原始碼中有一些內容是無意義的,可能會誤導讀者。題目的思路應該是繞過ping命令,繼續執行其他命令來讀取flag.php中的內容,當然了,從原始碼中可以看出有些命令被過濾掉了,肯定是不能用的。
首先,傳參ip=127.0.0.1%0Als,這裡%0A是換行的意思,因為原始碼中有shell_exec()這個函式,所以可以執行linux命令,ls是一個linux命令,是把檔案都列舉出來,此時可以看到兩個檔案。
再用linux讀取檔案的命令來讀取flag.php,但是有些命令被過濾了,比如cat,不過不要緊,linux讀取檔案的命令有很多,例如:
問題又來了,讀取檔案的格式都是命令+空格+引數,空格也被過濾了,所以還要找到替代空格的字元,也有很多,例如:
1、/**/
2、括號
3、%09
所以,把url寫成
http://104.224.163.5/CTF/web_ping/?ip=127.0.0.1%0Ahead/**/flag.php
http://104.224.163.5/CTF/web_ping/?ip=127.0.0.1%0Amore()flag.php
http://104.224.163.5/CTF/web_ping/?ip=127.0.0.1%0Amore%09flag.php
這裡有一個問題,head是不能用()和%09的,我在除錯的時候發現的,cc的解釋是這樣的,head不能用括號是因為括號被過濾掉了,more可以用括號是因為括號過濾之後變成了空格,我其實還是有點不明白……讀取後的介面是這樣的:
右鍵檢視原始碼就可以找到flag:
相關文章
- 三道MISC的writeup
- SSCTF Writeup
- JCTF Writeup
- BCTF Writeup
- CoolShell解密遊戲的WriteUp解密遊戲
- HCTF writeup(web)Web
- wargame narnia writeupGAM
- 太湖杯writeup
- Alictf2014 WriteupTF2
- Wargama-leviathan WriteupGAM
- 0ctf writeup
- 360hackgame writeupGAM
- Misc_BUUCTF_WriteUp | 面具下的flag
- Hack.lu 2014 Writeup
- xss挑戰賽writeup
- CTF——WriteUp(2020招新)
- guestbook(hackme web部分writeup)Web
- CTFSHOW-WEB入門 writeupWeb
- 2020湖湘杯部分writeup
- jarvisoj phpinfo writeup及注入的變數詳解JARPHP變數
- Web_Bugku_WriteUp | 變數1Web變數
- cmseasy&內網滲透 Writeup內網
- CTF-safer-than-rot13-writeup
- 幾期『三個白帽』小競賽的writeup
- Flare-on5 Challenge6 magic -Writeup
- 無聲杯 xss 挑戰賽 writeup
- 31C3 CTF web關writeupWeb
- 【阿菜Writeup】Security Innovation Smart Contract CTF
- 三個白帽之來自星星的你(一)writeup
- [原創]看雪CTF2017第二題lelfeiCM的writeupTF2
- 網鼎杯-writeup-第二場-babyRSA
- XSS挑戰第一期Writeup
- XSS挑戰第二期 Writeup
- buuoj[ACTF_Junior_2020]Splendid_MineCraft WriteUpRaft
- [V&N2020 公開賽]easyTHeap writeup
- xctf攻防世界—Web新手練習區 writeupWeb
- 技術分享 | "錦行杯"比賽 Writeup
- 阿里雲CTF逆向題“尤拉”詳細Writeup阿里