免责声明
免责声明:文章所涉及内容,仅供安全研究与教学之用,由于传播、利用本文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何法律及连带责任。
任意文件下载
原理
下载文件的文件名称可控,攻击者可路径遍历下载敏感文件
download?filename=…/…/…/…/etc/passwd
寻找可能存在漏洞的地址
谷歌黑客语法查找
inurl:“readfile.php?file=”
inurl:“read.php?filename=”
inurl:“download.php?file=”
inurl:“down.php?file=”
等等
任意文件上传
原理
绕过限制上传木马文件,导致服务器沦陷
靶场
pikachu靶场
前端检测后缀
bp抓包改后缀
MIME type检测
修改Content-Type:改成图片的就行
image/jepg image/jpg image/png
getimagesize函数检测**
上传图片马,利用需要nginx或apache有解析漏洞(把非php文件当php文件使用)或文件包含漏洞
upload-labs靶场总结
1.前端过滤
2.后端mime多媒体类型过滤
3.apache的设置问题,服务端可以解析php,php3,php5,phtml 绕过方法:上传php3,php5,phtml
4.只过滤动态代码文件,忽略了.htaccess文件,绕过方法:上传.htaccess,再上传.htaccess文件指定的文件名
5.没有过滤大小写,绕过方法:文件名大小写绕过
6.和其他的防护相比,少了首尾去空,绕过方法:文件名最后增加空格和点
7.少了删除文件名末尾的点,绕过方法:文件名最后增加点.
8.少了去除字符串:: D A T A ,绕过方法:文件名结尾增加 : : DATA,绕过方法:文件名结尾增加:: DATA,绕过方法:文件名结尾增加::DATA
9.原理同Pass-06,上传文件名后加上点+空格+点
10.绕过方法,双写绕过php
11.get请求的%00截断
12.post请求的%00截断
13.在一句话木马前面加上图片头,例如GIF89a
14.直接上传图片马
15.直接上传图片马
16.二次渲染
17.条件竞争1
18.条件竞争2+apache解析漏洞 upload/18.php.7z
dvwa
high级别
图片马+中间件解析漏洞
djsi.jpg/ss.php
impossible*
找哪些数据被二次渲染,处理了,在没有被渲染的地方插入webshell
防御方法
- 使用getimagesize函数获取图片信息
- 对客户端上传的图片进行二次渲染
- 使用base64数据存储图片
- 使用白名单过滤
拓展
webshell与普通shell
webshell:不能执行交互命令,与tcp建立短连接
普通shell:可以以实现交互命令,与shell建立tcp长连接