-
-
[分享]Exploit利器-welpwn
-
发表于: 2020-5-1 21:48 11029
-
welpwn是国防科技大学弄的一个项目,对pwntools进行了一些封装,可以节省很多的时间.包括加载指定版本的libc,自动获取魔数,调试增强等功能,这里简单记录一下用法,帮助更多和我一样的新手学习,更详细的内容请参见项目地址.
项目地址:e39K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6E0j5i4c8J5K9i4R3I4x3o6l9I4i4K6u0r3N6$3g2D9M7s2N6F1
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替代.
项目地址:179K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6D9K9h3g2S2L8Y4g2Q4x3V1k6x3K9h3u0U0f1$3g2S2M7X3y4Z5k6i4t1`.
使用下面的命令可以生成一个exp模板:
模板如下:
这个见仁见智吧,毕竟每个人的编码习惯不一样,因为我一直在用pwntools自带的模板,所以这个我也用不习惯233
blog:95cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1j5H3P5o6u0D9i4K6u0W2k6$3W2@1K9s2g2T1i4K6u0W2K9h3!0Q4x3V1j5`.
git clone 4f9K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6E0j5i4c8J5K9i4R3I4x3o6l9I4i4K6u0r3N6$3g2D9M7s2N6F1 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 >>