Skip to content

Week 2

本周的题将继续在上周的基础上,注重入门知识基础、工具的使用等。从下周开始,题目将逐渐增加难度,希望大家把握好前两周的题目考查内容,为后面的题目做好准备。

Pwn

ez_game

本题考查的是 ret2libc 的知识点。

开始这个题目前,你需要先了解以下内容:

  • 栈溢出的原理
  • PLT 和 GOT 表的关系以及延迟绑定
  • 偏移和基地址之间的关系(如 puts 函数相对于 libc 基地址的偏移)
  • 在 64 位程序下如何实现控制程序的参数
  • 了解栈对齐的实现
  • 学会寻找 /bin/sh 的地址

内容有点多,希望大家能继续玩这个游戏。

Inverted World

本题考查 ret2backdoor 以及基础的逆向能力。

程序中的 _read 函数为自定义的函数,需要分析(IDA 可能会在反编译的 C 函数窗口把这个函数的名字前面的下划线去掉)

除此之外还要注意一下栈帧的结构以及函数调用时栈帧的变化。

Bad Asm

本题考查 shellcode 编写能力。

题目对 shellcode 的要求是:

  • 不能直接使用限制的汇编指令
  • shellcode 中间不能有空字节。

想想办法绕过这些限制。

可以利用一些在线工具辅助解答:Online x86 / x64 Assembler and Disassembler.

Reverse

Dirty_flowers

考虑到新生在 Week 2 就学会汇编和花指令可能还是有点奢望,因此本题考查的实际上是 IDA 的 nop 操作。

只做出这个题目实际上需要的前置知识非常少,只需要根据题目中的提示信息学会 IDA 如何 patch 汇编指令从而正确反编译。

当然希望同学们可以通过这个题多多学习汇编语言,了解花指令是如何让 IDA 无法正确反编译的。

ezencrypt

安卓常见的加密手段。

  • Java 层有两个加密(感觉能看成一个呢)
  • so 层有两个加密(感觉只能算一个呢)

请查找有关 Java 层的标准加密方式,Java 层调用 so 层的调用值传递方式。(JNI 怎么传字符串呢?)

这次的题很简单呢。

Ptrace

本题考查对于调试器原理的理解,侧重对 ptrace 的了解。

这里包含两个文件 fatherson,请将两个文件放在同一目录下,并且只需要启动一个文件即可。

所以需要先理清这两个文件的关系,在此过程中,你可能还需要了解 fork execl 等函数的作用,它们可以帮助你理清文件的关系。

加密的方法很简单,重点关注 ptrace 到底做了什么,改变了什么。

UPX

选手需要了解 UPX 以及它的加密算法。

Web

你能在一秒内打出八句英文吗

考查对 Web 自动化脚本的撰写,可以了解下 Python 的 RequestsBeautifulSoup 库,以及 HTTP 会话控制。

复读机

本题考查 Python 中 Flask 框架中,render_template 等函数导致的模板渲染注入(SSTI)的利用。

对于 Python SSTI,一个简单的例子是,当你输入 {{ 3+4 }},它将输出了 7. 那么,通过精心构造 {{ }} 中的表达式,可以实现任意命令执行。

在编辑这一段的时候直接写 `{{ 3+4 }}`,导致 Vue 直接渲染了结果 7,可以说是现场复现了模板注入了。

谢谢皮蛋 plus

还是 SQL 注入题,在 Week 1 的基础上增加了一点过滤。选手需要测试过滤了哪些字符,并尝试绕过。

这篇文章总结了一些常见的 SQL 注入:SQL 注入绕过过滤总结

PangBai 过家家(2)

了解 Git 是什么,以及它的常见命令。 互联网上有很多 .git .svn .DS_Store 等的泄露工具,但所支持的功能参差不齐。对于泄露 .git 的工具,有些不能泄露出提交历史、Stash、标签等。

Misc

字里行间的秘密

考查一般的文字隐写形式,可自行搜索相关文字隐写的考点与考查方式。

热心助人的小明同学

内存取证本质就是解析内存获取计算机某个时间节点的状态信息(如进程、文件、注册表、浏览记录等)

我们通常在 CTF 中遇到的内存取证题基本给了一个 .raw 文件,需要我们使用工具去解析(工具用得熟练就赢了)

对于初学者来说,建议使用 Volatility 作为内存取证的入门工具,你需要做的就是想办法安装这个软件,搜索使用方法,根据题目的指引「一把梭」。

对于针对老旧系统的镜像取证,通常使用 Volatility 2,这也是用的比较多的版本;面对一些新系统的内存镜像可以尝试使用 Volatility 3,这个软件的具体用法,可以尝试使用 -h 命令行选项摸索,或自行上网了解。

当然,你也可以借助一些第三方取证工具。在某些题目下,使用一些第三方工具可能会有意想不到的效果。不过 Week 2 暂时不需要就是了,很简单的。