-
-
[分享]Exploit利器-welpwn
-
发表于: 2020-5-1 21:48 10736
-
welpwn是国防科技大学弄的一个项目,对pwntools进行了一些封装,可以节省很多的时间.包括加载指定版本的libc,自动获取魔数,调试增强等功能,这里简单记录一下用法,帮助更多和我一样的新手学习,更详细的内容请参见项目地址.
项目地址:https://github.com/matrix1001/welpwn
welpwn使用ctx来管理二进制文件,libc文件,gdb等.
对于一次攻击而言前提就是与目标服务器或者程序进行交互,这里就可以使用ctx.start()产生一个远程的socket然后就可以读写了
同样的,我们也可以打开一个本地程序并进行交互
ctx同样可以用于gdb,类似于pwntools的gdb.debug,可以很轻松的断在程序入口
ctx.remote_libc用来指定题目需要加载的libc文件,这样就可以在本地调用其他版本的libc.so文件了.指定了libc文件之后还需要将ctx.debug_remote_libc设置为True:
哦对,这有一个很重要的点,题目和libc.so文件所处的路径绝对不能有中文,不然的话会报错,提示ld.so版本有问题.
ctx.custom_lib_dir也是用来指定库文件的,不过经常用来加载其他的库文件,只需要指出路径就可以了
one_gadget也被封装了
还支持libc-database的查找,但是我感觉不如LibcSearcher好用,这里推荐用LibcSearcher替代.
项目地址:https://github.com/lieanu/LibcSearcher
使用下面的命令可以生成一个exp模板:
模板如下:
这个见仁见智吧,毕竟每个人的编码习惯不一样,因为我一直在用pwntools自带的模板,所以这个我也用不习惯233
blog:https://0x2l.github.io/
git clone https://github.com/matrix1001/welpwn cd welpwn sudo python setup.py install
In [1]: from PwnContext import * In [2]: ctx.remote = ('chall.pwnable.tw', 10205) In [3]: ctx.start('remote') [x] Opening connection to chall.pwnable.tw on port 10205 [x] Opening connection to chall.pwnable.tw on port 10205: Trying 139.162.123.119 [+] Opening connection to chall.pwnable.tw on port 10205: Done Out[3]: <pwnlib.tubes.remote.remote at 0x7f97b158da10> In [4]: print (ctx.recv()) >> In [5]: ctx.sendline('test') In [6]: print (ctx.recv()) Invalid choice >>
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!