环境部署
- 实验工具:
- PHPstudy
- upload-labs 项目地址:https://github.com/c0ny1/upload-labs
- upload-labs-writeup:项目地址:https://github.com/LandGrey/upload-labs-writeup
- Burpsuite
- webshell管理工具
- 一句话木马
- 将靶场下载解压到PHPstudy的www下,
localhost/加路径访问
Pass-01前端绕过
-
前端禁用JS,直接插件禁⽤:Script Blocker Ultimate或浏览器设置禁用
-
利用冰蝎生成base64的木马文件进行上传
-
发现不允许上传,关掉网页js成功上传
-
访问上传木马文件,用冰蝎连接获得webshell
-
或者可以Bp抓包,进行后缀名绕过
Pass-02 文件类型绕过
- 后端校验由开发决定检测方式检测内容,是检测文件后缀,还是文件内容
MIME 类型
1.定义:是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。
2.语法:type/subtype
3.参数:type 表示可以被分多个子类的独立类别,subtype 表示细分后的每个类型
4.注意:/左右无空格,MIME类型对大小写不敏感,但大部分都是小写
5.默认MIME类型:
- text/plain 表示文本文件的默认值。
- application/octet-stream 表示所有其他情况的默认值。
6.常见的 MIME 类型
- 超文本标记语言 .html:text/html
- 普通文本 .txt: text/plain
- RTF 文本 .rtf: application/rtf
- GIF 图形 .gif: image/gif image/png
- JPEG 图形 .jpeg、.jpg: image/jpeg
- au 声音文件 .au: audio/basic
- MIDI 音乐文件 mid、.midi: audio/midi、audio/x-midi
- RealAudio 音乐文件 .ra、.ram: audio/x-pn-realaudio
- MPEG 文件 .mpg、.mpeg: video/mpeg
- AVI 文件 .avi: video/x-msvideo
- GZIP 文件 .gz: application/x-gzip
- TAR 文件 .tar: application/x-tar
步骤:
1. 上传 .PHP 文件到服务器
2. 上传文件并使用 Burp Suite 捕获请求
3. 修改MMIE类型,将内容类型也更改为由application/php更改为image/jpeg
4. 转发请求,发包上传
5. 进行访问验证
- 尝试上传木马文件
- 利用Bp抓包查看
Pass-03
Pass-04
1.定义: .htaccess⽂件(Hypertext Access)超⽂本⼊⼝。本质为Apache配置⽂件,提供 了针对⽬录改变配置的⽅法,在⼀个特定的⽂档⽬录中放置⼀个包含⼀个或多个指 令的⽂件,
以作⽤于此⽬录及其所有⼦⽬录,管理相关⽬录下的⽹⻚配置。
2.使⽤.htaccess限制条件
1.Apache环境
2.允许.htaccess⽂件使⽤,httpd.conf配置⽂件中AllowOverride参数设置为All。 修改后需对Apache进⾏重启
- 依然是使用黑名单限制,但几乎过滤了所有有问题的后缀名,但可以允许上传.htaccess文件。
- htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以实现:网页301重定向、自定义404
- .htaccess功能
- ⽬标开启.htaccess并且上传⿊名单没有限制.htaccess⽂件,先上传.htaccess⽂件,对⽬标环境的⽬录进⾏相关配置,在传图⽚,使图⽚的 PHP 恶意代码得以被直接解析执⾏。
- 上传.htaccess解析文件,利用其配置,将白名单文件的类型解析成php文件类型。
- 上传.htaccess文件 内容如下:(将服务器上的yyshell.jpg文件解析成php文件,这里文件可以自由配置)
<FilesMatch "yysh.jpg">
SetHandler application/x-httpd-php
</FilesMatch>
- 再上传一个一句话木马,文件名为yyshell.jpg,依旧访问yyshell.jpg,但其会以php形式显示
Pass-05
利用bp抓包后缀名后加_绕过成功上传
Pass-06
利用bp抓包后缀名后加_绕过成功上传