网络安全Web篇(三)(文件上传漏洞)

文件上传

一,类别

	1,目录解析:
			指上传的脚本需在特定的文件夹下,也就是上传文件的同时创建文件夹。
			例如:
				xx.asp/a.jpg					
					就是必须构建这种 xx.asp 这种目录,然后将脚本上传至该目录下。
					a.jgp会以asp文件格式执行
					
	2,文件解析:
			一般值绕过一些简单的限制。
			例如:
				test.asp;.jpg
				这种文件的话 .jpg会被忽略,最终以test.asp脚本文件执行
			
	3,畸形文件名:
			构建不存在的后缀名称来绕过检测,但一些解析容器仍会执行
			例如:
				test.asa/.cer/.cdx等
				这种文件最终仍会以 .assp文件执行

二,解析容器

	1,apache
		一般会设置黑名单,即不允许php/asp/aspx/asa文件上传
		
		绕过方法:
			上传test.php.zzz				
				
			解析容器不认识 .zzz 文件,最终以test.php运行
			一般上传“test.php.”或者“test.php._”就可以突破
	2,IIS
		只要是IIS网站,支持php脚本的都可以在图片最后加上“/.php”来测试有没有php文件执行
		
	小结:
		
		1,服务器命名规则
				~不做改动,上传的test.jpg  数据库存储的仍是test.jpg
				~上传名与数据中不一致,一般都是随机命名,比如:时间、日期等等(为了防止被黑客突破)
				
		2,黑白名单可以在本地验证,也可能在服务器端验证
			验证方法:
				可以用bp抓包判断一下,
					若没抓到包就显示  “文件不合法”  即本地验证
					else就是服务器了
					
			突破方法:
				对本地验证:
					1,改js代码(或者直接干掉相关函数)
					2,bp抓包(先上传1.jpg ;bp抓包后改为1.php)
						针对2补充说明:
							有的验证/测试点是在文件格式/类型那,并不在文件名(即MIME类型检测)
							对此突破就是:
							将文件类型修改为合法的,即 Conten-Type:image/jpeg
							
							有的限制点在上传后的目录,即上传test.php到aa文件夹,
							但是aa文件夹内所有文件没有执行权限。
							对此突破就是:
							bp抓包,改为	“../test.php” 上传
			
		3,绕过黑名单:
			~文件名大小写改一下试试
			~改为可能未拉黑的后缀名,比如:"asa"
			~最后加“._”
			~收集一些后缀放在一个txt中,bp爆破,看看哪些后缀未被拉黑
				下载一个安全狗,找一下安全狗的拉黑txt,拿来对一些小站点测试即可
			~配合一些解析漏洞
			
		4,针对白名单:
			~利用一些解析漏洞
				~看看是什么容器解析(关键),因为不同容器 解析漏洞不同
				~上传文件
						a.asa 仍可以解析为.asp执行			---利用畸形文件名
						asp/a.jpg							---利用目录解析

三,补充

	1,IIS是什么
		IIS是Internet Information Server的缩写,它是微软公司主推的Web服务器。
		IIS并不是一种编程语言,它只是一种“环境”,一种让ASP语言运行的环境。
		现在好多windows服务器上,最常用的就是iis,稳定。
发布了24 篇原创文章 · 获赞 3 · 访问量 1753

猜你喜欢

转载自blog.csdn.net/weixin_43970718/article/details/103652433