文件上传漏洞的认知
漏洞概述
文件上传是很多站点常用的功能,比如上传图片、视频、文档等,常在评论功能区、头像修改、提交文档等场景下出现。
文件上传漏洞是指用户利用站点文件上传功能,上传了一个可执行的脚本文件(asp、aspx、php、jsp等),并通过执行此脚本文件获得了执行服务器端命令的能力。恶意脚本文件又称webshell(网页后门),具有强大的功能,如查看服务器目录/文件、执行系统命令等
文件上传是Web 应用的必备功能之一,比如上传头像、上传附件共享⽂件等。如果服务器配置不当或者没有进行足够的过滤,Web 用户就可以上传任意文件,包括恶意脚本文件、exe 程序等,这就造成了文件上传漏洞
漏洞危害
- 文件上传漏洞最直接的威胁就是上传任意文件,包括恶意脚本、可执行程序等
2.如果站点服务器用于保存上传文件的目录具有执行权限,恶意文件被执行后黑客可获取服务器命令执行能力,导致站点沦陷
3.如果攻击者通过其他漏洞进行提权操作,拿到系统管理员权限,那么直接导致服务器沦陷
4.同服务器下的其他网站无一幸免,均会被攻击者控制(旁站攻击)
文件上传漏洞利用条件
1.Web 服务器要开启文件上传功能,并且上传api(接口)对外“开放”(Web 用户可以访问)
2.Web 用户对目标目录具有可写权限,甚至具有执行权限,一般情况下,Web 目录都有执行权限
3 要想完美利用文件上传漏洞,就是上传的文件可以执行,也就是Web 容器可以解析我们上传的脚本,无论脚本以什么样的形式存在
文件上传利用
一句话木马
1 |
|
图片木马制作
准备一张图片,准备一句话php木马1.php
通过控制台cmd命令制造图片马
进入两个文件的文件夹打开控制台输入命令
1
2
3copy shuaidan.png/b+cmd.php 1.jpg
copy 1.jpg/b+1.php/a yjh.jpg命令解释:
使用 CMD制作一句话木马。
参数/b指定以二进制格式复制、合并文件; 用于图像类/声音类文件
参数/a指定以ASCII格式复制、合并文件。用于txt等文档类文件
copy shuaidan.png/b+cmd.php 1.jpg
//意思是将shuaidan.png以二进制与cmd.php合并成1.jpg
那么 1.jpg就是图片木马了可以以记事本查看1.jpg图片木马
一句话木马就在图片里面
文件上传绕过WAF
实验环境:upload-labs 靶场
安装安全狗后发现用上述办法是不行的
垃圾数据绕过
垃圾字符,超过waf检测范围(数据溢出)
不打断原有http请求报文的格式,插入大量垃圾数据,导致安全狗检测机制无法扫描到真正的有用信息
核心点:不能打断原有数据包的节奏!
burp
拦截加入垃圾数据
数据包溢出绕过:
`filename=""`
值匹配””的内容,后跟.php :
`filename=""`