Open VR2050 opened 4 weeks ago
https://vr2050.github.io/buildctfpwn%E6%96%B9%E5%90%91wp/
buildctf pwn方向部分wp
layout: post title: “build ctf pwn方向部分wp” date: 2024-10-27 tags: [pwn] comments: true author: VR2050 toc: true — buildctf pwn方向部分wp
本次比赛为新生赛,比较菜,做出来的题不多(bushi)
就当作做题笔记了哈哈哈
我要成为shaweima传奇
checksec检查:
开的保护不多,运行看看
一看有中文,撕,有点不妙,想起来之前长城杯因为中文原因,ida解析不了中文看不懂题做不出来的悲剧了(悲)
大概看做了一个选项,可能哪几个选项存在漏洞
ida解析:
这个中文解析问题可以在网上搜一艘教程
一个是buy函数,还有一个是
先购买shaweima,如果shaweima数量>99就能拿到shell
主要看buy,虽然他说数量不能为负数,但是他还是执行了-=操作
所以直接nc连就行先买个-100个,让money多一些,再买
在全部吃掉,就拿到shell了
touch heart
checksec检查
运行
ida反编译看看:
诶?还有过滤,正则绕过直接
nc连 ca\t fla\g
unint
checksec 检查:
32位,开了cannary保护
运行如上
gdb加ida看看:
重点看那个get_n函数
存在整数溢出(问ai嘻嘻)
还有这个gift函数
格式化字符串泄露cannary
第一个getn决定输入字符的长度(修改v2的长度)
第二个是实现payload
大概思路就是先泄漏cannary地址以及libc地址计算libc基值
第二次rop拿shell
exp:
from Pwnmodules import *
context(log_level='debug', arch='i386', os='linux')
target = Target(
test
https://vr2050.github.io/buildctfpwn%E6%96%B9%E5%90%91wp/
buildctf pwn方向部分wp
layout: post title: “build ctf pwn方向部分wp” date: 2024-10-27 tags: [pwn] comments: true author: VR2050 toc: true — buildctf pwn方向部分wp
本次比赛为新生赛,比较菜,做出来的题不多(bushi)
就当作做题笔记了哈哈哈
我要成为shaweima传奇
checksec检查:
开的保护不多,运行看看
一看有中文,撕,有点不妙,想起来之前长城杯因为中文原因,ida解析不了中文看不懂题做不出来的悲剧了(悲)
大概看做了一个选项,可能哪几个选项存在漏洞
ida解析:
这个中文解析问题可以在网上搜一艘教程
一个是buy函数,还有一个是
先购买shaweima,如果shaweima数量>99就能拿到shell
主要看buy,虽然他说数量不能为负数,但是他还是执行了-=操作
所以直接nc连就行先买个-100个,让money多一些,再买
在全部吃掉,就拿到shell了
touch heart
checksec检查
运行
ida反编译看看:
诶?还有过滤,正则绕过直接
nc连 ca\t fla\g
unint
checksec 检查:
32位,开了cannary保护
运行如上
gdb加ida看看:
重点看那个get_n函数
存在整数溢出(问ai嘻嘻)
还有这个gift函数
格式化字符串泄露cannary
第一个getn决定输入字符的长度(修改v2的长度)
第二个是实现payload
大概思路就是先泄漏cannary地址以及libc地址计算libc基值
第二次rop拿shell
exp:
导入pwntools库中的所有内容(假设Pwnmodules是pwntools的别名或封装)
from Pwnmodules import *
设置pwntools的上下文环境,包括日志级别、目标架构和操作系统
context(log_level='debug', arch='i386', os='linux')
创建一个远程目标对象,指定IP地址和端口号
target = Target(