2024.9.3作业

文件上传防御手段和绕过方式

文件上传漏洞是指网站或应用程序中存在的一种安全漏洞,攻击者可以利用该漏洞向服务器上传恶意文件。通过文件上传漏洞,攻击者可以上传包含恶意代码的文件,如Web shell、恶意脚本、恶意软件等,从而获取服务器的控制权或执行恶意操作。这可能导致服务器被入侵、敏感数据泄露、服务拒绝等安全问题。通常,攻击者利用文件上传漏洞来执行远程代码,控制服务器或网站,进而实施更广泛的攻击。

防御手段有:

1、文件类型检查:白名单黑名单设置

2、文件大小的限制:避免太大的文件把服务器资源耗尽

3、文件扩展名检查:避免文件名使用特殊字符或恶意代码,可以对文件名进行过滤或重命名

4、文件内容检查

5、文件存储路径隔离:防止存储的文件被恶意执行

6、文件权限设置

7、前端JS检测

8、MIME检测

文件上传漏洞绕过方式:
1.大/双写文件名绕过
2.恶意文件内容以多段拼凑/拆解的形式组合
3.目录穿越到可执行目录
4.修改MIME类型
5.大小写绕过
6.图片木马
7.文件包含绕过
8.文件竞争绕过

常用一句话木马

1、php:

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

2、asp

 <%eval request ("pass")%>

3、aspx

<%@ Page Language="Jscript"%> <%eval(Request.Item["pass"],"unsafe");%>

常用webshell管理工具的使用

Antsword

小皮建立一个测试站点

写一个小马

放到测试站点的根目录下

尝试连接测试站点成功了,就直接添加

双击就可以成功连接了

先退出连接,设置蚁剑的代理,与burpsuite的要相同,打开burpsuite准备抓包

开启拦截后,双击连接就可以抓到了

查看一下这个包

发送给repeater,将他发送,观察响应包

特征:使用URL解编码;响应包是明文;有@ini_set()函数的为强特征

Godzilla

管理—>生成,类型选择php

将生成的文件放在测试站点的根目录下

测试链接一下,成功

进入编辑后,修改代理为127.0.0.1:8080

开启burpsuite拦截,点击测试链接,此时可以抓到三个包

特征:会响应三次,第一个包不带cookie,但是第一次连接后,后面的包都会带上生成的cookie,第二个、第三个都只有很少的数据

显示user-agent,accept,弱特征

Behinder

生成协议

添加连接之后这样就是成功连接了

先断开连接,打开burpsuite拦截

观察抓到的包

特征:Accept字段

Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7

         content-type字段

Content-type: Application/x-www-form-urlencoded

文件上传无回显如何找到webshell的地址

1. 字典爆破

  • 文件上传后,文件有时会直接以文件名的形式放在专属的upload目录中,如/upload/1.php,或者加上当前日期,如/upload/2024-01-01/1.php。可以使用字典工具来爆破可能的文件路径。
    1. 确定可能的文件上传目录。
    2. 使用字典工具或自定义脚本,结合常见的文件名和日期格式,对可能的文件路径进行爆破。
    3. 监控服务器响应,寻找可能的webshell地址。

2. 检查服务器日志

  • 查看HTTP请求日志,特别是在上传文件失败或成功的记录中,可能会有可疑的URL或文件路径。
    1. 登录到服务器,找到HTTP请求日志文件(如Apache的access.log或Nginx的access.log)。
    2. 使用文本搜索工具(如grep)来查找与文件上传相关的日志条目。
    3. 分析日志内容,寻找可能的webshell地址或上传的文件路径。

3. 异常检测

  • 有些webshell在运行时会抛出错误或异常,通过监控网站的服务器错误页面,可以寻找异常报告。
    1. 访问网站的错误页面(如404、500等)。
    2. 仔细查看错误页面上的信息,寻找可能的异常报告或堆栈跟踪。
    3. 分析异常信息,尝试定位webshell的位置。

4. 文件名检测

  • 如果webshell使用了特殊命名规则(如包含特定字符组合的文件名),可以在服务器目录下搜索这些文件。
    1. 登录到服务器,使用文件搜索工具(如find、locate等)。
    2. 根据webshell可能的命名规则,构造搜索模式。
    3. 执行搜索命令,查找匹配的文件。

5. 网络扫描

  • 利用安全审计工具在网络流量中查找未授权访问或命令执行的行为,这有助于发现隐藏的webshell
    1. 选择合适的网络扫描工具(如Nmap、Wireshark等)。
    2. 配置扫描参数,对目标网络进行扫描。
    3. 分析扫描结果,寻找可能的webshell活动。

6. 黑盒测试

  • 尝试向服务器发送各种文件上传请求,看是否有意外响应,这可能暴露webshell的位置。
    1. 构造不同的文件上传请求,包括不同的文件名、文件类型和请求头。
    2. 发送请求到服务器,并仔细观察服务器的响应。
    3. 分析响应内容,寻找可能的webshell地址或提示信息。

7. 源码审查

  • 如果有可能,查看网站的后台代码,特别是与文件上传功能相关的代码,查看是否存在文件处理漏洞,这是隐藏webshell的常见手段。
    1. 获取网站的源代码(可能需要通过漏洞利用或其他手段)。
    2. 仔细审查与文件上传功能相关的代码段。
    3. 分析代码逻辑,寻找可能的漏洞点或webshell的隐藏位置。

upload-labs

less 6

查看源码发现没有转换大小写

改后缀名就可以了

less 7

查看源码没有屏蔽空格

用burpsuite抓包在后缀名前后加上空格就可以了

less 8

查看源码,发现没有屏蔽.

在burpsuite修改后缀名加.就可以

less 9

查看源码发现没有对特殊字符::$DATA进行特殊字符绕过

所以在后缀名添加::$DATA

less 10

查看源码,发现也是一个黑名单,但是同样也只检查一次

所以把文件名改为pphphp就可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值