欢迎来到天天文库
浏览记录
ID:34772766
大小:124.31 KB
页数:8页
时间:2019-03-10
《文件上传漏洞防御——图片写马的剔除》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、文件上传漏洞防御——图片写马的剔除 最近回顾了一下CasperKid大牛在2011年11月发布的UploadAttackFramework,非常有感触,写得非常好,想深入了解这个漏洞的都推荐看看。 AD:2013大数据全球技术峰会低价抢票中 最近回顾了一下CasperKid大牛在2011年11月发布的UploadAttackFramework,非常有感触,写得非常好,想深入了解这个漏洞的都推荐看看。 上传功能常见于图片的上传,例如博客头像设置,广告位图片上传等。 上传检测方法在paper中也写的比较明朗,这里总结一下: 1.客户端使用JS对上传图片做
2、检测,例如文件大小,文件扩展名,文件类型 2.服务端检测,例如文件大小(免得拒绝服务),文件路径(避免0x00截断,目录遍历),文件扩展名(避免服务器以非图片的文件格式解析文件),文件类型(避免修改Content-Type为image/jpeg等),文件内容(避免图片写马) 上传检测绕过的方法,也总结一下: 1.客户端检测,相当于没有检测,可以使用HTTP代理例如burp绕过 2.服务端检测,一般采用白名单+黑名单的方式,但也极有可能出纰漏。例如大小写,不在名单内的特例,操作系统bt特性(windows系统会自动去掉文件名最后面的点和空格),0x00截断,服务
3、器文件解析漏洞,最后还有图片写马绕过类型检测 本篇博客重点讲讲图片写马的检测。 我们知道PHP中文件类型的检测可以使用 1.$_FILES['uploaded']['type']; 2.getimagesize 两种方式来判断是否是正常图片,其实只要在不破坏图片文件格式的情况下,就可以绕过检测 例如使用以下命令,将正常图片与一句话php木马绑定在一起生成一个新的文件的方式 copy/btangwei.jpg+yijuhua.phptangweiyijuhua.jpg 我们查看新生图片的内容,在图片底端可以看到一句话木马写入,如下图所示 strings
4、tangweiyijuhua.jpg 接下来我们演示这张图片是否能正常上传。 试验用到了两个脚本 1.upload.html上传客户端 Chooseanimagetoupload 2.upload.php上传文件处理 这个脚本会检测文件后缀与文件类型,符合白名单jpeg格式的才允许上传,并打印出上传文件的基本信息及显示图片。 注意:红色字体部分可以先注释掉,下一步演示中会使用到 if(isset($_POST['upload'])){ //获得上传文件的基本信息,文件名,类型,大小,临时文件路径 $filename=$_FILES['uploa
5、ded']['name']; $filetype=$_FILES['uploaded']['type']; $filesize=$_FILES['uploaded']['size']; print" Filename:$filename "; print" Filetype:$filetype "; print" Filesize:$filesize "; $tmpname=$_FILES['uploaded']['tmp_name']; print" TempFilepath:$tmpname "; $uploaddir='/var/
6、www/upload/'; $target_path=$uploaddir.basename($filename); //获得上传文件的扩展名 $fileext=substr(strrchr($filename,"."),1); print" Fileextension:$fileext "; $serverip=$_SERVER['SERVER_ADDR']; //判断文件后缀与类型,合法才进行上传操作 if(($fileext=="jpg")&&($filetype=="image/jpeg")){ if(move_uploaded_file(
7、$tmpname,$target_path)){ print$target_path."successfullyuploaded! "; //显示上传的图片 print'Originimage '; //使用上传的图片生成新的图片 $im=imagecreatefromjpeg($target_path); //给新图片指定文件名 srand(time()); $newfilename=strval(rand()).".jpg"; print" newfilename$newfilename "; $newimagepat
此文档下载收益归作者所有