konakona
Dream Afar.
konakona
[原创] php安全知识:实现文件上传漏洞的方式及预防提示

用画图工具新建一个jpg或gif或png之类图片格式,开头一定是GIF或JPG或PNG之类。

将php网马的头部写入GIF 如图:

https://blog.img.crazyphper.com/2011/10/ma2-300x229.jpg


然后写一个简单的php上传文件处理(我赶时间随便写的,没什么美感):

 

<?php

if($_FILES){
 echo '以下是错误的$_FILES:<br/>';
 echo "<pre>";
 print_r($_FILES);
 echo "</pre>";

 echo "以下是错误的getimagesize()<br/>";
 echo "<pre>";
 print_r(getimagesize($_FILES['bug']['tmp_name']));
 echo "</pre>";
 exit;
 $fp = fopen($_FILES['bug']['tmp_name'],"r");
 $content = fread($fp,filesize ($_FILES['bug']['tmp_name']));
 //echo $content 可以看到上传的源代码
}
?>

<form action="" method="post" enctype="multipart/form-data">

<input type="file" name="bug" />

<input type="submit" >
</form>

就可以看到如图这样坑爹的效果了。

https://blog.img.crazyphper.com/2011/10/ma1-300x173.jpg

首先是print_r($_FILES) 直接显示的是扩展的jpg结果。
然后是php函数getimagesize()的结果是gif(它以文件开头那段为判断依据)。

都是那么坑爹啊~

赞赏
首页      程序开发      PHP      [原创] php安全知识:实现文件上传漏洞的方式及预防提示

团哥

文章作者

继续玩我的CODE,让别人说去。 低调,就是这么自信。

团哥进行回复 取消回复

textsms
account_circle
email

  • soulteary

    看了半天日期,改文件头标记这个05还是06年在杂志上似乎登过很多次了。当时织梦和动易,是这两个吧,EW编辑器的上传漏洞就是这个…话说2011/10/11的原创…莫非是下面的print_r…

    9年前 回复
    • 团哥博主

      @soulteary: 这个漏洞当然并非我发现的,我只是加以利用,顺便分析下如何解决它。

      看来是标题曲解了意思,改一下……

      9年前 回复
  • 团哥博主

    。。。。 😳 解决方法也忘记写了,崩溃……

    基本上就是通过GD库创建新的画布,将上传图片元素填充到画布中,然后存储,大致是这样。

    还有一些方法是通过设置服务器参数来起作用,例如display_error(0)等。

    都是些治标不治本的东西。

    9年前 回复

konakona

[原创] php安全知识:实现文件上传漏洞的方式及预防提示
用画图工具新建一个jpg或gif或png之类图片格式,开头一定是GIF或JPG或PNG之类。 将php网马的头部写入GIF 如图: 然后写一个简单的php上传文件处理(我赶时间随便写的,没什么美感…
扫描二维码继续阅读
2011-10-11