pwn(7.3)

文章介绍了通过nc连接服务器,利用Linux命令查找信息,并探讨了栈溢出漏洞的利用,包括ret2txt和ret2libc两种方法。在ret2txt中,通过栈溢出改变EIP返回地址实现目标功能。在ret2libc场景下,寻找System函数并尝试替换执行命令。此外,文章还提到了整数溢出的概念,如何利用负数导致的地址误解来触发安全问题。
摘要由CSDN通过智能技术生成

Nc

通过nc,我们可以链接到对方的服务器
在这里插入图片描述
再用过Linux的命令可以查找到我们想要的信息

Ret2txt

先查壳
在这里插入图片描述
没开任何保护,拿IDA看看
在这里插入图片描述
很明显的栈溢出,看到/bin/sh地址
解释,通过汇编语言我们知道调用函数使用call命名,call执行时,会将此时eip的值用push ebp或者rbp进行入栈,最后ret命令做一个返回,会返回到之前主程序运行的地方,那么栈的溢出,就是通过栈溢出后将函数返回的地址改成我们想要的函数
在这里插入图片描述
写exp
在这里插入图片描述
在这里插入图片描述
最后成功拿到flag

Ret2libc_easy

前面的操作和Ret2txt一样,nc,查壳
这里我们直接看IDA
在这里插入图片描述
我们的思路还是找/bin/sh
用shift+F12找一下看看有没
在这里插入图片描述

但是奇怪的是我们发现
在这里插入图片描述
System函数执行的不是/bin/sh
那解决问题,我们想着能否把whoami替换掉呢?
在这里插入图片描述
利用此命令,我们可以把栈上存储的数据存入寄存器中
在这里插入图片描述
然后执行system函数
那么直接写脚本
这里要理解,ret直接返回到了pop rdi ret 命令这里
然后再ret执行的sysytem函数
在这里插入图片描述
在这里插入图片描述

整数溢出

计算机中存在有符号和无符号数的存在,当一个数本来是无符号数而被传如有符号数,计算机会将符号也看成数,从而当成地址例如-1 会被识别为无符号的数据 所以-作为标识符会被认为是数据1 0001
看IDA
在这里插入图片描述
Read函数便是这样
同时我们看到bin/sh的地址
在这里插入图片描述
最后读的是无符号数,那如果我们,发送负数过去,造成整数溢出
脚本
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Back~~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值