文件上传漏洞

文件上传(上传木马拿服务器)

文件上传后缀很重要,很多网站根据后缀来命名

 一句话木马<?php eval ($_REQUEST[8])?>

如果说没有防护过一阵的文件上传,只要传一个php就可以拿下服务器。

检测恶意代码:

      前端检测(JS)  前端的检测等于没有检测

              前端代码的只能在浏览器里执行      浏览器~>信差~>目标

      后端检测(后端php)

              黑白名单机制。黑名单:名单上的等下不允许   黑名单机制比较危险  

                                       白名单:只允许名单上的内容

靶场:

 第一关 前端验证。先提交一个jpg然后改成php就可以。用burp抓包就可以,将文件后缀改为php。

                    

 第二关 文件类型Content-Type检测,BP抓包截断上传数据包,修改Content-Type为image/jpeg,然后放行数据包,成功绕过

                   

 

 

 第三关  这一关是黑名单机制,但是过滤并不严谨,它过滤了 $deny_ext = array('.asp','.aspx','.php','.jsp')

               但是在php中php3,phtml等都可以被编译成php来执行。所以我们可以上传一个php3类型文件就可以

               

 第四关  这一关需要用到.htaccess文件绕过。 .htaccess文件也被称为分布式文件,提供了针对目录改变配置的方法,在一个特定目录纺放置一个包含一个或多个指令的文件,作用于此目录以及所有子目录。

                我们创建一个.htaccess文件  。

                

 

              上传完之后,再把我们的图片木马上传就可以了。

第五关????

第六关 大小写。我们看到它并没有大小写过滤。所以我们利用大小写绕过

          

第七关  这一关大小写被禁用掉。Windows系统下,对于文件名中空格会被作为空处理,程序中的检测代码却不能自动删除空格。从而绕过黑名单。
             针对这样的情况需要使用Burpsuite阶段HTTP请求之后,修改对应的文件名 添加空格。

第八关   后缀点绕过。Windows系统下,文件后缀名最后一个点会被自动去除。

第九关 windows文件流绕过  Windows系统下,如果上传的文件名中test.php::$DATA会在服务器上生成一个test.php的文件,其中内容和所上传文件内容相同,并被解析。

               

              但是要记住。在访问的时候要去掉::$DATA因为它是不存在的

             

 

第十关  这一关是将文件名进行过滤操作后,将文件名拼接在路径后面,所以需要绕过前面的首尾去空以及去点。 11.php. .这样就会被绕过而且会被网站解析。

             

            

 第十一关  这一关是用str_ireplace函数将符合黑名单中的后缀名进行替换为空。所以可以双写绕过。

              

 第十二关  白名单验证get型0x00截断  substr($_FILES['upload_file']['name'],strrpos($_FILES['upload_file']['name'],".")+1);他会提取文件后缀和白名单内容进行比较

                 所以要用到00截断(他说一个漏洞)。需要php的版本号低于5.3.29,且magic_quotes_gpc为关闭状态。他和%00是一样的原理,只不过%00是经过url编码的%00解码之后就是0x截断的那个字符

         这一关是用到%00截断因为get会解码。更改上面的就可以

                  

 

第十三关 post型0x00截取这一关和十二关的区别是,00截断是用在POST中,且是在二进制中进行修改。因为POST不会像GET那样对%00进行自动解码。

                 

                 a的作用是让我便捷找到它对应的十六进制。然后我们把61改成00就可以,最后放包就行了。

                

第十四关  图片马绕过。以及从后缀检测变成内容检测。检测是否是一个图片。所以要用到图片马(一句话木马和图片粘合到一起)。制作图片马。将图片和一句话木马拼合到一起生成图片马

              

 

               上传成功

                     

第十五关   这一关也是图片马。我们可以在图片马之后再包含一个图片或者加入一句话就可以。

第十六关   这一关需要开启php_exif模块。同前两关,能过Pass-15的图片马就能过这关。

第十七关   这里使用容易绕过二次渲染的gif文件。现在制作一个gif图片马,copy就可以了。制作后便上传,发现无法利用。然后将上传的图片重新下载下来,进行对比。可以找到二次渲染后不变的地方,而这个地方就是可以插入一句话的地方。发现文件头部前几行是不变的的地方        

第十八关  条件竞争  对php内容操作,利用木马生成一个新的木马。file_put_contents()函数

                   

           上传php文件,burp抓包。放到测试器。两个包

             

            第二个包,和这个类似。只不过是访问1000.php抓到的包。然后在upload目录看是否有2.php生成。可以看到1000再不断的跑。等2.php生成就可以了

            

 

 

 

解析漏洞:

posted @ 2021-11-17 17:25  沉烟忆月  阅读(157)  评论(0)    收藏  举报