pwntools用docker实现,进行pwn题解答
文章目錄
- pwntools環境
- 步驟一
- 步驟二
- level0
pwntools環境
這里我直接用docker環境,Ubuntu環境的docker建議看我這個https://blog.csdn.net/CSNN2019/article/details/119057956?spm=1001.2014.3001.5501,搞好環境之后,測試的時候,會報如下錯誤
經過我如下操作,即可解決這個報錯
步驟一
修改docker鏡像源,如果沒有 daemon.json就新建添加以下內容:
[ak666@ubuntu ~]# cd /etc/docker [ak666@ubuntu docker]# ls daemon.json key.json [ak666@ubuntu docker]# vim daemon.json # 添加以下內容 {"registry-mirrors": ["http://hub-mirror.c.163.com"]}# 也可以添加多個國內源 {"registry-mirrors": ["http://hub-mirror.c.163.com", "https://registry.docker-cn.com"]}步驟二
vi /etc/resolv.conf,添加nameserver 8.8.8.8
以交互式的方式去運行pwntools
緊接著我import pwn
報錯,只需要在pwntools中安裝pathlib2模塊就好
然后import pwn
成功然后需要進行映射:
需要把level0這個文件映射到pwntools環境下,當然直接映射目錄。
/home/ak666/Desktop/CTF目錄
level0
sudo docker run -it -v /home/ak666/Desktop/CTF/:/home/pwntools pwntools/pwntools /bin/bash把物理機中/home/ak666/Desktop/CTF/目錄下的文件映射到docker中/home/pwntools下,后者可以隨便寫,因為無所謂。
這里用docker環境的話,我的docker中pwntools環境每次進去都需要安裝pathlib2一遍(因為每次都是重啟。需要寫腳本然后映射到docker中pwntools環境中去,緊接著就是執行一波KO
ssize_t vulnerable_function() {char buf[128]; // [rsp+0h] [rbp-80h] BYREFreturn read(0, buf, 0x200uLL); }長度為0x200字符,直接放入 僅有128字符長度的數組中(也就是棧中)。另外找到一個函數,直接獲得一個shell,緩沖區溢出,就修改返回地址跳轉到這里
棧中數據首先是 返回地址 + ebp + 臨時變量,所以這里的8也就是覆蓋原來的ebp
這里的話需要加第一行,不加的話報錯如下:
SyntaxError: Non-ASCII character '\xe8' in file level0 on line 2, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details總結
以上是生活随笔為你收集整理的pwntools用docker实现,进行pwn题解答的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 镇江职业技能大赛
- 下一篇: VS报错:此项目需要缓解Spectre漏