其他分享
首页 > 其他分享> > 完全从零开始的CTF之路 2020/11/10

完全从零开始的CTF之路 2020/11/10

作者:互联网

今天换个网站继续搞简单题。

题目来自ms08067实验室

 

题目:command

描述:无

思路:

 

 

 

先是一段代码审计,是一段PHP代码。

<?php
if(isset($_REQUEST[ 'ip' ])) {
    $target = trim($_REQUEST[ 'ip' ]);
    $substitutions = array(
        '&'  => '',
        ';'  => '',
        '|'  => '',
        '-'  => '',
        '$'  => '',
        '('  => '',
        ')'  => '',
        '`'  => '',
        '||' => '',
    );
    $target = str_replace( array_keys( $substitutions ), $substitutions, $target );
    $cmd = shell_exec( 'ping  -c 4 ' . $target );
        echo $target;
    echo  "<pre>{$cmd}</pre>";
}
show_source(__FILE__);

  

先是一个一个函数,接受一个$_REQUEST类型的变量。

这里百度一下,知道这玩意是$_POST、$_GET二合一版本,get和post变量它都能接受。

下面代码就是将传入的ip参数中的所有管道符和一些特殊符号用‘’替换。

最后,将替换的参数加到‘ping -c 4’ 后面当做shell指令执行。

并且输出执行结果。

很明显是一道注入题,要想办法绕过检测。

先用回送地址  http://106.52.110.188:21229/?ip=127.0.0.1 测试一下

 

 

 

没问题就是ping了4次。

接下来想办法来注入,首先它过滤了几个符号。

所以http://106.52.110.188:21229/?ip=127.0.0.1&ls或者http://106.52.110.188:21229/?ip=127.0.0.1;ls都没用。

上网百度一波,知道有个符号没过滤。

%0a 代表 换行符号

输入http://106.52.110.188:21229/?ip=127.0.0.1%0als

shell指令执行的时候就是两句:

ping -c 4 127.0.0.1

ls

 

 

 看到该文件夹下文件列表,只有一个index.php

尝试返回到上一级目录,

http://106.52.110.188:21229/?ip=127.0.0.1%0acd%20..%0als

 

 

 继续返回,

 

 还是没找到,继续返回上一级试试,

 

 看到了flag文件,不知道是文件夹还是文件,先cd进去试试.

没反应,直接cat试试。

http://106.52.110.188:21229/?ip=127.0.0.1%0acd%20../../..%0acat%20flag

 

 

到手啦

 

标签:11,10,127.0,http,ip,110.188,106.52,CTF,21229
来源: https://www.cnblogs.com/aninock/p/13960912.html