文章目录
文件上传
1.漏洞原理
文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。
文件上传漏洞的两个必要条件
- 文件上传到服务器
- 文件被服务器解析执行
2.文件上传检测方式
一般一个文件上传过程中的检测方式有:
客户端JavaScript检测(检测文件扩展名)
服务端MIME类型检测(检测content-type内容)
服务端目录路径检测(检测跟path参数相关的内容)
服务端文件扩展名检测 (检测跟文件extension相关的内容)
服务端文件内容检测(检测内容是否合法是否含有恶意代码)
3.文件上传绕过
绕过客户端检测(JS绕过)
原理:通常在上传页面里含有专门检测文件上传的 JavaScript 代码,最常见的就是检测文件类型和扩展名是否合法。
方法:在本地浏览器客户端禁用 JS 即可;可使用火狐浏览器的 Noscript 插件、IE中禁用JS等方式实现,利用 burpsuite 可以绕过一切客户端检测。
绕过MIME类型检测
原理:检测文件上传过程中http包的 Content-Type 字段的值,来判断上传文件是否合法。
方法:用burpsuite截取并修改数据包中文件的 content-type 类型进行绕过。
绕黑名单的方法
大小写绕过(.PHp)
空格绕过 (.php )在后缀名后再加上空格
点绕过 (.php.)
配合Apache解析漏洞绕过
白名单绕过
%00绕过(.php终止符.jpg)
原理:白名单过滤肯定是从后往前读取后缀,所以读取到.jpg在白名单里就放通了。
0x00截断
其实就是post传参的00截断,因为post传参不走URL栏,所以就不用%00,而使用0x00
在这里先修改一下,然后进入hex页面
在hex页面对后缀再次修改,将a的十六进制修改为00
图片马绕过
利用cmd命令:copy 123.jpg/b + aaa.php 666.jpg 可以将aaa.php中的一句话木马写入123.jpg,生成一张长得一模一样的图片666.jpg,再配合解析漏洞就可以拿到shell
二次渲染
二次渲染就是会改变图片的一部分十六进制数值,所以图片马中的马最好写在第三四排,并且最好用.gif
4.文件上传漏洞总结
5.文件上传漏洞防御
文件上传的目录设置为不可执行
判断文件类型
使用随机数改写文件名和文件路径
单独设置文件服务器的域名
webshell
webshell简介
WebShell就是以ASP、PHP、JSP或者CGI等网页文件形式存在的一种命令执行环境,也可以将其称之为一种网页后门。攻击者在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器web目录下正常的网页文件混在一起,然后使用浏览器来访问这些后门,得到一个命令执行环境,以达到控制网站服务器的目的(可以上传下载或者修改文件,操作数据库,执行任意命令等)
一句话木马
php一句话木马: <?php @eval($_POST[value]);?>
asp一句话木马: <%eval request(“value”)%>
aspx一句话木马: <%@ Page Language=“Jscript”%><%eval(Request.Item[“value”])%>
webshell管理工具
蚁剑-AntSword(菜刀替代品)
冰蝎-Behinder
哥斯拉-Godzilla