[BUGKU] [PWN] PWN5

该博客介绍了如何分析BUGKU PWN5的挑战,涉及了64位AMD架构下的NX保护,通过ida分析C源码,发现了格式化字符串漏洞和栈溢出点。博主展示了如何利用格式化字符串漏洞泄露栈上的__libc_start_main地址,通过计算偏移找到库函数地址,进一步利用LibcSearcher库寻找flag。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[BUGKU] [PWN] PWN5


先下载文件,拉入UBUNTU,checksec检查一下

checksec human

架构是amd64,并开启了NX(堆栈可执行,16进制地址后六位不变,其余运行一次都会变)

在windows里把pwn2拉入64位ida

F5切换到伪C

发现乱码,修改配置文件后ALT+A全部选上UTF-8,再按一次F5,中文就可以显示了

int __cdecl main(int argc, const char **argv, const char **envp)
{
char s; // [sp+0h] [bp-20h]@1

setvbuf(_bss_start, 0LL, 2, 0LL);
setvbuf(stdin, 0LL, 1, 0LL);
memset(&s, 0, 0x20uLL);
puts(“人类的本质是什么?\n”);
read(0, &s, 8uLL);
printf(&s, &s);
puts(&s);
puts(&s);
puts(&s);
puts(“一位群友打烂了复读机!”);
sleep(1u);
puts("\n人类还有什么本质?");
read(0, &s, 0x40uLL);
if ( !strstr(&s, “鸽子”) || !strstr(&s, “真香”) )
{

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值