{"id":19283182,"url":"https://github.com/sqlsec/flag","last_synced_at":"2026-03-02T11:02:07.872Z","repository":{"id":112977364,"uuid":"301394199","full_name":"sqlsec/Flag","owner":"sqlsec","description":"国光的 Flag 记录打开情况","archived":false,"fork":false,"pushed_at":"2020-10-08T06:28:29.000Z","size":14,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-17T11:02:27.861Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sqlsec.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-05T12:03:28.000Z","updated_at":"2022-12-30T15:34:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"9f5a7ada-6cbb-401a-ba38-a7a300208ce8","html_url":"https://github.com/sqlsec/Flag","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sqlsec/Flag","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sqlsec%2FFlag","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sqlsec%2FFlag/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sqlsec%2FFlag/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sqlsec%2FFlag/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sqlsec","download_url":"https://codeload.github.com/sqlsec/Flag/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sqlsec%2FFlag/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29999222,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T09:59:02.300Z","status":"ssl_error","status_checked_at":"2026-03-02T09:59:02.001Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T21:30:03.121Z","updated_at":"2026-03-02T11:02:07.851Z","avatar_url":"https://github.com/sqlsec.png","language":null,"readme":"# 技能\n\n## 前端\n\n国光的前端感觉一直就是个半吊子水平，除了会审查元素用一用 Boostrarp 框架之外，让我纯手工使用 HTML、JS、CSS 写出一个精美的界面我是做不到的，另外这几年来前后端分离开发技术很火，所以 Vue 之类的框架也需要来学习，另外 JS 基础语法虽然可以看懂，但是深层次的 JS 也是目前的知识盲区。\n\n- [x] HTML、CSS、JS 基础\n- [x] Boostrap 框架使用\n- [ ] Vue\n- [ ] NodeJS\n- [ ] React\n- [ ] JS 进阶知识学习\n- [ ] NodeJS 项目编写\n\n## Linux\n\nLinux 虽然用的比较多，但是没有深入学习过，有时间希望自己可以静下来读完鸟哥的 Linux 私房菜这类书籍中的一本。\n\n- [x] Linux 基础知识\n- [ ] Linux 进阶知识\n- [x] Docker 基础使用\n- [x] DockerFile 简单编写\n- [ ] DockerFile 深入理解\n- [x] Docker-compose 项目编写\n- [ ] Dokcer-compose network 学习\n- [ ] 网络基础知识学习 类似于如何计算子网掩码这类的\n- [ ] Linux 权限维持\n- [x] Linux 安全加固基础\n- [ ] Linux 安全加固进阶\n\n\n## PHP\n\nPHP  是因为接触 CTF 比赛的时候学习的比较多，前端时间为了给客户培训  PHP 相关方面的漏洞，特地看了好几天的  PHP  手册，感觉受益匪浅，但是还是有一些盲区的，比如大型项目的代码审计，以及一些带框架的项目审计：\n\n- [x] PHP 基础语法\n- [x] PHP 数据类型、变量、常量\n- [x] PHP 表达式、运算符、流程控制\n- [x] PHP 函数\n- [x] PHP 类与对象\n- [x] PHP WebShell PHP5、PHP7 免杀\n- [x] PHP 弱类型与变量覆盖整理\n- [x] 中国蚁剑自定义编码器特征改造\n- [ ] 过 D 盾命令执行 WebShell\n- [x] PHP 小型 CMS 代码审计\n- [ ] PHP 大型 CMS 审计\n- [ ] ThinkPHP 框架项目审计\n\n## Python\n\n曾经做过半年左右的漏扫开发，也在那个时候受同事\u003ca href=\"https://blog.imipy.com/\" ref=\"nofollow\"\u003ebuzz\u003c/a\u003e的影响开始认真学习 Python，从一个 Python 半吊子水平变成一个稍微入门的人了。后面从南邮毕业写了那个毕设项目，自己又自学了 Django，感觉 Python 这块实际上掌握勉强及格了，但是由于做安全写代码比较少，所以目前来看我的 Python 编码水平又有所下降，看来不能闲着啊。\n\n- [x] Python 基础语法\n- [x] Python 函数\n- [x] Python 对象\n- [x] Python 多进程\n- [ ] Python 多线程\n- [ ] Python 协程\n- [x] Python Web 框架 Django\n- [ ] Python Web 框架 Flask\n- [ ] Python 程序设计思想\n- [x] Python Web 爬虫\n- [x] Python Web 项目编写\n- [ ] Python 前后端分离项目编写\n\n## JAVA\n\nJAVA 就是国光我的薄弱项了，后悔当初上大学的时候没有好好学习 JAVA，虽然曾经也使用过 JAVA 的 Spring 开发过项目，但是过去了这么久了，感觉现在都忘得一干二净了，所以 JAVA 这块得重新学习了。\n\n- [x] JAVA 基础语法\n- [ ] JAVA 进阶语法\n- [ ] JAVA Web 开发\n- [ ] JAVA 主流框架学习\n- [ ] JAVA 安全漏洞学习\n- [ ] JAVA Web 代码审计\n\n## C/C++\n\n虽然大一就学习过 C 语言，但是目前水平也只是过国家计算机二级的水平，这个水平等于没学，所以 C 语言和 C ++ 以后希望有时间来学习一下，因为红队 Windows 免杀这块很吃这方面的基本功，\n\n- [x] C 基础语法\n- [ ] C 进阶语法\n- [x] C ++ 基础语法\n- [ ] C ++ 进阶语法\n- [ ] C 算法练习\n- [ ] C 指针深入\n- [ ] C/C++ 小项目编写\n- [ ] C/C++ Windows 免杀\n\n\n## SQL 注入\n\n学习 SQL 注入大多从 MySQL 学起，因为 MySQL 搭建起来很方便，而且也常和 PHP 配合使用，所以基础的 MySQL 语法是要掌握的，否则后面的 UNION SELECT 联合查询注入和布尔类型的盲注、延时类型的盲注学起来就比较吃力了。国光个人感觉常规的 MySQL 手工注入已经没有短板了，除了异或注入这种了解的不多，但是像是 MSSQL、Oracle 数据库的注入的深度就不够，需要抓紧时间学习。还好自己当初把  SQLMap 手册翻完了，自认为对 SQLMap 的使用还算是可以的，不够有时候在 Oracle 这种数据库面前，SQLMap 无法注入出结果的时候，我就会很无从下手了。\n\n- [x] MySQL 基础语法\n- [x] MySQL 相关函数\n- [x] MySQL UNION 联合查询注入\n- [x] MySQL 报错注入\n- [x] MySQL 布尔类型盲注\n- [x] MySQL 延时类型盲注\n- [x] MySQL 堆叠注入\n- [x] MySQL 二次注入\n- [x] MySQL DNSLog 外带数据\n- [ ] MySQL 异或注入\n- [x] MySQL 注入常规 Bypass 技巧\n- [ ] MySQL 注入进阶 Bypass 技巧\n- [x] SQLMap 基础使用\n- [x] SQLMap 进阶使用\n- [x] SQLMap Tamper 编写\n- [ ] MSSQL 学习\n- [ ] Oracle 学习\n- [ ] MSSQL 注入深入理解\n- [ ] Oracle 注入深入理解\n\n## 文件上传\n\n感觉文件上传这一块姿势点比较好理解，刷完 uploads-lab 的话，基本姿势就掌握差不多了。\n\n- [x] %00 截断\n- [x] 非常规后缀绕过\n- [x] .htaccess 解析绕过\n- [x] 图片头效果\n- [x] MIME 绕过\n- [x] 前端绕过\n- [x] 二次渲染绕过\n- [x] 条件竞争绕过\n- [x] multipart*/*form*-*data 绕过\n\n## 文件包含/下载\n\n文件包含的话，基本上单独总结一下也是可以快速学习理解的，所以短板不多，但不代表没有。\n\n- [x] 文件包含原理\n- [x] 本地文件包含突破后缀\n- [x] 远程文件包含突破后缀\n- [x] PHP 文件包含配合伪协议\n- [x] 文件包含 Web 日志\n- [x] 文件包含 Sessions\n- [x] 文件包含 SSH 日志\n- [ ] 文件包含配合 phpinfo()\n- [ ] 文件包含配合系统 proc 进程\n- [ ] 文件包含 require_once 绕过\n\n## XSS\n\nXSS 目前刷完了几个靶场，感觉基础姿势掌握差不多了，另外也会一些基础的 Bypass 技巧，但是更深入的 Bypass 技巧缺乏整理\n\n- [x] XSS 基础靶场刷完\n- [x] XSS 一般 Bypass 技巧\n- [ ] XSS 进阶 Bypass 技巧整理\n- [x] XSS 配合 CSRF 攻击\n- [x] XSS 配合反代钓鱼攻击\n- [ ] XSS 实战技巧整理\n- [ ] XSS HTTPonly Bypass 整理\n- [ ] XSS 靶场题目开发完善\n\n## CSRF\n\nCSRF 的理解很喜欢余弦前辈的一句话：借“刀”杀人。这里的刀就是受害者的身份认证信息，拿到受害者的登录凭据信息理论上可以做任何受害者的操作，比如修改资料、修改密码等，如果受害者是高权限用户的话就可以做更多有危害的事情了。\n\n- [x] CSRF 基础理论与实操\n- [ ] CSRF POC 优化方法整理\n- [ ] CSRF payload 实战技巧完善\n- [ ] CSRF 靶场开发\n- [ ] CSRF 实战案例收集整理\n- [ ] CSRF Bypass 技巧整理\n- [ ] CSRF 大型 SRC 与 XSS 配合挖掘\n\n## 反序列化\n\n反序列化目前也只掌握了 PHP 反序列化，PHP 反序列化重点实际上入门很简单，主要看完几个魔术方法的特性，然后追踪调用就可以了，但是在实战项目中挖到 PHP 反序列化难度即比较高了， POP 利用链梳理整理真是一个技术活。另外自己的 JAVA 反序列化也不是很熟\n\n- [x] PHP 反序列化基础入门\n- [x] PHP 所有魔术方法整理学习\n- [ ] PHP 反序列化靶场多场景搭建\n- [ ] PHP 复杂 POP 链练习\n- [ ] PHP 实战项目审计出反序列化漏洞\n- [ ] JAVA 反序列化入门\n- [ ] JAVA 反序列化姿势整理\n- [ ] JAVA 实战项目审计出反序列化漏洞\n\n## XXE\n\nXXE 实际上当初学习的时候，网上实际上很少有深入讲解清除的，就比如很少有人说清楚 DTD 的作用。DTD 大家都知道起到 XML 约束规范的作用，但是具体是如何约束规范的呢？如果特意将 XML 语法改成不符合 DTD 规范还会报错吗？这些网上貌似都没有人尝试，导致国光我踩了很多坑，实际上 DTD 验证作用对浏览器要求很高，基本低版本的 IE 浏览器都可以复现成功。另外 PHP的 libxml 版本高于 2.9.0 也会导致远程 DTD 加载不会很顺利，现在 PHP 的 linxml 版本基本上都过高了，要想复现很难，不过 vulhub 里面的那个环境的 libxml 是符合要求的。另外还有一个待实验的，就是 libxml 高于 2.9.0 版本的时候，真的就无法远程 DTD 调用了吗？国光我觉得这里还是值得一试的，理论上是有办法突破的。\n\n- [x] XML 基础知识\n- [x] DTD 基础姿势\n- [x] XXE 信息收集\n- [x] XXE 配合伪协议 Base64 编码读取文件\n- [x] XXE CDATA 读取特殊文件\n- [ ] JAVA XXE 靶场搭建\n- [ ] JAVA XXE 特殊姿势点整理\n- [x] PHP XXE 无回显信息获取\n- [ ] 实战代码审计 XXE 漏洞挖掘\n- [ ] libxml 2.9.0 以上 远程DTD 调用\n- [ ] Python XXE 靶场搭建\n\n## SSRF\n\nSSRF 的实战场景不多，而且信息收集方面也具有局限性，如果 Redis 存在未授权访问漏洞的情况，SSRF 可以直接使用 DICT 协议发起攻击，这样效率最高，也可以使用 gopher 协议攻击，就是稍微要麻烦了一些。在 Redis 授权访问情况下，DICT 协议就 GG了，因为DICT 协议不支持多语句输入，导致密码无法被下一条语句记录，所以只能使用万能的 Gopher 协议了。另外使用 SSRF 攻击 MySQL 的时候，国光我复现一直都没有成功，找了赵今师傅帮忙看了下也没有成功，可能是我环境的问题，后面再单独花时间来整理一下，另外 DICT 协议可探测的端口范围也有待系统的整理（网上没有人整理过 DICT 可以探测的端口，实际上国光上次测试了发现只有很少的一部分端口才可以被探测到）。另外 SSRF 理论上可以攻击 FTP 等应用服务，这些都有待整理。\n\n- [x] SSRF 原理\n- [x] SSRF file、Dict、gopher 协议\n- [x] SSRF file 协议绕过\n- [x] SSRF Dict 协议攻击 Redis\n- [ ] SSRF Dict 可探测端口系统整理\n- [x] SSRF 攻击 Web 应用：SQL注入、命令执行\n- [x] SSRF gopher 协议 攻击授权访问 Redis\n- [ ] SSRF 攻击未授权的 MySQL\n- [ ] SSRF 攻击 FTP 应用\n- [ ] SSRF 绕过技巧整理与对应场景靶场搭建\n\n## 代码注入与命令执行\n\n代码注入这一块在 PHP 中除了经典的 assert 和 eval 可以代码执行，还有很多回调函数都是可以代码执行的，代码审计的时候也要重点关注这些回调函数。另外 P 神文章里面说过早期的很多回调函数都是可以直接免杀的，但是目前大多数都不可以免杀的，国光我曾经翻阅 PHP 手册硬还是发现了一些可以过狗和过D盾的回调函数，关于代码注入这一块在实际的审计中并没有遇到过，可遇不可求呀，希望日后自己也可以审计出代码注入相关的高危漏洞。\n\n命令执行的话主要是追踪类似于 system 之类的目录执行函数，实际上业务场景中主要就是活用命令连接符\u0026;|之类的符号，还有一些基本的绕过方法，比如绕过空格等之类的技巧，还有命令执行无回显的情况下多半是配合编码然后 DNSLog 回显信息，或者更直接一点的就是直接反弹 shell 出来。当然还有一些极端情况下，就是命令执行限制了长度，一般这种情况下就是利用 ls 写入文件，然后最后 bash 执行的思路来，这里是比较灵活的。在很多 Linux 服务器上一般安装的是 Redhat 系统，这样不仅可以使用  bash 命令执行写文件，也可以利用服务器自带的 Python 或者 Ruby 来写文件，写文件最好还是编码，这样很多情况下可以过一些 WAF 查杀。说道这里，听做红队免杀的朋友提到过这样的思路，使用 Python 的 request 加载 payload 很多情况下可以免杀，关于免杀后面日后再研究。\n\n- [x] eval 与 asset 总结\n- [x] PHP 回调函数整理\n- [ ] PHP 回调函数免杀优化\n- [ ] JAVA 代码注入整理\n- [ ] Python 代码注入整理\n- [x] Linux 下常用的命令连接符\n- [ ] Linux 下的执行命令的技巧整理\n- [x] 命令执行 Bypass 技巧整理\n- [ ] 绕过宝塔的 disable_functions 命令执行限制\n- [ ] D 盾命令执行突破\n\n## 内网\n\n内网一直没有系统的学习过，年前买了一本内网安全的书籍，发现里面域环境搭建这里太过于形式，所以后面就单独找了网上 Windows 运维的教程来学习了，不过后面其他事情内网那本书就搁置了。\n\n- [x] ~~Windows 单域环境搭建~~\n- [x] ~~Windows 域树搭建~~\n- [x] ~~Windows 域林搭建~~\n- [ ] Windows 黄金、白银票据的理解\n- [ ] Windows 认证加密方式\n- [x] ~~MSF 基础使用~~\n- [x] ~~MSF 常用模块学习~~\n- [ ] MSF 内网穿透路由\n- [x] ~~CS 基础使用~~\n- [x] ~~CS 穿内网~~\n- [ ] CS 插件开发\n- [ ] CS 冷门功能模块\n- [x] ~~CS 常用功能模块~~\n- [ ] Payload 免杀\n- [ ] Powershell 深入学习\n- [ ] Covenant C2 学习使用\n- [ ] SILENTTRINITY C2 学习使用\n\n# 书籍\n\n还是有很多优秀的书籍值得去再品一品的，下面列举一些未来国光打算看的书籍。\n\n- [ ] Web 之困 现代 Web 应用安全指南\n- [ ] “安全参考”系列杂志\n- [ ] 内网安全攻防 渗透测试实战指南\n- [ ] XSS 跨站脚本攻击剖析与防御\n- [ ] 黑客命令行攻防实战详解\n- [ ] PHP Web 安全开发实战\n- [ ] 白帽子讲浏览器安全\n- [ ] 白帽子讲 Web 安全\n- [ ] 黑客攻防技术宝典 Web 实战篇\n- [ ] 黑客攻防技术宝典浏览器实战篇\n- [ ] 硬件安全攻防大揭秘\n- [ ] 诸神之眼 Nmap 网络审计技术解密\n- [ ] Web 安全攻防渗透测试实战指南\n- [ ] Web 安全开发指南\n- [ ] Web 攻防之业务安全实战指南\n- [ ] Windows 黑客编程技术详解\n- [ ] Windows 内核安全与驱动开发\n- [ ] Wireshark 网络分析就这么简单\n- [ ] Web 应用安全权威指南\n- [ ] Kali Linux 大揭秘 深入掌握渗透测试平台\n- [ ] Python 安全编程项目实训教程\n- [ ] 云虚拟化安全攻防实践\n- [ ] 云计算开发与安全\n- [ ] 应急响应 网络安全的预防、发现、处置和恢复\n- [ ] 网络空间安全 拒绝服务攻击检测与防御\n- [ ] 物联网通信安全及解决方案\n- [ ] 局域网安全与攻防解密：基于 Sniffer Pro 实现\n- [ ] 机器学习互联网业务安全实践\n- [ ] 精通 Metasploit 渗透测试\n- [ ] 工业控制系统信息安全\n- [ ] 黑客攻防：实战加密与解密\n- [ ] 白帽子讲 Web 扫描\n- [ ] 云安全技术应用\n- [ ] 0day 安全：软件漏洞分析技术\n- [ ] 物联网安全理论与技术\n- [ ] Web 前端黑客技术揭秘\n- [ ] 渗透测试实战第三版红队版\n- [ ] Python 黑帽子黑客与渗透测试编程之道\n- [ ] Python 渗透测试编程技术方法与实践\n- [ ] Web 渗透测试与漏洞挖掘\n- [ ]  .Net Core 实战 手把手教你掌握 380 个精彩案例\n- [ ] Windows PowerShell 实战指南\n- [ ]  恶意代码分析实战\n\n书有点多，先不加了，等后面遇到感觉可以的书再补充\n\n\n# 记录\n\n这个版块上面 Flag 的完成情况。","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsqlsec%2Fflag","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsqlsec%2Fflag","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsqlsec%2Fflag/lists"}