mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
96 字
1 分钟
uaf
2026-03-19

将程序拖入 ida 发现如下重要代码

int __cdecl Are()
{
int result; // eax
int size; // [rsp+4h] [rbp-1Ch] BYREF
char *Flag; // [rsp+8h] [rbp-18h]
char *b; // [rsp+10h] [rbp-10h]
unsigned __int64 v4; // [rsp+18h] [rbp-8h]
v4 = __readfsqword(0x28u);
Flag = (char *)malloc(0x68u);
strcpy(Flag, "Flag");
free(Flag);
size = 0;
puts("Please Input Chunk size :");
__isoc99_scanf("%d", &size);
getchar();
b = (char *)malloc(size);
puts("Please Input Content : ");
gets(b);
result = strncmp(Flag, "Flag", 4u);
if ( !result )
return system("/bin/sh");
return result;
}

可以发现存在典型的Uaf漏洞, 指针Flag释放后没有被清空,如果在申请堆块的时候 b指向的内存大小为Flag相同大小那么就能够获得Flag的地址。使得Flag内容可控

所以依次这样操作就可以获取flag

5
104
Flag
cat flag
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

uaf
https://yoyolp.github.io/posts/heap/uaf/
作者
超级玉米人
发布于
2026-03-19
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录