首页
学习
活动
专区
圈层
工具
发布
27 篇文章
1
Kali Linux Web渗透测试手册(第二版) - 6.8 - 检测和利用命令注入漏洞
2
Kali Linux Web渗透测试手册(第二版) - 6.7 - 利用XML外部实体注入
3
Kali Linux Web渗透测试手册(第二版) - 6.4 - 基于错误的SQL注入
4
Kali Linux Web渗透测试手册(第二版) - 6.3 - 手动识别SQL注入
5
Kali Linux Web渗透测试手册(第二版) - 6.2 - 文件包含和文件上传
6
Kali Linux Web渗透测试手册(第二版) - 5.7 - 使用ZAP测试WebSokets
7
Kali Linux Web渗透测试手册(第二版) - 6.6 - 使用SQLMap查找和利用SQL注入
8
Kali Linux Web渗透测试手册(第二版) - 7.3 - 利用metasploit创建并反弹shell
9
Kali Linux Web渗透测试手册(第二版) - 6.1 - 寻找文件包含漏洞
10
Kali Linux Web渗透测试手册(第二版) - 2.8 - 利用robots.txt
11
Kali Linux Web渗透测试手册(第二版) - 5.3 - 利用XSS获取Cookie
12
Kali Linux Web渗透测试手册(第二版) - 3.9 - WebScarab的使用
13
Kali Linux Web渗透测试手册(第二版) - 9.7 - 通过HTTP头利用漏洞
14
Kali Linux Web渗透测试手册(第二版) - 9.2 - 对跨站脚本攻击(xss)进行混淆代码测试
15
Kali Linux Web渗透测试手册(第二版) - 9.1 - 如何绕过xss输入验证
16
Kali Linux Web渗透测试手册(第二版) - 8.4 - 使用OWASP ZAP进行扫描漏洞
17
Kali Linux Web渗透测试手册(第二版) - 9.6 - 利用HTTP参数污染
18
Kali Linux Web渗透测试手册(第二版) - 9.4 - 绕过web服务器的CORS限制
19
Kali Linux Web渗透测试手册(第二版) - 9.3 - 绕过文件上传限制
20
Kali Linux Web渗透测试手册(第二版) - 8.8 - 使用CMSmap扫描Drupal
21
Kali Linux Web渗透测试手册(第二版) - 8.7 - 使用JoomScan扫描Joomla中的漏洞
22
Kali Linux Web渗透测试手册(第二版) - 8.3 - 使用Wapiti发现漏洞
23
Kali Linux Web渗透测试手册(第二版) - 7.8 - 使用Hashcat暴力破解密码哈希
24
Kali Linux Web渗透测试手册(第二版) - 7.6 - 使用Tomcat管理界面执行代码
25
Kali Linux Web渗透测试手册(第二版) - 7.5 - Windows提权
26
Kali Linux Web渗透测试手册(第二版) - 7.4 - Linux上的权限提升
27
Kali Linux Web渗透测试手册(第二版) - 7.2 - 通过利用Shellshock执行命令

Kali Linux Web渗透测试手册(第二版) - 9.3 - 绕过文件上传限制

标记红色的部分为今日更新内容

9.0、介绍

9.1、如何绕过xss输入验证

9.2、对跨站脚本攻击(xss)进行混淆代码测试

9.3、绕过文件上传限制

9.4、绕过web服务器的CORS限制

9.5、使用跨站点脚本绕过CSRF保护和CORS限制

9.6、利用HTTP参数污染

9.7、通过HTTP头利用漏洞

绕过文件上传限制

在前几个章节,我们已经学习在上传文件时如何绕过一些常规限制。在这个章节中,我们将使用一个相比之前而言安全规则更加完整的一个新的系统。

实战演练

在这个章节中,我们要将VM虚拟漏洞系统中的Mutillidae II设置为安全等级,在菜单中使用Toggle Security选项去设置它并且将Burp Suite设置为代理:

1. 在Mutillidae II菜单中,跳转到Other|UnrestrictedFile Upload|File Upload

2. 首先我们尝试上传一个PHP的webshell,你可以使用我们在前几章中使用的,也可以使用一个自己的。如下,上传会失败并且我们看到一个详细报告:

从上面的响应中,我们可以推断文件上传的位置为/tmp目录下,上传检测系统首先会将webshell重命名,然后检查它的扩展名和文件类型,如果检查通过那么将文件重命名为它一开始的名称。

3. 首先我们尝试上传一个脚本,通过它我们可以知道web服务器的工作目录(文档的根目录)是什么,这样的话就可以知道一旦上传了webshell,那么就可以知道它的存放位置,创建一个名为sf-info.php的文件,其中的代码如下:

4. 使用Burp Suite拦截上传,将后缀名修改为.jpg,并将Content-Type修改为image/jpeg,如下所示:

5. 现在,转到BurpSuite的代理历史记录将发送到Mutillidae的任意GET请求发送到repeater,我们需要通过它利用本地文件包含漏洞来执行上传的webshell。

6. 在Repeater中,将URL中page的参数替换为../../../../tmp/sf-info.jpg然后发送这个请求,结果如下图:

7. 创建webshell.php,它的代码如下:

8. 上传这个文件,像下面所示的那样修改它的文件名:

现在的问题是如何通过这个webshell来执行命令。它存储在/tmp目录下,所以我们不能通过浏览器直接访问它。为了解决这个问题,我们需要继续上传另一个文件,它可以将webshell重命名为.php并将它移动到web根目录。

9. 把我们上传sf-info.php的包发送到repeater中。

10.将文件名更改为rename.jpg并调整Content-Type。

11.将文件的内容替换成下面的内容:

12.看截图:

13.和sf-info.jpg一样,利用LFI执行rename.jpg,如下图:

14.现在我们的webshell应该已经移动到了web的根目录,访问http://192.168.56.11/mutillidae/webshell.php.

如下图:

工作原理

在这个章节中,我们使用一种绕过文件上传限制的方法,以便将恶意代码上传到服务器中。但是由于部分限制,上传的文件不能直接由攻击者执行,因为他们必须作为图像上传,所以浏览器和服务器便只会将他们视作图像来处理,并不会执行其内部的恶意代码。

我们使用本地文件包含漏洞来执行上传的文件,这是对文件类型限制的一另类的绕过思想。就拿我们这个webshell来说,首先我们执行命令来了解内部服务器设置,发现了存储文件的目录。

一旦我们知道了内部文件存放的位置,那么我们就可以上传webshell并添加第二个脚本将其复制到web的根目录,这样的话我们就可以直接从浏览器调用它,从而完成此次攻击。

下一篇
举报
领券