*
[BUUCTF 2018]Online Tool 1
[BUUCTF 2018]Online Tool
代码分析:
<?php
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { //用来请求真实的ip
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR']; //nginx与客户端进行tcp连接过程中,获得客户端真实的IP地址,无法被伪造。
}
if(!isset($_GET['host'])) { host进行一个判断
highlight_file(__FILE__);
} else {
$host = $_GET['host']; // get传参
$host = escapeshellarg($host); // system执行
$host = escapeshellcmd($host); //system执行 将输入的&#;`|*?~<>^()[]{}$\、\x0A 和 \xFF之前插入一个/。' 和 " 仅在不配对儿的时候被转义,所有这些字符以及 % 和 ! 字符前面都有一个插入符号(^)
$sandbox = md5("glzjin". $_SERVER['REMOTE_ADDR']); // 进行md5加密
echo 'you are in sandbox '.$sandbox; // 这里会把文件的路劲显示出来,这样可以方便连接剑蚁
@mkdir($sandbox); //创建一个目录,成功则返回1,失败则返回0
chdir($sandbox); //将php当前目录改为$sandbox
echo system("nmap -T5 -sT -Pn --host-timeout 2 -F ".$host); // 尾 -T 时序选择,5最急速 -F 快速扫描 -sT 连接tcp扫描 -Pn 躲避防火墙
}
?>
关于函数escapeshellarg与escapeshellcmd函数漏洞的利用
考点:
1.关于函数escapeshellarg与escapeshellcmd函数漏洞的利用
2.关于nmap工具的使用
3.对于剑蚁的使用