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)夺旗比赛,是thingsboard 源码网络安全领域中技术人员之间进行技术竞技的一种比赛形式。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选手来说,是提高解题技能和理解深度的关键步骤。每个领域都有其独特技巧和策略,需要深入学习和实践才能在游戏中脱颖而出。
2024-12-22 21:01
2024-12-22 20:30
2024-12-22 20:23
2024-12-22 20:20
2024-12-22 19:17
2024-12-22 19:12