文章总结: 本文详细阐述了文件上传服务端检测中条件竞争漏洞的原理与绕过方法。核心在于利用服务器先上传后检测删除的逻辑漏洞,在文件被删除前的短暂时间窗口内执行恶意代码。实验通过上传一个能生成新文件的脚本,利用时间差在高并发访问下成功绕过检测并生成永久后门文件。建议在安全建设中避免此类先存后检的逻辑,或采用随机文件名、文件锁等机制降低风险。 综合评分: 80 文章分类: WEB安全,漏洞分析,渗透测试,漏洞POC
网安每日干货分享《条件竞争检测与绕过》-0306
原创
建哥聊安全 建哥聊安全
建哥聊安全
2026年3月6日 08:40 湖南
条件竞争检测与绕过
实验目的
通过本实验,掌握文件上传服务端检测中的条件竞争的检测原理以及绕过方法。
实验环境
·操作机:Win10 用户名:Administrator 密码:Sangfor!7890
·靶机:Apache + PHP
·实验地址:http://ip/upfile/6/upload.html
实验原理
文件上传从客户端进行检测显然是防护不足的,所以需要从服务器端进行防护。 服务端的检测与绕过方法有很多,常见的有:
-
后缀名检测绕过
-
MIME类型检测与绕过
-
文件内容检测与绕过
-
00截断绕过
-
条件竞争检测与绕过
条件竞争是一种服务器端的漏洞,由于服务器端在处理不同的请求时是并发进行的,因此如果并发处理不当或相关操作顺序设计的不合理时,将会导致此类问题的发生。 一些网站文件检测逻辑是先允许上传任意文件,然后检查文件内容是否包含可执行脚本,如果包含则删除。如果在删除之前访问上传的php文件,从而执行上传文件中的php代码。在这整个过程中,会出现以下三种情况:
-
访问时间点在上传成功之前,没有此文件
-
访问时间点在刚上传成功但还没有进行见判断检查,该文件存在
-
访问时间点在判断之后,文件被删除,没有此文件
实验步骤
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脚本实现),在未删除之前立即访问(访问时不报错,说明上传的文件访问时成功解析),则会自动生成一个新的文件,新文件不在检查范围内,即不会被删除。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:建哥聊安全 建哥聊安全 建哥聊安全《网安每日干货分享《条件竞争检测与绕过》-0306》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论