konakona
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安全知识:实现文件上传漏洞的方式及预防提示
https://secure.gravatar.com/avatar/3b712b34a0e1b689cfb524c9c6bcdc47?s=256&r=g

团哥

文章作者

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

发表评论

textsms
account_circle
email

  • https://secure.gravatar.com/avatar/70a2291293cd289ae0573b6cdb7d791e?s=80&r=g
    soulteary

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

    8年前回复
    • https://secure.gravatar.com/avatar/3b712b34a0e1b689cfb524c9c6bcdc47?s=80&r=g
      团哥博主

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

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

      8年前回复
  • https://secure.gravatar.com/avatar/3b712b34a0e1b689cfb524c9c6bcdc47?s=80&r=g
    团哥博主

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

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

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

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

    8年前回复

konakona

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