论菜鸡pwn手如何在无网环境(ps:类似国赛)下生存
本文首发于先知社区
引言:在打完一次无网环境后,觉得没网环境实在难受,查个libc都没得查。。没准备好,那时碰巧我下了ctf-challenge,在那里碰巧弄到了libc,可能有人喜欢用libc-searcher那个py版本的项目,我不怎么喜欢,用那个导入库查找感觉较慢,还是喜欢手动泄露后到网页查找,于是有了这篇文章
pwntools安装
1 | pip install pwntools |
出错自己解决啊,那些个错误都查得到
one_gadget
1 | gem install one_gadget |
gdb配置
我个人觉得,peda和pwndbg必备,gef也可以用上,随你
自己写了个脚本,很渣,自选用不用
项目地址
三个插件一起用会冲突,一部分功能失效,建议注释掉.gdbinit里的gef部分
welpwn
这个项目是国防科技大学弄的,挺好用的,最主要是能加载libc
1 | git clone https://github.com/matrix1001/welpwn |
到项目目录下然后
1 | sudo python setup.py install |
用法你可以看他项目里的介绍
ctf-wiki本地搭建
作为一个不是啥都熟的选手,ctf-wiki还是必备的,打比赛的时候查查exp,查查用法什么都好
首先安装docker
这个不讲了
docker pull镜像
1 | docker search ctf #先查找镜像,镜像名知道可以不查找 |
部署libc-database
1 | docker pull blukat29/libc |
配置文件目录/etc/nginx/conf.d/nginx.conf
启动端口在4101,这里有个小问题,就是无法下载,解决方法,替换nginx的配置文件为如下
1 | server { |
最主要是
1 | location /d { |
然后发觉每次重启都会他配置文件都会重置,研究下了他docker里的东西,发觉是entrypoint.sh影响了,所以修改下entrypoint.sh就行
1 |
|
然后就部署完成了,如果还嫌麻烦,可以用下我这个Dockerfile
项目地址
用法在项目里已经说明了,只是修改了一点点错误
1 |
|
本地搭建ctf-all-in-one
https://github.com/firmianay/CTF-All-In-One
下载项目
git clone https://github.com/firmianay/CTF-All-In-One
GitBook基础
README.md和SUMMARY.md
必备文件
利用Docker安装Gitbook
1 | docker search gitbook #可以查看,我用了最高星的那个 |
先到项目的目录下
然后
1 | docker run -v $PWD:/srv/gitbook -v $PWD/html:/srv/html fellah/gitbook gitbook build . /srv/html |
展示Gitbook文件
因为生成的是html静态页面所以需要一个web服务来显示,我用nginx
1 | docker pull nginx |
这样就搭建完成了
访问你自己的4100-4102端口看下,是否成功了
下载ctf-challenge,例题以及exp
git clone https://github.com/ctf-wiki/ctf-challenges
这个说不定哪天就用上了,说不准
exp模板构建
因为要快速做题,每次重复的部分整合起来比较好,所以便研究下exp模板如何弄,我是通过修改pwntools里自带的exp模板,生成自己专属的模板的,我建议都弄成自己的exp模板类型吧,因为每个人代码风格不一样,没必要一定用大佬的模板,当然有可能大佬的模板好,但不一定适合自己
模板位置
第一个是模板的具体内容,第二个是生成模板的方法
- pwnup.mako
- template.py
你可以find / -name 名称
找到具体位置,最好先备份一份
具体配置自行配置,因为每个人风格不同
pwntools exp模板自定义
1 | <%page args="binary, heap=None, link=None, libc=None, local=True"/>\ |
awd模板
1 | <%page args="binary, host=None, port=None, libc=None, local=True"/>\ |
具体语法可以理解为
%if args
content
%endif
content就是内容,args就是参数,通过这个方法进行模板的生成
pwntools exp模板生成方法
1 | #!/usr/bin/env python2 |
最终效果
└──╼ $pwn template oreo –libc libc.so.6
1 | #!/usr/bin/env python2 |
本文作者:NoOne
本文地址: https://noonegroup.xyz/posts/9f664865/
版权声明:转载请注明出处!