条件竞争检测与绕过

实验原理

文件上传从客户端进行检测显然是防护不足的,所以需要从服务器端进行防护。
服务端的检测与绕过方法有很多,常见的有:

1. 后缀名检测绕过
2. MIME类型检测与绕过
3. 文件内容检测与绕过
4. 00截断绕过
5. 条件竞争检测与绕过

条件竞争是一种服务器端的漏洞,由于服务器端在处理不同的请求时是并发进行的,因此如果并发处理不当或相关操作顺序设计的不合理时,将会导致此类问题的发生。
一些网站文件检测逻辑是先允许上传任意文件,然后检查文件内容是否包含可执行脚本,如果包含则删除。如果在删除之前访问上传的php文件,从而执行上传文件中的php代码。在这整个过程中,会出现以下三种情况:

1. 访问时间点在上传成功之前,没有此文件
2. 访问时间点在刚上传成功但还没有进行见判断检查,该文件存在
3. 访问时间点在判断之后,文件被删除,没有此文件

实验步骤

1、登录操作机,打开浏览器,输入实验地址:http://ip/upfile/6/upload.html

2、在操作机上准备要上传的文件(脚本文件),比如新建1.php文件

3、点击“选择文件”按钮,选中要上传的文件

4、点击“submit”按钮,文件上传成功

5、访问http://ip/upfile/6/upload/info.php,找不到该文件

6、将脚本文件info.php的脚本内容修改

7、点击“选择文件”按钮,再次选中要上传的文件

8、点击“submit”按钮,上传文件,并立即访问http://ip/upfile/6/upload/info.php(利用时间差,要),没有报错,说明上传的脚本成功解析

9、访问http://ip/upfile/6/shell.php,新的脚本文件成功解析

实验总结

掌握文件上传的服务端检测中的条件竞争检测原理以及绕过方法。上传脚本文件,成功上传,但访问时找不到文件,可能存在条件竞争。可以上传一个生成新的文件的脚本文件,利用成功上传到删除文件的时间差(时间差太短可以利用Python脚本实现),在未删除之前立即访问(访问时不报错,说明上传的文件访问时成功解析),则会自动生成一个新的文件,新文件不在检查范围内,即不会被删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值