1.CTF基础知识及web
2.CTF入门学习籽料(非常详细)零基础入门到精通,收藏这一篇就够了!(文末自取)
3.CTF篇(攻防世界)
4.Consensys CTF - "以太坊沙盒"
5.Realworld CTF 2023 ChatUWU 详解
6.CTFer成长日记17:千里之堤,溃于蚁穴——off-by-one漏洞原理与利用1
CTF基础知识及web
CTF基础知识及web
一、CTF简介
CTF(Capture The Flag)夺旗比赛,是手机全景特效源码网络安全领域中技术人员之间进行技术竞技的一种比赛形式。CTF起源于年DEFCON全球黑客大会,取代了黑客之间通过发起真实攻击进行技术比拼的传统方式。如今,CTF已经成为全球网络安全领域流行的竞赛形式,年全球举办的国际性CTF赛事超过五十场。DEFCON作为CTF赛制的发源地,DEFCON CTF被誉为CTF赛场的“世界杯”。
二、CTF赛事介绍
CTF是一种流行的信息安全竞赛形式,以“夺得Flag”为特点。比赛流程中,参赛队伍需通过攻防对抗、程序分析等方式,在主办方提供的环境中获取一串具有一定格式的字符串或其他内容,并提交给主办方,以获得分数。Flag是CTF竞赛中用来称呼这种内容的通用术语。
三、CTF竞赛模式
1. 解题模式(Jeopardy)
解题模式CTF赛制,参赛队伍通过互联网或现场网络参与,解决网络安全技术挑战题目,以分值和时间排名,主要用于在线选拔赛。题目涉及逆向、漏洞挖掘与利用、Web渗透、密码、取证、隐写、安全编程等。
2. 攻防模式(Attack-Defense)
攻防模式CTF赛制中,参赛队伍在网络空间内互相进行攻击与防御,挖掘网络服务漏洞并攻击对手服务得分,同时修补自身服务漏洞以避免丢分。这种赛制实时反映比赛情况,最终以得分决定胜负,源码螺旋强调智力、技术、体力及团队协作。
3. 混合模式(Mix)
混合模式CTF赛制结合了解题与攻防元素,参赛队伍通过解题获取初始分数,然后通过攻防对抗进行得分增减,最终以得分高低分出胜负。iCTF国际CTF竞赛是此类赛制的典型代表。
四、CTF竞赛内容
主流CTF比赛内容包括但不限于Web应用漏洞挖掘与利用、密码学、程序逻辑分析与漏洞利用、Misc杂项(如隐写、数据还原、社会工程与信息安全相关的大数据)、二进制程序逆向分析、编程类等。
五、国内外著名赛事
国际知名CTF赛事包括DEFCON CTF、“世界杯”般的比赛、UCSB iCTF、Plaid CTF、Boston Key Party、Codegate CTF、Secuinside CTF、XXC3 CTF、SIGINT CTF、Hack.lu CTF、EBCTF、Ghost in the Shellcode、RwthCTF、RuCTF、PHD CTF等。国内赛事有XCTF全国联赛、AliCTF、KCTF、XDCTF、HCTF、ISCC、LCTF、TCTF、源码垃圾百度杯CTF夺旗大战、全国大学生信息安全竞赛创新实践能力赛线上赛等。
六、如何学习CTF
学习CTF需要分析赛题情况,了解涉及的知识点,并根据自身能力选择适合的方向。建议从低难度题目入手,研究历年经典写解(writeup),并关注团队需要掌握的基础知识,如Linux基础、计算机组成原理、操作系统原理、网络协议分析等。推荐书籍包括《RE for Beginners》、《IDA Pro权威指南》等。
CTF学习中,重要的是兴趣和团队协作。选择适合自己的方向,从低到高、由易入难地学习,同时研究历年经典写解,可显著提升技能水平。书籍推荐覆盖PWN、Reverse、Crypto、Web、Misc等方向,助力提高CTF竞赛能力。
七、备份文件下载
CTF竞赛中,涉及的备份文件下载技术包括目录遍历、PHPINFO、网站源码、.bak文件、vim缓存和.DS_Store文件等。具体操作步骤包括:点开链接、进入环境、使用工具(如burp)暴力破解、找到flag并提交等。注意避免在提交时出现空格,确保提交内容的空战源码正确性。
CTF入门学习籽料(非常详细)零基础入门到精通,收藏这一篇就够了!(文末自取)
从年月起,我开始接触CTF,专注于学习SQL注入、文件包含等Web安全知识。初期,虽然掌握了知识点,但并未能将其应用实践。通过刷题,我逐渐领悟了知识点的应用场景和漏洞利用的技巧,但在挖掘源代码(src)漏洞方面仍感迷茫,学习一年后,尚无从下手的经验。为帮助有志于CTF领域学习的朋友,我整理了一系列学习籽料,旨在详细记录自己的学习过程,以供参考。 CTF,中文译为夺旗赛或签到赛,在网络安全领域中,是指技术人员之间进行技术竞技的一种比赛形式。CTF竞赛通常包括多个部分,涵盖各种技术挑战,如Web、逆向、密码学等。了解不同竞赛网站的特性和题目类型,对于初学者而言至关重要。以下是一些推荐的CTF竞赛平台: buuctf buuoj.cn/ 该平台题库全面,难度梯度合理,常举办自办比赛,适合不同水平的选手。 攻防世界 adworld.xctf.org.cn/ 以含金量高的x ctf比赛著称,题目排序可能略显混乱,适合中高水平选手,题目质量上乘。 CTFshow ctf.show/ 适合初学者,部分教程免费,相较于前两个平台,体量较小。源码盛世 nssctf nssctf.cn/ 专注于Web安全,风格类似洛谷,频率高,界面美观。 除了参与竞赛,还需要关注学习和资源网站,以便获取更全面的知识和技术更新。以下推荐网站对学习者颇具价值: CTF维基 ctf-wiki.org/ 提供所有方向的详细介绍,适合文字学习者,高难度内容可能缺失。 CTFtime ctftime.org/ 汇集全球战队成绩信息,便于查找知名比赛,参考世界排名。 pojie 破解 提供破解工具和比赛相关信息,相当于CTF社区的论坛。 freebuf 首次接触的平台,包含最新热点和技术贴。 先知社区 xz.aliyun.com/ 分享新生赛总结,包含校赛等周期较长、难度适中的比赛。 对于黑客与网络安全的学习,需要明确学习路线图。该路线图涵盖了攻击和防御领域所需的知识点,包括网络安全法学习、网络安全运营、渗透测试基础、漏洞详解、计算机基础知识等。配套的视频教程详细讲解了路线图中的每一个知识点,共计多集,内容丰富,涵盖了网络安全入门的必知必会学习内容。此外,还提供了一系列技术文档和电子书,包含个人参与大型网安行动、CTF比赛和挖掘SRC漏洞的经验和技术要点,以及多本电子书。面试题集锦,尤其适用于寻找网络安全工作机会的求职者,包含深信服、奇安信、腾讯等大厂面试中常见的问题。 综上所述,通过上述资源的学习和实践,初学者可以在CTF领域快速成长,不仅提升技术能力,还能为未来的职业道路奠定坚实基础。欢迎各位朋友积极参与,共同探索网络安全的奥秘。CTF篇(攻防世界)
欢迎来到CTF攻防世界的入门指南,深入探索每个挑战的奥秘:挖掘源代码的隐藏线索: 使用F开发者工具或快捷键Ctrl+U,探索flag的秘密所在。
解锁robots协议的智慧: 探索robots.txt文件,flag可能就隐藏在其规则之中。
备忘文件的细微之处: 观察.bak文件格式,洞察隐藏在备份中的flag。
理解Cookie的力量: 通过burp suite的抓包工具,解读cookie.php,破解信息加密。
前端知识的实战应用: 破解disabled属性,展现你的代码技巧,寻找flag。
登陆验证挑战: 挑战暴力破解或直接输入,解锁神秘账户。
php逻辑的逻辑迷宫: 探索构造参数a和b,遵循条件判断的线索。
/consensys-...的解析文章,分析了Consensys在地址0xcbef5c4a0d0cde9d6fdceeca部署的以太坊沙盒合约。合约要求黑客攻破并获取其中的所有ETH,但不提供源代码。首先,借助contract-library.com/网站,解析二进制代码,得到一个典型的solidity源码结构。合约包含4个函数、两个uint[]数组全局变量。函数包括对array_0的赋值、set_array、owners以及一个复杂涉及delegatecall的函数xf。
函数xf复杂,需满足三个条件,特别是msg.sender必须是owner数组中的一员。通过分析,发现在没有直接设置owner数组的函数下,可以通过set_array(_key, _value)间接改变owner数组。利用solidity中动态数组在storage的存储方式,计算array[0]和owner[0]对应的storage key差值,通过set_array方法调整owner数组。实现此目的,可部署一个hacker.sol合约。
为满足第三个条件,即构造一个不含特定字节的合约,通过手动编写合约并利用ctf的第四个函数delegatecall该合约,实现清理sandbox中的ETH。使用create2函数创建临时合约,将合约地址作为赠品赠予该临时合约,其初始化代码执行selfdestruct(tx.orgin)函数,转移所有ETH至合约部署人。
通过opcode编写runtime code,部署HackCTF合约,调用ctf的第四个函数,将合约地址作为参数传入,完成清理过程。此方法是在登链社区首发的解析结果,旨在提供对以太坊沙盒合约的深入理解和破解策略。
Realworld CTF ChatUWU 详解
本文深入解析了 Realworld CTF 中的 ChatUWU 挑战。题目主要围绕一个基于 socket.io 的聊天室,其核心问题在于 socket.io 中的 parseuri 问题,而非 DOMPurify 的过滤漏洞。
首先,题目提供了源码,其中前端的关键部分为 index.html。后端代码使用了 DOMPurify 来过滤传入的 from 和 text,但分析发现此版本(^0..0)基本没有漏洞。因此,直接从代码中无法找到突破口。
挑战的关键在于理解 socket 连接机制。实际操作中,前端的 socket 连接到自定义服务器,而不是常规的公共聊天室。这使得 xss 攻击难以通过常规方式触发。
通过师傅提供的 payload ...:/?...@自己的服务器地址,揭示了问题背后的原理。分析发现,payload 中的 @ 后面部分作为服务器地址,是通过解析 location.search(url查询参数)实现的。
逐步调试后发现,socket 连接过程涉及 uri 解析,关键在于 uri 解析组件 parseuri.js。通过此组件解析 uri 后,生成的 hostname 为恶意服务器地址,导致 socket.io 连接到恶意服务器,从而触发 xss 攻击。
本地测试可验证这一过程,通过执行 parseuri.js 的代码,发现 hostname 被错误解析,导致连接到恶意服务器。这揭示了 socket.io 内部对 uri 的错误解析,进而导致安全漏洞。
解决策略在于自建恶意服务器,引导 xssbot 连接到该服务器,通过发送可以造成 xss 的 text 来窃取 cookie。实践步骤包括搭建恶意服务器、向 xssbot 发送攻击指令等。
综上所述,ChatUWU 挑战的关键在于对 socket.io 解析机制的理解及利用。通过深入分析代码、调试与本地测试,可揭示并解决这一安全挑战。
CTFer成长日记:千里之堤,溃于蚁穴——off-by-one漏洞原理与利用1
off-by-one漏洞是缓冲区溢出漏洞的一种,主要特征是溢出仅一个字节,且这个字节的控制性不一定。这种漏洞通常出现在循环边界设置不当或字符串函数使用不当时。在不当的循环边界设置中,如果程序员误将小于等于号写为小于号,导致用户能够向指定的缓冲区写入多一个字节,覆盖缓冲区结束标志,进而泄露后续内存数据。例如,在C语言源代码中,如果用户输入长度为5的字符串,但由于循环条件错误地设置为小于等于号,导致输入的字符串实际上覆盖了缓冲区结束符,引发数据泄露。
另一种情况是字符串函数使用不当,如在复制字符串时未正确检查目标缓冲区的长度,导致目标缓冲区溢出。例如,在使用strcpy函数时,如果目标字符串长度小于实际需要的长度,将引发缓冲区溢出。在上述C语言代码示例中,如果复制的字符串长度为5,但目标缓冲区长度为5,将导致目标缓冲区溢出,其中溢出的字节通常为0x,不可控。
利用off-by-one漏洞的方法通常涉及通过控制溢出字节来影响程序的控制数据,如改变指针值或修改关键变量。常见利用思路是,当溢出的字节位于程序的控制数据时,利用其控制程序执行流程。利用漏洞时,通常需要分析漏洞所在函数的调用位置和程序的内部结构,确定溢出字节的控制范围。
以Asis CTF bks为例,分析了程序的源代码和结构,发现了一个off-by-one漏洞。该漏洞存在于读取用户输入的函数中,通过精心构造的输入数据,可以将输入数据写入到特定的内存位置,从而利用程序中的指针操作。分析表明,利用该漏洞可以篡改或伪造book数据结构,实现任意地址读写,并最终利用shellcode实现系统权限提升。实现这一过程的关键是通过构造特定的输入数据,控制off-by-one漏洞的溢出字节,从而影响程序的控制流程和内存布局,最终实现漏洞利用。
CTF入门必备之题型介绍
CTF入门必备,理解题型至关重要。比赛中的主要题型包括Web渗透、RE逆向、Misc杂项、PWN漏洞利用和Crypto密码破解。
Web类题目是入门者的友好选择,涉及注入、XSS、文件包含等漏洞,信息搜集对解题至关重要。通过敏感目录或备份文件,可以获取源代码和内部URL。例如,Banner识别可揭示框架信息,帮助利用历史漏洞。SQL注入是常见漏洞,包括多种注入方式,如数字型、UNION等。
文件读取漏洞允许攻击者读取私密文件,威胁服务器安全。SSRF漏洞则利用服务端的请求功能,攻击内部系统。命令执行漏洞和XSS漏洞分别涉及恶意命令注入和网页代码注入,需对用户输入进行严格检查。
二进制类题目中,Android题目多关注逆向和杂项。逆向涉及Java/C++的分析和调试,静态与动态分析是常用手段。代码保护和混淆增加了逆向难度,而符号执行和插桩则是解题工具。
PWN题目聚焦于利用漏洞获取权限,需要强大的逆向和数学能力。密码学题型对参赛者的数学和逻辑思维要求极高,挑战性日益提升。
掌握这些题型,对于新入门的CTF选手来说,是提高解题技能和理解深度的关键步骤。每个领域都有其独特技巧和策略,需要深入学习和实践才能在游戏中脱颖而出。