---
# System prepended metadata

title: Pwn
tags: [CTF學習資源]

---

###### tags: `CTF學習資源`

# Pwn

- 入門：
    - https://pwnable.tw/
    - https://pwnable.kr/

- gdb-peda：
    - https://github.com/longld/peda

- assembly
    - https://drive.google.com/drive/u/0/folders/1ETler_P6HkzqQgxrPjKm0x59-Ui90SPQ

- 教學影片
    - [PWN 1](https://www.youtube.com/watch?v=U8N6aE-Nq-Q&ab_channel=張元)
    - [PWN 2](https://www.youtube.com/watch?v=5D7tvxpSUUM&feature=youtu.be&ab_channel=張元)
    - [PWN Heap](https://www.youtube.com/watch?v=rMqvL9j0QaM&ab_channel=張元)

nc / ncat

    遠端連線工具
    使⽤ ncat 將程式在遠端架起來，接著使用 nc 連線
    使用:nc <ip> <port>

Vim

    編輯器
    安裝：sudo apt install vim

checksec

    查看程式開了哪些保護機制
    安裝：Pwntools 內建
    使用：checksec <執行檔>

objdump

    介紹
    靜態分析:dump 出執行檔中的組合語言
    可搭配 less / grep 食⽤，風味更佳
    使用：objdump -M intel -d <執行檔> | less
        -M intel 將原本預設是AT&T格式，改為intel格式

Pwntools

    專用於 CTF Exploit的Python Library包含本地執行、遠程連接、shellcode 生成、ROP 的建構、ELF 解析等功能
    安裝：
        sudo apt install python-pip
        sudo pip install pwntools
![](https://i.imgur.com/t0iR9LF.png)

範例：
```python=
from pwn import *

#connect to server
r = process('./add')    # localhost binary
r = remote('140.113.0.3', 8080)    # remote binary

s = r.recvuntil(':')    # receive from binary until ':'
print '1:'+s

r.sendline('3 5')    # send to server

r.interactive()    #switch to interactive mode
```