谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

  • A+
所属分类:安全文章

作者: 圈子社区 yzddmr6

首发于圈子社区 https://www.secquan.org/Prime/1069497

本文已声明原创,恶意转载硬刚到底!

仅供技术交流,切勿非法用途!


前言#

最近D盾更新了,在某司某圈也看到了不少免杀d盾免杀狗的一句话帖子

但是基本上只要放出来不到两天时间就加入查杀全家桶.

最近一直在造各种车轮子,就想着其实可以写个脚本利用异或来 fuzz 出指定的字符,然后拼接出 assert 或者  create_function  等函数,来对抗 waf 的检测.

查杀 0级了无痕,处女座的福音!


谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

思路及实现#

###首先解决如何fuzz的问题


先讲一个离散数学中的概念叫可逆 ,异或的运算就是具有可逆性的.

具体什么意思呢,就是说若a^b=c,则有b^c=a

所以只要把需要拼凑出来的字符串 跟随机取出来的符号    异或,然后出来的结果 c  就是需要跟 b  异或的内容.

举个例子

我们来 echo 一下字符 a  跟符号 *  异或的结果

谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

是大写字母K

谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

然后把大写 跟 异或

谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

就出来了我们想要的
那么也就是


a=K^*


但是在写的过程中问题来了
很多时候异或出来的字符是不可见的小方块

谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

就需要把它编码
看了以前有一篇文章是用url编码,但是在实现过程中发现url编码也有一定概率出现不可表示的字符
那就开开心心上 hex 

最终成功拼接出来了 assert

谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

接下来就是写个字符串池子,用来存特殊符号,然后随机取出来进行异或,拼接想要的字符.

谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

把它封装成函数
可以设置需要异或的字符串长度

谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

其实也可以用中文甚至 emoji 表情来异或,但是考虑到乱码还有不同系统对表情的支持不同,就算了.

取出拼接好的 assert, 把 get 的数据传进去,就成了下面这样

谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

哈,看来可以使用啦


编辑提示:

在这里 mr6 就是菜刀密码,后面的参数 phpinfo();
就是你要执行的php命令,可以直接丢到菜刀里。



谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

接着是调用的问题,其实到了这个地步,不管你什么d盾安全狗已经认不出来函数里面写的什么意思了,但是他会根据函数的调用来检测拦截,如果这个时候直接调用的话会爆一级可疑函数.

谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

既然做免杀肯定要0级了啦

放到类里面再调用就好了

谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

接下来就是造轮子了
在脚本中为了增大waf识别的难度 类名方法名也随机化了.

使用方法#

谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

右键查看生成的源码

谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

已经保存到同目录下 1.php 里面了

谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

生成了十几个,免杀无压力~

附上过D截图

谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

最后#

脚本特点有三个#

一利用特殊符号异或达到迷惑waf的目的,并且因为每一次的拼接都是随机生成的,所以单单一个文件进了特征库也不用担心

二是利用类调用,类名函数名随机化,杀软分析起来可能跟普通的文件没有什么区别

三是没有assert eval create_function 等这些关键字,更为隐蔽.

因为是随手写的,所以代码比较糙,不过不要在意这些细节……
只是提供了一个思路,其实大马也可以像这样写个免杀模版,下一篇文章再讲吧
虽然都是随机化,也没有assert eval 这种关键字,但是用的人多了当然脚本的免杀性也失效了,可以关注我的  github :

    https://github.com/yzddmr6


以后更新的免杀脚本都会放在上面.
如果有什么讲的不对的地方还请大佬们多多包涵.

源码地址: 

https://github.com/yzddmr6/php_xor_bypass/blob/master/xor.php#


不来个star??  不来个star??  不来个star??


谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)




顺便在线等团长的 CVE-2019-0708-RCE 的exp~


谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)





欢迎关注 圈子社区官方公众号,不花一混钱,享受最新实战动态!


公益,鲜活,专业

关于圈子社区
圈子社区是一个非盈利,封闭的白帽子技术交流社区。目前成员已有近2000人,拥有业内首个自主研发的实战化靶场,体系化学习和燃爆的交流气氛带你成为真正的大佬,社区专注实战,崇尚技术,如果你也是实战派,请关注我们。
社区地址:(请使用https访问)
https://www.secquan.org

谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)



本文始发于微信公众号(Secquan圈子社区):谁能杀我?浅谈随机异或无限免杀各种WAF(d盾示例)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: