再谈WSL——pwn的环境配置和wsl2的换源
过去幼稚的我选择使用 wsl2 作为研究环境,着实是打开了一个黑魔法的大门,然后还写了篇博客来推广黑魔法。在自己弃用 wsl 许久后也没有删除这篇文章,在这里保留文章,但是建议大家还是起虚拟机来做环境。不用 wsl 原因有很多,最主要的是我不喜欢它。
…BUU-mrctf2020_shellcode_revenge-WP(可见字符shellcode)
这道题大概又是以为call了rax所以无法F5,不过这个的关系倒是不大,代码逻辑还是好理解的

我们要做的就是执行到右边的语句,为了执行右边我们需要执行左边的语句strlen(buf)次,也就是说buf(我们输入的字符串)中必须满足之前的条件。也就是每个字符的ASCII码必须属于(0x60,0x7A]∩(0x2F,0x5A]才会执行code。到这里之后我就不会了,于是我搜了一下别的师傅的wp,原来这个属于string.printable,就是可见字符shellcode。这里使用alpha3就可以生成了。
…
学习 pwn 的过程中的一点心得
值得注意的东西
与exp的动调
在 exp 中先指定 terminal,即添加一句
context.terminal = ['tmux','splitw','-h']
然后在创建进程变量后,添加
gdb.attach(proc.pidof(sh)[0]) #这里的sh是进程变量
这样调试时先打开tmux,然后就可以动态调试了
加载指定的libc:
io = process(['./bin'],env= {"LD_PRELOAD":"./libc-2.23.so"})