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

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

一.实验内容
本次实验针对 Linux 平台可执行文件 pwn1,围绕缓冲区溢出(BOF)漏洞挖掘与 shellcode 注入技术展开,核心目标是通过三种路径篡改程序执行流程:1. 手动修改机器指令,将 main 函数调用的 foo 函数替换为 getShell 函数;2. 利用 foo 函数的 BOF 漏洞,设计攻击字符串覆盖返回地址触发 getShell;3. 关闭系统安全防护后,注入自定义 shellcode 以获取交互 Shell。
学习过程中,既深入掌握汇编指令解析、栈内存结构等底层知识,也熟练运用 gdb 调试、vi 十六进制编辑、patchelf 配置等工具,并深化对小端字节序、ASLR 机制、堆栈权限控制等关键概念的理解。
二.实验过程
1.直接修改程序机器指令,改变程序执行流程
修改主机
image
输入指令objdump -d pwn1 | more找到getshell,foo,main
image
输入cp pwn1 pwn2,复制一个文件,然后输入vi pwn2进入到文件中。
image
打开文件后在 vim 的普通模式下,输入:%!xxd命令进入十六进制编辑模式
执行命令后,vim 将文件内容以十六进制的形式显示出来
之后向下翻找找到0xd7ffffff并将e8d7ffffff改为e8c3ffffff
image
image
之后返回查看是否正确运用于shell
image
执行./pwn2,可见成功执行
image
2.通过构造输入参数,造成BOF攻击,改变程序执行流
反汇编,查看foo函数
image
启动gdb调试目标文件:执行gdb pwn1,进入调试模式
image
输入r后输入1111111122222222333333334444444412345678,再输入info r确认输入字符串有哪几个字符覆盖到返回地址上
image
输入perl -e 'print "11111111222222223333333344444444\x7d\x84\x04\x08\x0a"' > input命令生成包括这样字符串的一个文件,再输入xxd input查看input文件的内容是否达到预期,将input的输入,通过管道符“|”,作为pwn1的输入
image
3.注入Shellcode并执行
确保 Linux 环境中已安装 patchelf、gdb、perl和readelf
image
echo "0" /proc/sys/kernel/randomize_va_space用来关闭地址随机化
more /proc/sys/kernel/randomize_va_space用来验证地址随机化是否关闭
image
"\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 创建一个 input_shellcode 文件,接着输入 (cat input_shellcode;cat) | ./pwn1 将input_shellcode作为pwn1的输入,输入 ps -ef | grep pwn1 查看进程,进而得知我们的进程号为39609
image
启用gdb调试程序,输入disassemble foo反编译foo函数并进行分析,然后输入break *0x080484ae设置断点
image
三、问题及解决方案
问题1:找不到进程号,只有一个
image
解决方法:询问豆包,请教同学,使用./ &解决,成功找到进程号
四、学习感悟、思考等
这次 pwn1 缓冲区溢出实验,让我跳出了表层代码逻辑,真正触碰到了计算机底层运行的 “脉搏”。从手动改指令、覆返回地址到注入 shellcode,每一步都是对汇编、栈结构的实战验证 —— 比如调试时盯着 gdb 里的内存地址,才真切理解小端字节序不是书本上的概念,而是直接影响攻击字符串构造的关键。
工具的运用也让我明白,漏洞挖掘从来不是 “单打独斗”:gdb 找断点、vi 改十六进制、patchelf 调动态库,这些工具的配合才让攻击路径落地。而关闭 ASLR、调整堆栈权限的操作,则让我直观感受到系统安全机制与漏洞利用的 “攻防博弈”。
不过实验也让我思考:现实中系统防护远复杂于实验环境,如何在更严格的安全策略下识别风险?这次实践不仅是掌握技术,更培养了我从 “攻击者视角” 审视程序安全的思维,也让我意识到,写出安全的代码,必须先理解漏洞产生的根源。

http://www.rkmt.cn/news/20382.html

相关文章:

  • Zabbix 6.0+ 运用官方模板监控 Redis 数据库的完整安装指南
  • 【图论】Floyd算法简析
  • perl-Test-Simple-1.302195-5.fc39.noarch.rpm 怎么安装?Fedora 39 安装步骤讲解
  • 麒麟系统中修改 WPS 默认新建文件格式的方法 - 实践
  • 斯坦福ACE框架:让AI自己学会写prompt,性能提升17%成本降87%
  • 讲给 SRE 听 —— 零基础入门 KNN 分类算法【左扬精讲】:SRE 运维场景实战(含余弦相似度)
  • 【终章】:幸福的复利——打造你的每日幸福微习惯 - 指南
  • 完整教程:SQLMap注入学习靶机(打靶记录)
  • 实用指南:Go 语言中的**数组 (Array)*用法
  • 单 Pod DNS 记录(`web-0.nginx.default.svc.cluster.local`)排障与启用
  • 永久关闭docker0网络的方案
  • 音乐节奏跳动
  • 国内铝单板工厂推荐/国内铝单板厂家/ 市场铝单板推荐:四川汇才铝业有限公司
  • 2025 闪蒸/流化床/喷雾/实验型喷雾/离心喷雾/压力喷雾/流化床喷雾/桨叶/盘式/真空耙式干燥机厂家推荐榜单:技术适配与场景落地能力成核心考量
  • harbor 局域网https 自签名证书搭建
  • Python的解释器
  • shiro快速启动
  • 2025 年直流电弧炉厂商最新推荐排行榜:全面剖析优质企业技术实力与产品优势,助力各行业企业精准选购适配设备贵金属/节能直流/环保直流电弧炉厂家推荐
  • MaxKB 的 RAG 引擎和向量存储实现细节
  • 经验再多,可能不如有个OCP证书好使
  • 【实战】C# WinForm 上位机:串口采集 → 实时曲线 → 本地/时序库持久化(含完整代码与部署选项) - 详解
  • 2025 国内三效废水/多效废水/母液/废液蒸发器及三效/多效/单效MVR蒸发器厂家精选指南
  • 高级语言-Lec2
  • 太强了!迅捷视频转换器一键搞定所有视频格式,还能剪辑加水印!
  • 恒温恒湿试验箱多少钱一台?2025年最新价格,由上海柏毅提供!
  • 从底层到应用:开散列哈希表与_map/_set 的完整实现(附逐行注释) - 实践
  • iOS 26 电耗监测与优化,耗电问题实战 + 多工具 辅助策略
  • moectf2025
  • 一文读懂:C++ STL 学生与竞赛选手都会遇到的容器默认排序的疑惑
  • 对数据要求高的On-the-fly