VR2050 / VR2050.github.io

VR2050
https://vr2050.github.io/
MIT License
0 stars 0 forks source link

build ctf pwn方向部分wp #3

Open VR2050 opened 4 weeks ago

VR2050 commented 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:

导入pwntools库中的所有内容(假设Pwnmodules是pwntools的别名或封装)

from Pwnmodules import *

设置pwntools的上下文环境,包括日志级别、目标架构和操作系统

context(log_level='debug', arch='i386', os='linux')

创建一个远程目标对象,指定IP地址和端口号

target = Target(

VR2050 commented 4 weeks ago

test