Behemoth3

Posted by rk700 on July 5, 2014

这道题是format string。步骤还是那样:

  1. 输入一连串A,跟上一连串%x,由41的位置发现输入字符串是从第6个参数开始
  2. 把shellcode导入环境变量,打印EBP地址进而得到返回地址
  3. 将返回地址byte by byte作为输入字符串的起始,然后用%mx来填充调整已输出字符个数,用%m$hhn改写相应的byte,使返回地址最终指向shellcode

这道题有两个注意的地方

  1. 用的shellcode还是读文件的,invoke sh后什么都没发生,invoke bash会直接seg fault
  2. $在perl是特殊字符,所以用perl输入时要将其转义为\$