CTF buuoj pwn-----第1题:test_your_nc
记录一下pwn的过程
新手学习日记,流水线记录.
打开题目,连接靶机,下载文件’test’
1. 首先checkesc ,检测文件的保护机制.
checksec在下载好pwntools后就有 参考链接: link. 参考链接: link.
bing@bing-virtual-machine:~/pwn$ checksec test
[*] '/home/bing/pwn/test'
Arch: amd64-64-little
RELRO: Partial RELRO
Stack: No canary found
NX: NX enabled
PIE: PIE enabled
bing@bing-virtual-machine:~/pwn$
从图上可以看出它是一个64位程序,开了NX防护(堆栈不可执行)
代码中:
- Relro:Full Relro(重定位表只读)
Relocation Read Only, 重定位表只读。重定位表即.got 和 .plt 两个表。 - Stack:No Canary found(能栈溢出)
- NX: NX enable(不可执行内存)
Non-Executable Memory,不可执行内存。 - PIE: PIE enable(开启ASLR 地址随机化)
Address space layout randomization,地址空间布局随机化。通过将数据随机放置来防止攻击。
2. 接下来用IDA打开ELF文件test.
- 按下shift+f12,打开string window,
发现/bin/sh
双击/bin/sh, 点击command,点击X,发现/bin/sh的address在main函数里
点击option->general,勾选相应选项可方便看代码,具体如下:
按下f5,发现main函数就是一个简单的system函数.直接调用了/bin/sh,所以根据题目提示直接nc就行.
3.回到Linux,直接nc做题
简单查看一下nc的用法: nc -help nc的全名是netcat,其主要用途是建立和监听任意TCP和UDP连接,支持ipv4和ipv6。因此,它可以用来网络调试、端口扫描等等
nc ip地址 ip端口 连接靶机后,ls发现flag,cat得到flag
flag{000a3b78-286a-411f-bc8e-67e4a25ea890}
总结
参考link
checksec
-
查看程式開了哪些保護機制 -
安裝:Pwntools 內建 -
使用:checksec <執行檔>
nc / ncat
- 遠端連線工具
- 使? ncat 將程式在靶机连接起來,接著使用 nc 连接
- 使用:nc
Vim
- 編輯器
- 安裝:sudo apt install vim
Pwntools
-
專用於 CTF Exploit的Python Library -
包含本地執行、遠程連接、shellcode 生成、ROP 的建構、ELF 解析等功能 -
安裝: sudo apt install python-pip sudo pip install pwntools
|