我们拿到权限要做,读文件,写文件,命令执行等等,这些功能如果部署于对方waf环境的话,也会被拦截。
一个文件下载到本地之后,杀毒网站会对这个文件进行检测,有没有病毒或者木马,这个杀毒软件也会相应的警告,有一些waf已经可以监视到上传网站后门之后,检测你后续有没有敏感操作,有也会拦截。而这个绕过不仅是代码上的事情,还有代码要做的行为。绕过要从多方面考虑,这个称之为代码绕过和行为绕过,确保第一点;
目前主流的三款工具,菜刀,蚁剑,冰蝎,
还有,代码是免杀代码,没有做什么行为,然后因为链接的菜刀,菜刀的特征被识别出来了,waf也会进行拦截,
Safedog代码层手写及脚本绕过
分为三部分变量覆盖,加密混淆,异或生成
变量覆盖
一句话木马,<?php assert($_POST['caidao']);?>
为什么用assert不用@eval,因为eval太容易被检测了,其次是assert复制给其他变量比如1,再把1放到assert的位置一样可以执行出来一句话木马的效果,但是eval就不行。
这个语句也可以被安全狗检测出来一句话木马,我们该怎么绕过
代码写成这样,安全狗就检测不到了,之后在访问网站的时候加上双斜杠后门的内容
加上那个内容访问是什么意思,x传递过来就等于$a=b,而y传递过来变量就等于变$$a=y=assert,
而$a=b,
所以$a=$b=assert
测试下
可以执行命令。
然后去试试三层叠加的waf
被拦截了,但是拦截的是关键字phpinfo,并不是一句话木马,
这时候,就需要给代码修改一下,增加给base64解密
成功执行。
这种方式称之为手写的变量覆盖。
加密混淆
PHP在线加密
https://www.phpjiami.com/phpjiami.html
用这个网站去对脚本文件进行加密。
直接进行加密,然后拿这个文件去测试一下
也可以绕过安全狗和宝塔
异或生成
直接运行,会输出一个免杀马
webshell-venom-master:https://pan.baidu.com/s/1msqO2kps139NNP9ZEIAVHw 提取码:xiao
直接拿去python运行,就会生成一个免杀木马出来
结果直接复制就可以用
---先创建了一个ypfj的类,里面存在一个销毁的方法,赋值一段数值并且返回
---创建对象jpfj
---判断get传递的参数是否为空,不为空,KQUA就是解码post传递的参数mr6,否则kqua就是直接post的mr6(也就是支持base64和非base64的传参)
---对象结束后,会调用魔术方法,执行销毁方法(emmmm销毁里面的方法我看不懂,应该一个变量乘以另外一个数(这个数是十六进制表示的)(这个是一个加密和混淆的方式),但是原理是assert或者eval的变形)
---也就是说最后会调用eval方法
作者:沙漠里的鲸 https://www.bilibili.com/read/cv14841184/ 出处:bilibili
这是这个代码的运行的原因
后门加上问号id就可以用base64加密的方式提交数据。
工具指纹特征拦截解决办法
用php在线加密的网址后绕过了安全狗和宝塔,但是冰蝎连接上却看不到文件管理
原因1:冰蝎的指纹被检测到了,2是查看文件管理的数据包触发了关键字被拦截了。
看一下菜刀的请求数据包
这里有一个乱码,复制下去也没有办法base64解密,要url解密后,才能base64解密,
现在可以拿去解密了,
揭秘完就是给读取目录的,
然后应用到自己的场景查看
查看源代码
自己写的就成功了,因为他们也特定的直问。
这个功能函数可以实现其他的自然也可以,比如写入文件,就不演示了。