某教程学习笔记(一):14、上传漏洞讲解

后来,我书没有读好,钱也没有赚到,喜欢的人也没能在一起,最后只给自己留下了一生的缺点,不自信,猜疑,胆小,自闭。。。。
一、文件解析漏洞
1、IIS6.0目录解析
只要存在一个xx.asp(xx.asa)的文件夹,里面所有的文件都会被解析为asp文件
在这里插入图片描述
在这里插入图片描述
2、IIS6.0分号后面不解析
a.asp;jpg,这样的文件会被解析成asp文件,另外*.cer,*.asa也都会被解析成为asp文件
在这里插入图片描述
在这里插入图片描述

3、apache解析漏洞,apache是从右往左解析后缀,直到解析到可以识别的后缀
假如有个文件是a.php.abc.aab.acd,apache最终解析为a.php

4、IIS7.0、IIS7.5、Nginx<8.03畸形解析漏洞
在默认Fast-CGI开启状况下,黑客上传一个名字为cracer.jpg,内容为<?php fputs(fopen('shell.php','w'),'<?php eval($_POST[aiyou])?>’);?>的文件,然后访问cracer.jpg/.php,在这个目录下就会生成一句话木马shell.php
漏洞影响范围:nginx 0.7.65以下(0.5., 0.6., 0.7.* )全版本系列和0.8.37(0.8.*)以下8系列受影响。
http://ap.test.com/1.jpg/1.php
http://ap.test.com/1.php%00.jpg

5、.htaccess文件解析
如果在Apache中.htaccess可被执行,且可被上传,在.htaccess中写入:<FilesMatch “mst.jpg”> SetHandler application/x-httpd-php,然后再上传mst.jpg的木马, 这样mst.jpg就可解析为php文件

二、上传本地验证绕过
服务器命名规则
第一种:上传文件名和服务器命名一致
第二种:上传文件名和服务器命名不一致(随机)

1、客户端 Javascript检测(通常为检测文件扩展名)
首先判断js本地验证,在用burp抓包,提交的时候,burp没有抓到包,就已经弹出了弹框,说明本地验证
在这里插入图片描述
绕过方法:
删除监测函数
在这里插入图片描述
使用burp抓包改名
使用firebug直接删除本地验证的js代码
添加js验证的白名单,如将php的格式添加进去
在这里插入图片描述

2服务端MIME类型检测(检测 Content-Type内容)
直接使用bup抓包,得到post上传数据后,将 Content-Type内容改成image/png就可以成功绕过。
在这里插入图片描述

3.服务端目录路径检测(检测跟path参数相关的内容)
允许上传,但是上传到一个没有权限的文件夹,先抓包,发送到repeater,将路径修改为上级目录
在这里插入图片描述

三、上传服务端验证绕过
1、文件名大小写绕过
用像AsP,pHp之类的文件名绕过黑名单检测
在这里插入图片描述
2、名单列表绕过
用黑名单里没有的名单进行攻击,比如黑名单里没有asa或cer之类(asp:asa,cer,1.asp;.jpg,1.asp/1.jpg php:php3,php4,php5,php7)
3、特殊文件名绕过
比如发送的http包里把文件名改成test.asp.或test.asp_(下划线为空格),这种命名方式在windows系统是不被允许的,所以需要在burp之类里进行修改,然后绕验证后,会被windows系统自动去掉后面的点和空格,但要注意Uni/ Linux系统没有这个特性。
4、0×00截断绕过
把文件名修改为1.php%00.jpg,然后将%00编码
5、表单提交按钮
有的上传页面没有提交按钮,可以查看源码,然后添加一个

禁止非法,后果自负
欢迎关注公众号:web安全工具库
在这里插入图片描述

发布了114 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_41489908/article/details/104484036