常见36种WEB渗透测试漏洞描述及解决方法-文件上传

常见36种WEB渗透测试漏洞描述及解决方法-文件上传,第1张

漏洞描述:文件上传漏洞通常由于网页代码中的文件上传路径变量过滤不严或webserver相关解析漏洞未修复而造成的,如果文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,攻击者可通过 Web 访问的目录上传任意文件,包括网站后门文件,进而远程控制网站服务器。

解决方法:

在前后端对上传文件类型限制,如后端的扩展名检测,重命名文件,MIME类型检测以及限制上传文件的大小,或将上传文件放在安全路径下;严格限制和校验上传的文件,禁止上传恶意代码的文件。同时限制相关目录的执行权限,防范webshell攻击;对上传文件格式进行严格校验及安全扫描,防止上传恶意脚本文件;设置权限限制,禁止上传目录的执行权限;严格限制可上传的文件类型;严格限制上传的文件路径;文件扩展名服务端白名单校验;文件内容服务端校验;上传文件重命名,并隐藏上传文件路径。

奇安信文件上传漏洞如何编写利用脚本?

编写利用脚本的步骤如下:

1. 使用Burp Suite或其他类似的工具,分析网站的网络流量。

2. 查找文件上传的API接口,并通过Burp Suite等工具记录请求参数的结构。

3. 编写一个简单的Python脚本,利用Python的requests库,来模拟文件上传的请求,并将我们自己的文件上传到服务器上。

4. 最后,检查服务器上是否成功上传了文件,如果成功,则说明漏洞存在。

   ——此文章摘自《完全手册PHP网络开发详解》定价 ¥ 特价 ¥ 详细>>//track linktech cn/?m_id=dangdang&a_id=A &l= &l_type = width= height= border= nosave>

    在很多网站中 特别是在论坛系统中 往往存在文件上传的功能 文件上传功能允许用户将本地的文件通过Web页面提交到网站服务器上 但是如果不对用户的上传进行任何限制的话 可能会对服务器造成很大的危害

     一个简单的文件上传页面

    以下代码是一个简单的文件上传页面     <?php     if(isset($_POST[ form ]))     {         $uploadfile = upfiles/ $_FILES[ upfile ][ name ]                                                //上传后文件所在的文件名和路径         move_uploaded_file($_FILES[ upfile ][ tmp_name ] $uploadfile)                                                                 //上传文件         print_r($_FILES)                                       //输出文件信息         die()    }     ?>    <>    <head>    <title>文件上传</title>    <meta equiv= Content Type content= text/charset=gb >    </head>    <H >文件上传</H >    <form enctype= multipart/form data action= method= post >    <input name= upfile type= file >            <input name= form type= hidden value= form ><BR>    <input type= submit value= Submit >    </form>    <body>    </body>    </>     上面的代码将文件上传到网站服务器并存储在upfiles文件夹下 但是 由于上面的文件上传程序没有对上传的文件进行任何检查 用户可以通过该程序上传自行编写的PHP脚本到服务器上并通过浏览器运行 由于PHP脚本潜在的危害性 该漏洞可能会导致服务器的彻底崩溃及数据的丢失      漏洞防护措施     解决上面所述问题的一种方法是通过检查上传文件的类型来限制用户的文件上传 如以下代码所示     <?php     if(isset($_POST[ form ]))     {         if($_FILES[ upfile ][ type ] == image/pjpeg )    //检查文件类型是否为JPEG         {             $uploadfile = upfiles/ $_FILES[ upfile ][ name ]                                                      //上传后文件所在的文件名和路径             move_uploaded_file($_FILES[ upfile ][ tmp_name ] $uploadfile)                                                                    //上传文件             print_r($_FILES)            die()        }         else         {             die( 上传文件的格式不正确! )        }     }     ?>

lishixinzhi/Article/program/PHP/201311/21477


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8101010.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存