• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

linux下tmp目录里很多php开头的文件

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

cd /tmp; ll -ash;

 

51M -rw------- 1 nginx nginx 51M Sep 17 09:33 php3p7FPA
51M -rw------- 1 nginx nginx 51M Sep 15 15:26 php5jlObl
43M -rw------- 1 nginx nginx 43M Sep 15 15:15 phpAHqkPv
50M -rw------- 1 nginx nginx 50M Sep 15 15:08 phpBeg7wS
88M -rw------- 1 nginx nginx 88M Sep 15 10:36 phpfDaQGu
53M -rw------- 1 nginx nginx 53M Sep 15 15:07 phpkuEiUc
122M -rw------- 1 nginx nginx 122M Sep 17 09:28 phpkx1DiL
82M -rw------- 1 nginx nginx 82M Sep 15 15:16 phpLfc4lt
42M -rw------- 1 nginx nginx 42M Sep 15 18:48 phpoYCXXK
51M -rw------- 1 nginx nginx 51M Sep 15 15:10 phpSq1fg5
62M -rw------- 1 nginx nginx 62M Sep 17 09:02 phpwvzrKE
26M -rw------- 1 nginx nginx 26M Sep 17 09:38 phpY2SevM
39M -rw------- 1 nginx nginx 39M Sep 17 09:15 phpYky45z
43M -rw------- 1 nginx nginx 43M Sep 15 15:13 phpZwgvRa

 

 

不知道是哪里来的,而且已经很久了。查看内容基本都是这样的:

[root@kermit tmp]# cat phpzpqXze
GIF89a
<%
response.Write(987651234-123498765)
strURL = Request.Servervariables("url")
intPos = InstrRev(strURL,"/")
intStrLen = len(strURL)
strFileName = Right(strURL,intStrLen-intPos)
on error resume next
set fs=Server.CreateObject("Scripting.FileSystemObject")
fs.DeleteFile(Server.MapPath(".")&"\\"&strFileName)
%>
    这是GIF89a图片头文件欺骗,是一种攻击,GIF89a图形文件是一个根据图形交换格式(GIF)89a版进行格式化之后的图形。而写到这个临时目录说明是通过上传进入到了这个目录,这个文件会怎么执行呢?如果这个图片被存入进了WEB,在浏览器里打开并加载这个图片时就会出现异常,比如编写一个text文件,内容如下:

GIF89a
<head>
<meta http-equiv = "refresh" content ="1;url=http://www.sohu.com/" />  
</head>
然后保存成名字:a.gif。再在PHP的WEB目录下创建一个img.php文件,里面写上代码:

<img src="a.gif">

    然后访问img.php文件,你会看到页面打开后不久就跳转至搜狐网站了,如果a.gif的文件里跳转时再带上一些读取cookies的参数,那么用户的数据就被窃取了!然后PHP在判断这个图片上却显得很弱智。我们使用php里的函数getimagesize读取这张图片,会得到这样的结果:

Array
(
[0] => 2573
[1] => 26684
[2] => 1
[3] => width="2573" height="26684"
[channels] => 3
[mime] => image/gif
)

    结果显示图片的类型是没问题的,只是在尺寸上有些大,但也许这种注入有其它的办法能将尺寸修改成符合你网站需要的,那PHP在接收图片时有什么办法来阻止这种方式呢?既然getimagesize从图片类型上不能阻止,其它的函数:mime_content_type,Fileinfo也没法阻止了。当然如果攻击的脚本像上面这种完全可以从尺寸上阻止,如果脚本能通过,可以考虑重新将图片生成的方法防止含代码图片进入,程序如下:

//显示php获取的图像信息
print_r(getimagesize('a.gif'));

//如果尺寸合格, 重新创建图像实例
$img = getimagesize('a.gif');
$im  =  imagecreatetruecolor ($img[0], $img[1]);
imagepng ($im ,  './a.'.image_type_to_extension (IMAGETYPE_PNG));
imagedestroy($im);

    这时如果像上面这种脚本上传,重新生成的图片会是一张纯黑图片,也就不存在攻击脚本了。但这样也会带来额外的图片生成开销。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
LinuxPHP增加libiconv库发布时间:2022-07-10
下一篇:
phpnginx获取header信息发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap