这个题目是XDCTF final的时候遇到的一题题目,由于当时并不太懂pwn,rop也才只是刚刚了解的程度,所以毫无意外,姿势太少,这题干不掉。
几经辗转,在某个角落发现了这题被遗弃的题目,所以便拿出来日了。。
好吧,进入正题。
这题对用户的输入进行了encode,要保证encode之后的数据必须为可见字符。
而这些被encode之后的数据将会被放在可执行段,最后跳转到该段执行。
所以我们的技术难点就是如何产生一个全为可见字符的shellcode。
谷歌了一下,发现一个可以将机器码全部转换为可见字符的工具。ALPHA3
- 先去shell-storm找一个短小的shellcode。(必须保证输入在128个字符之内)
- 并且将该shellcode保存成为二进制文件
- 然后在windows下(我不知道为啥linux不可以,真是坑爹。)使用命令
python ALPHA3.py x86 ascii mixedcase EAX --input="shellcode" >flag
- 将生成的shellcode,放进弹夹。hhhhhh
exp如下。
from pwn import *
de