pwn — ret2syscall

作者: YeeZi_ | 来源:发表于2019-04-01 00:04 被阅读217次

ret2syscall

再来check一下保护,发现开了NX

这次我先看一下应该填充的字符串长度为多少,爆出来发现是112

然后在Ida里看main

发现这是个no system又no shellcode 的题,然后又开了NX,不能用直接调用shell,也不能自己往栈里填一段代码获得shell,那就只能考虑用系统调用了(貌似是这么一个格式execve(‘/bin/sh’,NULL,NULL))

分别把参数存进相应的寄存器里面:

Eax:存系统调用号的(然后查到execve的系统调用号是0xb)

Ebx:存函数的第一个参数(这里是’/bin/sh’)

Ecx、edx:分别存剩下两个NULL

所以我们就要找这些寄存器的地址,这里就会用到gadget这个小工具

ROPgadget --binary rop(文件名) --only ‘pop|ret’ | grep ‘eax’(查找语句里有pop、ret、eax的)

然后发现有几个地址可以用,那就随便选第二个啦,地址:0x080bb196

接下来继续找ebx的

然后找到三个寄存器(ebx、ecx、edx),地址为:0x0806eb90

接着找,int 0x80,这是一个系统调用的中断号(有这个才能用系统调用)

地址为:0x08049421

然后我们再看看有没有/bin/sh这种东西

然后找到了它的地址:0x080be408

最后就开始考虑脚本了

运行exp,就发现OK了啊

相关文章

  • pwn — ret2syscall

    ret2syscall 再来check一下保护,发现开了NX 这次我先看一下应该填充的字符串长度为多少,爆出来发现...

  • 新手科普 | CTF PWN堆溢出总结

    新手科普 | CTF PWN堆溢出总结 pwn堆溢出基础 CTF pwn 中最通俗易懂的堆入坑指南CTF pwn ...

  • MCTF pwn

    pwn2 from pwn import * #p=process("./pwn2") p=remote("120...

  • 什么是pwn/二进制溢出

    什么是pwn? In script kiddie jargon, pwn means to compromise ...

  • 安恒一月赛2019 PWN

    0x01 pwn1 0x02 pwn2

  • pwn入门的一些学习资料

    总结记录一下pwn入门的一些学习资料 pwn入门学习的网站: CTF Wiki 必备技能: 汇编语言要搞pwn首先...

  • ret2syscall

    wiki上的链接https://ctf-wiki.github.io/ctf-wiki/pwn/linux/sta...

  • ret2syscall

    博客网址:点击这里[www.shicoder.top]微信:18223081347欢迎加群聊天 :45238093...

  • RoarCTF 2019 pwn

    嘶吼 CTF 2019 PWN 题解 easy_pwn 题目信息 main create 最多16个note 大小...

  • CTF PWN之精确覆盖变量数据

    刚开始接触pwn的朋友在做pwn练习时可能会有这样的疑问,怎么做到精确覆盖变量数据呢? 我们做pwn练习之前需要先...

网友评论

    本文标题:pwn — ret2syscall

    本文链接:https://www.haomeiwen.com/subject/ekgpbqtx.html