异世界

— 居正 And RUI_wj 's BLOG

危险的PHP图片上传漏洞

任何来自客户端的数据都是不可靠的。



示范地址: http://jblog.zsyl.info 这也是我自己编的一个PHP应用,带有上传文件功能

uploadimg.png
如果你上传了JPG格式以外的文件,比如hello.php,那么系统则不会让你上载。

有什么办法突破这个限制上传我们的webshell呢?

先看看我编的这个PHP upload源代码:

  1. <?php

  2. echo "<center>============欢迎来到文件<del>管理</del>上传系统=============</center>";

  3. if($_FILES["file"]["size"]<200000){

  4.         if(file_exists("./upload/" . $_FILES["file"]["name"])&&$_FILES["file"]["name"]!=null){

  5.                 echo "文件名已经存在";

  6.                 exit;

  7.         }

  8.         if($_FILES["file"]["type"]=="image/jpeg"||$_FILES["file"]["type"]=="image/pjpeg"){

  9.                 if($_FILES["file"]["error"]>0){

  10.                         echo "error。。Error:" . $_FILES["file"]["error"];

  11.                 }else{

  12.                         echo "上传文件名: " . $_FILES["file"]["name"] . "<br />";

  13.                         echo "后缀:" . $_FILES["file"]["type"] . "<br />";

  14.                         echo "大小:" . ($_FILES["file"]["size"] / 1024) . " Kb<br />";

  15.                         //echo "临时保存在: " . $_FILES["file"]["tmp_name"] . "<br/>";

  16.                        

  17.                         move_uploaded_file($_FILES["file"]["tmp_name"],"./upload/" . $_FILES["file"]["name"]);

  18.                         echo "保存在此目录下的upload/" . $_FILES["file"]["name"];

  19.                 }

  20.                

  21.         }else{

  22.                 echo "只能上传JPG文件";

  23.         }

  24.        

  25.        

  26.        

  27. }else{

  28.         echo "文件太大,必小于200KB";

  29. }


  30. ?>


  31. <html>

  32. <body>

  33. 请上传文件:

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

  35. <input type="file" name="file">

  36. <input type="submit" value="上传这个文件">

  37. </form>

  38. </body>

  39. </html>


差不多,大多数的都是这样。

我们试试用brup suite抓包——

我们先上传文件,在浏览文件里面把webshell.php改成webshell.jpg,就是改一下后缀。



------------------>>


然后上传,使用burp suite截取数据。





将这里webshell.jpg改回来webshell.php



然后forward继续,搜狗截图20150128143759.png
这样就上传成功了~这就对了

成功了将PHP文件上载

访问jblog.zsyl.info/upload/webshell.php测试一下

搜狗截图20150128144017.png访问是成功了,只不过编码有错误,没事,改一下就行了。

这样我们就可以上传shell以至于控制整个网站。



看看谁先黑掉它: jblog.zsyl.info 只是一个小小的实战演练哦



关于burp suite: http://www.2cto.com/Article/201307/229039.html
                                                                                           


  • 评论列表:

发表评论:

Powered By Z-BlogPHP 1.5.2 Zero

搭建与于2014/12,RUI_wj 居正 所有。