Pwntools 高级应用

发布在 CTF

上一篇blog中我简要介绍了一下pwntools的各个模块基本的使用方法,这里给出一点其他方面的补充。

阅读全文

Exploit利器——Pwntools

发布在 CTF

pwntools是由Gallopsled开发的一款专用于CTF Exploit的Python库,包含了本地执行、远程连接读写、shellcode生成、ROP链的构建、ELF解析、符号泄漏等众多强大功能,可以说把exploit繁琐的过程变得简单起来。这里简单介绍一下它的使用。

阅读全文

Trend Micro CTF 2015 - Writeups

发布在 CTF

趋势科技举办的CTF比赛,题目的分类比较奇怪,而且本次题目中linux binary非常少,很多是windows binary。
这次是跟随队伍一起比赛,贡献了400分,比之前划水的时候多了不少。

照例是先放一些自己搞出来的题。

阅读全文

Shellcode生成器——msfvenom

发布在 CTF

之前在打CTF的时候写exploit,总是为了找不到shellcode而发愁,最近更新的peda的shellcode生成功能好像都不好使了,只能使用那万年不变的24 bytes shellcode,而且还没办法规避某些特殊字符。

不过metasploit framework套件中的msfpayload与msfencode配合使用可以做到生成指定的payload,现在这两个工具进行了合并,这就是msfvenom。安装了整个msf的话这个工具就已经包含其中了。

阅读全文

MMA CTF 2015 - Writeups

发布在 CTF

比赛时间:2015-09-05 00:00 UTC — 2015-09-07 00:00 UTC
独立玩的一次比赛,其实也比较水,因为也很久没打了,自己的水平本来就不高这次更是只能干看着……
先放一些自己当时搞出来的题好了,后面接一些转载来的。

链接均出自github的write-ups-2015仓库

目录

pwn/RPS
forensics/Splitted
crypto/Smart Cipher System
stego/Stream
web/Login as admin!
web/Login as admin!(2)
web/Uploader
misc/MQAAAA
reverse/Can not be run

阅读全文

近期接触的CTF工具介绍

发布在 CTF

最近看了一些CTF比赛的writeup,也接触到了一些比较好用的工具,所以就把它们记在下面,供以后参考。

pcapfix

pcap与pcapng文件的修复工具,适用于一些header损坏的pcap文件。

JEB

Android apk逆向分析神器,使用java编写可以跨平台使用,相当于apktool+jad+dex2jar的组合,既能够反编译出smali代码又能最终反编译出java代码,还可以进行字符串、资源分析。

不过就是它并不是开源软件:)

使用之前需要注意的就是如果无法加载swt包,就在网上下载一个适用于系统的swt.jar替换原有的swt.jar即可。

fsck.ext4

Linux中自带的文件系统修复工具,可以用于修复破损的img文件。

extundelete

与ext3grep工具类似,ext文件系统的文件反删除工具,可以根据inode信息恢复被删除的文件,需要安装ext2fs library.编译安装后运行

1
extundelete --restore-all corrupt-file.img

exiftool

文件元数据(meta data)的提取工具,支持多种文件的详细元数据,在做审计分析的题时非常有用,因为flag经常藏在一些比较冷门的meta data中。

unpy2exe

对于使用py2exe打包之后的python程序,可以回复成之前的pyc字节码。

uncompyle2

可以与上面的工具配合使用,能够将pyc或者pyo的字节码反编译成py源代码。

注释和共享

Level 5

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <string.h>

int main(int argc, char **argv) {

char buf[128];

if(argc < 2) return 1;

strcpy(buf, argv[1]);

printf("%s\n", buf);

return 0;
}

典型的buffer overflow,而且没有任何的保护措施,直接在栈上执行shellcode就可以了。

在拿到shell之前需要先进行setreuid提权,写出shellcode。

阅读全文

AsisCTF 2015 - Simple Algorithm

Score: 100

根据下面的加密算法和给出的密文解出flag

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/python

flag = '[censored]'
hflag = flag.encode('hex')
iflag = int(hflag[2:], 16)

def FAN(n, m):
i = 0
z = []
s = 0
while n > 0:
if n % 2 != 0:
z.append(2 - (n % 4))
else:
z.append(0)
n = (n - z[i])/2
i = i + 1
z = z[::-1]
l = len(z)
for i in range(0, l):
s += z[i] * m ** (l - 1 - i)
return s

i = 0
r = ''
while i < len(str(iflag)):
d = str(iflag)[i:i+2]
nf = FAN(int(d), 3)
r += str(nf)
i += 2

print r
阅读全文

BrieflyX

Previous chief leader of 9# Studio


Infomation Security Engineer


Beijing, China