ADCTF2024 个人Writeup

ADCTF2024 个人Writeup

💡 原文中文,约63500字,阅读约需151分钟。
📝

内容提要

文章讨论了多个CTF(Capture The Flag)题目,涵盖Python编程、漏洞利用和加密解密等技术。通过分析源码和运用各种技巧,成功获取多个flag,包括libc、MIDI文件、SSTI漏洞和XXE攻击等。强调了编程能力和安全知识的重要性。

🎯

关键要点

  • 文章讨论了多个CTF(Capture The Flag)题目,涵盖Python编程、漏洞利用和加密解密等技术。
  • 通过分析源码和运用各种技巧,成功获取多个flag,包括libc、MIDI文件、SSTI漏洞和XXE攻击等。
  • 强调了编程能力和安全知识的重要性。
  • nolibc题目中,利用echo和while + read获取flag。
  • Black MIDI题目中,通过MIDI编辑器和AES解密获取flag。
  • WEB题目中,通过HTTP服务和构造输入绕过过滤获取flag。
  • sst1题目中,利用SSTI漏洞构造payload获取flag。
  • lottery题目中,通过翻JSON获取flag。
  • sst2题目中,利用attr获取对象的方法绕过黑名单获取flag。
  • onlineJava题目中,通过创建进程读取文件获取flag。
  • XXE题目中,利用XML外部实体注入读取服务器文件获取flag。
  • PWN题目中,通过反编译和构造payload获取flag。
  • REVERSE题目中,通过异或运算获取原始flag。
  • CRYPTO题目中,通过n=p^4的性质破解RSA加密获取flag。

延伸问答

CTF题目中如何利用Python编程获取flag?

可以通过分析源码和构造payload来获取flag,例如在nolibc题目中使用echo和while + read命令。

在Black MIDI题目中,如何解密获取flag?

通过MIDI编辑器提取音轨中的数据,并使用AES解密算法解密得到flag。

WEB题目中如何绕过过滤获取flag?

可以通过构造特定的HTTP请求输入,利用SSTI漏洞触发代码执行来获取flag。

XXE攻击是如何工作的?

XXE攻击通过注入外部实体来读取服务器文件,攻击者可以利用此漏洞获取敏感信息。

如何在lottery题目中获取flag?

通过翻JSON数据,找到Name为Flag的内容并进行Base64解码即可获取flag。

在onlineJava题目中,如何读取文件?

可以通过创建进程执行命令来读取文件,例如使用Runtime.getRuntime().exec()方法。

➡️

继续阅读