mirror of
https://github.com/nganhkhoa/CTF-All-In-One.git
synced 2024-12-25 11:41:16 +07:00
add 6.2.5
This commit is contained in:
parent
a9e9b644b5
commit
f635c36e5f
@ -84,6 +84,7 @@
|
|||||||
- [6.2.2 re ECTF2016 tayy](doc/6.2.2_re_ectf2016_tayy.md)
|
- [6.2.2 re ECTF2016 tayy](doc/6.2.2_re_ectf2016_tayy.md)
|
||||||
- [6.2.3 re Codegate2017 angrybird](doc/6.2.3_re_codegate2017_angrybird.md)
|
- [6.2.3 re Codegate2017 angrybird](doc/6.2.3_re_codegate2017_angrybird.md)
|
||||||
- [6.2.4 re CSAWCTF2015 wyvern](doc/6.2.4_re_csawctf2015_wyvern.md)
|
- [6.2.4 re CSAWCTF2015 wyvern](doc/6.2.4_re_csawctf2015_wyvern.md)
|
||||||
|
- [6.2.5 re PicoCTF2014 Baleful](doc/6.2.5_re_picoctf2014_baleful.md)
|
||||||
|
|
||||||
- [七、附录](doc/7_appendix.md)
|
- [七、附录](doc/7_appendix.md)
|
||||||
- [7.1 更多 Linux 工具](doc/7.1_Linuxtools.md)
|
- [7.1 更多 Linux 工具](doc/7.1_Linuxtools.md)
|
||||||
|
@ -83,6 +83,7 @@ GitHub 地址:https://github.com/firmianay/CTF-All-In-One
|
|||||||
* [6.2.2 re ECTF2016 tayy](doc/6.2.2_re_ectf2016_tayy.md)
|
* [6.2.2 re ECTF2016 tayy](doc/6.2.2_re_ectf2016_tayy.md)
|
||||||
* [6.2.3 re Codegate2017 angrybird](doc/6.2.3_re_codegate2017_angrybird.md)
|
* [6.2.3 re Codegate2017 angrybird](doc/6.2.3_re_codegate2017_angrybird.md)
|
||||||
* [6.2.4 re CSAWCTF2015 wyvern](doc/6.2.4_re_csawctf2015_wyvern.md)
|
* [6.2.4 re CSAWCTF2015 wyvern](doc/6.2.4_re_csawctf2015_wyvern.md)
|
||||||
|
* [6.2.5 re PicoCTF2014 Baleful](doc/6.2.5_re_picoctf2014_baleful.md)
|
||||||
* [七、附录](doc/7_appendix.md)
|
* [七、附录](doc/7_appendix.md)
|
||||||
* [7.1 更多 Linux 工具](doc/7.1_Linuxtools.md)
|
* [7.1 更多 Linux 工具](doc/7.1_Linuxtools.md)
|
||||||
* [7.2 更多 Windows 工具](doc/7.2_wintools.md)
|
* [7.2 更多 Windows 工具](doc/7.2_wintools.md)
|
||||||
|
@ -419,11 +419,6 @@ Count 152786
|
|||||||
- [pintool2](https://github.com/sebastiendamaye/pintool2)
|
- [pintool2](https://github.com/sebastiendamaye/pintool2)
|
||||||
- [Pin 3.5 User Guide](https://software.intel.com/sites/landingpage/pintool/docs/97503/Pin/html/)
|
- [Pin 3.5 User Guide](https://software.intel.com/sites/landingpage/pintool/docs/97503/Pin/html/)
|
||||||
|
|
||||||
#### 练习
|
|
||||||
- [**RE** - picoCTF 2014 - Baleful](../src/Reverse/5.2_baleful)
|
|
||||||
- [**RE** - Hack You 2014 - reverse - 400](../src/Reverse/5.2_reverse_400)
|
|
||||||
- [**RE** - th3jackers CTF 2015 - rev100 - 100](../src/Reverse/5.2_th3jackers_100)
|
|
||||||
|
|
||||||
|
|
||||||
## 扩展:Triton
|
## 扩展:Triton
|
||||||
Triton 是一个二进制执行框架,其具有两个重要的优点,一是可以使用 Python 调用 Pin,二是支持符号执行。[官网](https://triton.quarkslab.com/)
|
Triton 是一个二进制执行框架,其具有两个重要的优点,一是可以使用 Python 调用 Pin,二是支持符号执行。[官网](https://triton.quarkslab.com/)
|
||||||
|
@ -6,6 +6,8 @@
|
|||||||
- [参考资料](#参考资料)
|
- [参考资料](#参考资料)
|
||||||
|
|
||||||
|
|
||||||
|
[下载文件](../src/writeup/6.1.1_pwn_hctf2016_brop)
|
||||||
|
|
||||||
## 题目复现
|
## 题目复现
|
||||||
出题人在 github 上开源了代码,[出题人失踪了](https://github.com/zh-explorer/hctf2016-brop)。如下:
|
出题人在 github 上开源了代码,[出题人失踪了](https://github.com/zh-explorer/hctf2016-brop)。如下:
|
||||||
```C
|
```C
|
||||||
@ -368,7 +370,7 @@ firmy
|
|||||||
|
|
||||||
|
|
||||||
## Exploit
|
## Exploit
|
||||||
完整的 exp 如下,其他文件放在了[github](../src/writeup/6.1.1_pwn_hctf2016_brop)相应文件夹中:
|
完整的 exp 如下:
|
||||||
```python
|
```python
|
||||||
from pwn import *
|
from pwn import *
|
||||||
|
|
||||||
|
@ -6,6 +6,8 @@
|
|||||||
- [参考资料](#参考资料)
|
- [参考资料](#参考资料)
|
||||||
|
|
||||||
|
|
||||||
|
[下载文件](../src/writeup/6.1.2_pwn_njctf2017_pingme)
|
||||||
|
|
||||||
## 题目复现
|
## 题目复现
|
||||||
在 6.1.1 中我们看到了 blind ROP,这一节中则将看到 blind fmt。它们的共同点是都没有二进制文件,只提供 ip 和端口。
|
在 6.1.1 中我们看到了 blind ROP,这一节中则将看到 blind fmt。它们的共同点是都没有二进制文件,只提供 ip 和端口。
|
||||||
|
|
||||||
@ -200,7 +202,7 @@ firmy
|
|||||||
|
|
||||||
|
|
||||||
## Exploit
|
## Exploit
|
||||||
完整的 exp 如下,其他文件放在了[github](../src/writeup/6.1.2_pwn_njctf2017_pingme)相应文件夹中:
|
完整的 exp 如下:
|
||||||
```python
|
```python
|
||||||
from pwn import *
|
from pwn import *
|
||||||
|
|
||||||
|
@ -6,6 +6,8 @@
|
|||||||
- [参考资料](#参考资料)
|
- [参考资料](#参考资料)
|
||||||
|
|
||||||
|
|
||||||
|
[下载文件](../src/writeup/6.1.3_pwn_xdctf2015_pwn200)
|
||||||
|
|
||||||
## 题目复现
|
## 题目复现
|
||||||
出题人在博客里贴出了源码,如下:
|
出题人在博客里贴出了源码,如下:
|
||||||
```C
|
```C
|
||||||
@ -941,7 +943,7 @@ firmy
|
|||||||
|
|
||||||
|
|
||||||
## Exploit
|
## Exploit
|
||||||
完整的 exp 如下,其他文件放在了[github](../src/writeup/6.1.3_pwn_xdctf2015_pwn200)相应文件夹中:
|
完整的 exp 如下:
|
||||||
```python
|
```python
|
||||||
from pwn import *
|
from pwn import *
|
||||||
|
|
||||||
|
@ -9,6 +9,8 @@
|
|||||||
- [参考资料](#参考资料)
|
- [参考资料](#参考资料)
|
||||||
|
|
||||||
|
|
||||||
|
[下载文件](../src/writeup/6.1.4_pwn_backdoorctf2017_fun_signals)
|
||||||
|
|
||||||
## SROP 原理
|
## SROP 原理
|
||||||
#### Linux 系统调用
|
#### Linux 系统调用
|
||||||
在开始这一切之前,我想先讲一下 Linux 的系统调用。64 位和 32 位的系统调用表分别在
|
在开始这一切之前,我想先讲一下 Linux 的系统调用。64 位和 32 位的系统调用表分别在
|
||||||
@ -252,8 +254,6 @@ fake_flag_here_as_original_is_at_server\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
|
|||||||
```
|
```
|
||||||
如果连接的是远程服务器,`fake_flag_here_as_original_is_at_server` 会被替换成真正的 flag。
|
如果连接的是远程服务器,`fake_flag_here_as_original_is_at_server` 会被替换成真正的 flag。
|
||||||
|
|
||||||
其他文件放在了 [github](../src/writeup/6.1.4_pwn_backdoorctf2017_fun_signals) 相应文件夹中。
|
|
||||||
|
|
||||||
这一节我们详细介绍了 SROP 的原理,并展示了一个简单的例子,在后面的章节中,会展示其更复杂的运用,包扩结合 vDSO 的用法。
|
这一节我们详细介绍了 SROP 的原理,并展示了一个简单的例子,在后面的章节中,会展示其更复杂的运用,包扩结合 vDSO 的用法。
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
- [Exploit](#exploit)
|
- [Exploit](#exploit)
|
||||||
|
|
||||||
|
|
||||||
|
[下载文件](../src/writeup/6.1.5_pwn_grehackctf2017_beerfighter)
|
||||||
|
|
||||||
## 题目解析
|
## 题目解析
|
||||||
```
|
```
|
||||||
$ file game
|
$ file game
|
||||||
@ -118,7 +120,7 @@ firmy
|
|||||||
|
|
||||||
|
|
||||||
## Exploit
|
## Exploit
|
||||||
完整的 exp 如下,其他文件放在了[github](../src/writeup/6.1.5_pwn_grehackctf2017_beerfighter)相应文件夹中:
|
完整的 exp 如下:
|
||||||
```python
|
```python
|
||||||
from pwn import *
|
from pwn import *
|
||||||
|
|
||||||
|
@ -6,8 +6,9 @@
|
|||||||
- [参考资料](#参考资料)
|
- [参考资料](#参考资料)
|
||||||
|
|
||||||
|
|
||||||
## ret2vdso 原理
|
[下载文件](../src/writeup/6.1.6_pwn_defconctf2015_fuckup)
|
||||||
|
|
||||||
|
## ret2vdso 原理
|
||||||
在你使用 `ldd` 命令时,通常会显示出 vDSO,如下:
|
在你使用 `ldd` 命令时,通常会显示出 vDSO,如下:
|
||||||
```
|
```
|
||||||
$ ldd /usr/bin/ls
|
$ ldd /usr/bin/ls
|
||||||
@ -29,7 +30,7 @@ No RELRO No canary found NX enabled No PIE No RPATH No RU
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Exploit
|
## Exploit
|
||||||
完整的 exp 如下,其他文件放在了[github](../src/writeup/6.1.6_pwn_defconctf2015_fuckup)相应文件夹中:
|
完整的 exp 如下:
|
||||||
|
|
||||||
## 参考资料
|
## 参考资料
|
||||||
- `man vdso`
|
- `man vdso`
|
||||||
|
@ -1 +1,4 @@
|
|||||||
# 6.1.7 pwn 0CTF2015 freenote
|
# 6.1.7 pwn 0CTF2015 freenote
|
||||||
|
|
||||||
|
|
||||||
|
[下载文件](../src/writeup/6.1.7_pwn_0ctf2015_freenote)
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
- [参考资料](#参考资料)
|
- [参考资料](#参考资料)
|
||||||
|
|
||||||
|
|
||||||
|
[下载文件](../src/writeup/6.2.1_re_xhpctf2017_dont_panic)
|
||||||
|
|
||||||
## 题目解析
|
## 题目解析
|
||||||
第一步当然是 file 啦:
|
第一步当然是 file 啦:
|
||||||
```
|
```
|
||||||
@ -423,8 +425,6 @@ print("".join(flag))
|
|||||||
|
|
||||||
在最后一篇参考资料里,介绍了怎样还原 Go 二进制文件的函数名,这将大大简化我们的分析。
|
在最后一篇参考资料里,介绍了怎样还原 Go 二进制文件的函数名,这将大大简化我们的分析。
|
||||||
|
|
||||||
另外所有文件放在了[github](../src/writeup/6.2.1_re_xhpctf2017_dont_panic)相应文件夹中。
|
|
||||||
|
|
||||||
|
|
||||||
## 参考资料
|
## 参考资料
|
||||||
- [Pin Tutorial](http://www.ic.unicamp.br/~rodolfo/mo801/04-PinTutorial.pdf)
|
- [Pin Tutorial](http://www.ic.unicamp.br/~rodolfo/mo801/04-PinTutorial.pdf)
|
||||||
|
@ -6,6 +6,8 @@
|
|||||||
|
|
||||||
章节 4.5 中讲解了 Z3 约束求解器的基本使用方法,通过这一题,我们可以更进一步地熟悉它。
|
章节 4.5 中讲解了 Z3 约束求解器的基本使用方法,通过这一题,我们可以更进一步地熟悉它。
|
||||||
|
|
||||||
|
[下载文件](../src/writeup/6.2.2_re_ectf2016_tayy)
|
||||||
|
|
||||||
## 题目解析
|
## 题目解析
|
||||||
```
|
```
|
||||||
Tayy is the future of AI. She is a next level chatbot developed by pro h4ckers at NIA Labs. But Tayy hides a flag. Can you convince her to give it you?
|
Tayy is the future of AI. She is a next level chatbot developed by pro h4ckers at NIA Labs. But Tayy hides a flag. Can you convince her to give it you?
|
||||||
@ -235,7 +237,5 @@ void giff_flag(&flag, int key) {
|
|||||||
```
|
```
|
||||||
我们知道 flag 的格式应该是 `ECTF{...}`,所以只要初始 flag 在多次转换后出现这几个字符,就很可能是最终的 flag 了。我们已经理清了算法,接下来的事情就交给 Z3 了。
|
我们知道 flag 的格式应该是 `ECTF{...}`,所以只要初始 flag 在多次转换后出现这几个字符,就很可能是最终的 flag 了。我们已经理清了算法,接下来的事情就交给 Z3 了。
|
||||||
|
|
||||||
完整的 exp 如下,其他文件在 [github](../src/writeup/6.2.2_re_ectf2016_tayy) 相应文件夹中。
|
|
||||||
|
|
||||||
|
|
||||||
## 参考资料
|
## 参考资料
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
- [参考资料](#参考资料)
|
- [参考资料](#参考资料)
|
||||||
|
|
||||||
|
|
||||||
|
[下载文件](../src/writeup/6.2.3_re_codegate2017_angrybird)
|
||||||
|
|
||||||
## 题目解析
|
## 题目解析
|
||||||
看题目就知道,这是一个会让我们抓狂的程序,事实也确实如此。
|
看题目就知道,这是一个会让我们抓狂的程序,事实也确实如此。
|
||||||
```
|
```
|
||||||
@ -262,7 +264,5 @@ you typed : Im_so_cute&pretty_:)
|
|||||||
```
|
```
|
||||||
同样需要一定的运气才能通过,祝好运:)
|
同样需要一定的运气才能通过,祝好运:)
|
||||||
|
|
||||||
所有文件在 [github](../src/writeup/6.2.3_re_codegate2017_angrybird) 相应文件夹中。
|
|
||||||
|
|
||||||
|
|
||||||
## 参考资料
|
## 参考资料
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
- [参考资料](#参考资料)
|
- [参考资料](#参考资料)
|
||||||
|
|
||||||
|
|
||||||
|
[下载文件](../src/writeup/6.2.4_re_csawctf2015_wyvern)
|
||||||
|
|
||||||
## 题目解析
|
## 题目解析
|
||||||
```
|
```
|
||||||
$ file wyvern
|
$ file wyvern
|
||||||
|
39
doc/6.2.5_re_picoctf2014_baleful.md
Normal file
39
doc/6.2.5_re_picoctf2014_baleful.md
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# 6.2.5 re PicoCTF2014 Baleful
|
||||||
|
|
||||||
|
- [题目解析](#题目解析)
|
||||||
|
- [参考资料](#参考资料)
|
||||||
|
|
||||||
|
|
||||||
|
[下载文件](../src/writeup/6.2.5_re_picoctf2014_baleful)
|
||||||
|
|
||||||
|
## 题目解析
|
||||||
|
```
|
||||||
|
$ file baleful
|
||||||
|
baleful: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, stripped
|
||||||
|
$ strings baleful | grep -i upx
|
||||||
|
@UPX!
|
||||||
|
$Info: This file is packed with the UPX executable packer http://upx.sf.net $
|
||||||
|
$Id: UPX 3.91 Copyright (C) 1996-2013 the UPX Team. All Rights Reserved. $
|
||||||
|
UPX!u
|
||||||
|
UPX!
|
||||||
|
UPX!
|
||||||
|
$ upx -d baleful -o baleful_de
|
||||||
|
Ultimate Packer for eXecutables
|
||||||
|
Copyright (C) 1996 - 2017
|
||||||
|
UPX 3.94 Markus Oberhumer, Laszlo Molnar & John Reiser May 12th 2017
|
||||||
|
|
||||||
|
File size Ratio Format Name
|
||||||
|
-------------------- ------ ----------- -----------
|
||||||
|
144956 <- 6752 4.66% linux/i386 baleful_de
|
||||||
|
|
||||||
|
Unpacked 1 file.
|
||||||
|
$ file baleful_de
|
||||||
|
baleful_de: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=35d1a373cbe6a675ecbbc904722a86f853f20ce3, stripped
|
||||||
|
```
|
||||||
|
```
|
||||||
|
$ ./baleful_de
|
||||||
|
Please enter your password: ABCD
|
||||||
|
Sorry, wrong password!
|
||||||
|
```
|
||||||
|
|
||||||
|
## 参考资料
|
@ -13,3 +13,4 @@
|
|||||||
- [6.2.2 re ECTF2016 tayy](6.2.2_re_ectf2016_tayy.md)
|
- [6.2.2 re ECTF2016 tayy](6.2.2_re_ectf2016_tayy.md)
|
||||||
- [6.2.3 re Codegate2017 angrybird](6.2.3_re_codegate2017_angrybird.md)
|
- [6.2.3 re Codegate2017 angrybird](6.2.3_re_codegate2017_angrybird.md)
|
||||||
- [6.2.4 re CSAWCTF2015 wyvern](6.2.4_re_csawctf2015_wyvern.md)
|
- [6.2.4 re CSAWCTF2015 wyvern](6.2.4_re_csawctf2015_wyvern.md)
|
||||||
|
- [6.2.5 re PicoCTF2014 Baleful](6.2.5_re_picoctf2014_baleful.md)
|
||||||
|
@ -5,14 +5,6 @@
|
|||||||
#### **pwn** - UIUCTF 2017 - goodluck - 200
|
#### **pwn** - UIUCTF 2017 - goodluck - 200
|
||||||
|
|
||||||
|
|
||||||
## 5.2 Pin 动态二进制插桩
|
|
||||||
#### **RE** - picoCTF 2014 - Baleful
|
|
||||||
|
|
||||||
#### **RE** - Hack You 2014 - reverse - 400
|
|
||||||
|
|
||||||
#### **RE** - th3jackers CTF 2015 - rev100 - 100
|
|
||||||
|
|
||||||
|
|
||||||
## 6.1 更多 Linux 工具
|
## 6.1 更多 Linux 工具
|
||||||
#### Strings - strings_crackme
|
#### Strings - strings_crackme
|
||||||
```text
|
```text
|
||||||
|
Binary file not shown.
Binary file not shown.
BIN
src/writeup/6.2.5_re_picoctf2014_baleful/baleful
Executable file
BIN
src/writeup/6.2.5_re_picoctf2014_baleful/baleful
Executable file
Binary file not shown.
Loading…
Reference in New Issue
Block a user