文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php webshell 免杀入门

2023-09-02 09:31

关注

d盾、安全狗、护卫神、Sangfor WebShellKill

在线查杀

百度WEBDIR+

https://scanner.baidu.com

河马

https://www.shellpub.com

cloudwalker牧云

https://webshellchop.chaitin.cn

静态检测、动态检测、日志检查

免杀则是通过灵活运用编程语言的不同特征以及提供的参数重构木马来躲避查杀工具的查杀。还有通过加解密技术对木马程序进行加解密处理。

普通一句话木马 

直接使用eval是3级,使用 assert 是5级

 

 

——————

在蚁剑连接中,仅使用assert的payload不可连接

原因有两个:一是因为蚁剑用来探测的语句由多句PHP代码构成,但assert只能执行第一句PHP代码;二是因为探测的语句使用了echo,而assert无法执行关于echo的代码。

看到分析文章: 

关于一句话中使用的assert和eval - Article_kelp - 博客园 (cnblogs.com)

PHP版本>7 时,assert  函数进行了更新, 无法将使用字符串作为参数,而传入GET或POST的数据默认的类型就是字符串,这就导致了assert不适宜再用来直接写马。

不过下面的webshell 还是在php5环境下以 assert 函数进行测试。

——————

因为还在学习阶段,对于这些姿势可能不能对查杀工具完全免杀,但是也能降低危险级别。

主旨在学习大佬们已经用过的各种绕过姿势。达到免杀初步入门。

字符串变形

对字符串各种拼接转换,十分灵活,方法各式各样。易拓展。

这里先直接对 assert 每个字符串进行拼接。

查杀结果还是 5 级,拼接的 assert 能正常检测

 

substr() 函数

使用 substr() 函数截断

再次D盾检测,新版级别变为了 3 ,旧版级别为 4

 

 

————————

异或

新版D盾为已知后门,旧版级别为 3

————————

传参拼接

一般情况只需传入一个参数,是要执行的命令。

这里再增加一个传参,作为 assert 的拆解部分。

利用,post以下数据:

a2=ert&a1=phpinfo()

新版D盾查杀等级为 3 ,旧版为 2

 

 

strtr() 函数

对替换字符,被替换的'xjdm' 必须和替换成的 'sser' 是相同长度。

旧版D盾级别为 1 ,基本算绕过。新版为已知后门

 

 

substr_replace()函数

绕过旧版,新版为已知后门

稍微变化一下

新版旧版级别都为 3

 

substr_replace()函数和strtr() 函数都是已知后门,那如果组合一下。

新版仍为前面的 3 级,旧版为 1 

trim()函数

规定从字符串中删除哪些字符。如果不选第二个参数,则移除以下所有字符 \0 - NULL; \t - 制表符;\n - 换行;\x0B - 垂直制表符;\r - 回车;空格

D盾查杀级别为 1

 

如果是这样,让trim()函数删除空格,查杀等级还是为 4 级。

$x = trim(' assert ');

————————————

自定义函数

新版D盾和旧版扫描结果级别都为 2

 

——————————

前面都是对 assert 字符串进行操作,下面对 $_POST['a'] 进行操作。包括结合前面的,同时对 assert 和 $_POST['a'] 处理的结果。

——————————

反引号

新版D盾结果级别为 4,旧版为 2

 

 

结合前面的 substr()函数

查杀等级新版D盾变为1,旧版变为2

对assert 结合前面的 异或。

新旧版D盾查杀结果皆为1

——————————

变量覆盖

使用$$覆盖变量,这里对字符串 $_POST['a'] 进行操作

此时级别为 2

 

对 assert 结合前面的 substr()函数。

查杀等级新版D盾变为1,旧版变为2

 

对assert 结合前面的 异或。

新旧版D盾查杀结果皆为1

trim()函数结合变量覆盖

D盾等级为2

——————————

base64参数编码

利用:

a=cGhwaW5mbygp

这里效果不免杀

结合substr()函数

新版D盾查杀结果级别为 1,旧版为 4

对assert 结合前面的 异或

新旧版D盾查杀结果皆为1

————————

rot13参数编码

和前面 base64编码效果是一样的

a=cucvasb()

结合substr()函数

新版D盾查杀结果级别为 1,旧版为 4

对assert 结合前面的 异或

新旧版D盾查杀结果皆为1

————————

还有很多姿势可以利用与开发。

比如数组(一维、二维、多维)的利用。

还有各种回调函数的利用,比如回调函数 array_map() 

来源地址:https://blog.csdn.net/Goodric/article/details/132193976

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯