首页 > 其他分享 >20222312 2024-2025-1 《网络与系统攻防技术》实验一实验报告

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

时间:2024-10-04 20:01:06浏览次数:1  
标签:机器码 x86 2024 2025 指令 实验 跳转 20222312 字节

1.1 实验目标
本次实践的对象是一个名为pwn1的linux可执行文件。
该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串。
该程序同时包含另一个代码片段,getShell,会返回一个可用Shell。正常情况下这个代码是不会被运行的。我们实践的目标就是想办法运行这个代码片段。我们将学习两种方法运行这个代码片段,然后学习如何注入运行任何Shellcode。

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

2 操作过程
知识要求:Call指令,EIP寄存器,指令跳转的偏移计算,补码,反汇编指令objdump,十六进制编辑工具
学习目标:理解可执行文件与机器指令
进阶:掌握ELF文件格式,掌握动态技术
NOP: 空操作指令,它不执行任何操作,只占用一个字节的机器码。在x86架构中,机器码为 90。
JNE: 如果不相等则跳转指令,只在不等于条件下跳转。在x86架构中,机器码为 75 开头的字节。
JE: 如果相等则跳转指令,只在相等条件下跳转。在x86架构中,机器码为 74 开头的字节。
JMP: 无条件跳转指令,直接跳转到指定位置。在x86架构中,短跳转机器码为 EB 开头的字节,长跳转机器码以 E9 开头。
CMP: 比较指令,用于将一个寄存器的内容与另一个寄存器的内容或者内存的内容进行比较。在x86架构中,机器码为 39 系列的字节(比如 39 开头的表示 cmp ecx, value)。
首先按照操作获取pwn1文件,然后对其进行修改

修改后可以按照操作要求得到结果

接着按操作进行反汇编并按要求确定地址

执行bof攻击,首先按照要求调整相应权限和配置

查询对应端口号并连接,启动gdb对对应端口进行调试

连接后按照指令操作

最后执行成功

3.问题及其解决

问题一:在执行过程中有很多功能是缺失的,比如调试使用的gdb,execstack等,都是安装时不包含的。
解决方案:在csdn查找有关资料,按照步骤进行安装配置报错中显示的缺少的插件
问题二:在最后执行BOF攻击时,我反复试验了十几二十遍都没有成功,一直出现错误
解决方案:我试了几十次,然后找做完的同学求助,一起试了十几二十次后,终于成功了一次,但我执行的操作流程步骤等和之前并无不同。
问题三:在VMware中,我更改root的用户名会导致我无法访问管理员账户,相同的密码也无法登入
解决方案:这个问题我暂时无法解决,只能通过修改其他文件名。

4.学习感悟
本次实验大致是按照实验流程完成,其中也存在部分文档中不存在的报错和突发情况,需要自己查询完成,但实验总体来说对我而言进行的并不顺利,因为我前面的环节都比较顺利的进行了,但是在最后一步反复试验了很多次都没有成功,哪怕最后成功了我也并没有搞清楚影响我最后程序执行结果的因素到底在哪里,这对我来说并不算好,在执行最后一步时我能做的只是去反复试验没有其他的修改。但这次实验也同样使我学习了很多,在执行时需要更多的有自己的思考,这样在遇到超出指导之外的状况才不会慌乱,才能够真正的面对问题,解决问题。这不仅是对我在编程能力上的一次锻炼,也是对我在面临实际问题时解决问题能力的一次提升。

标签:机器码,x86,2024,2025,指令,实验,跳转,20222312,字节
From: https://www.cnblogs.com/20222312zhx/p/18447188

相关文章

  • 20240926
    机械指令(instruction)我们可以考虑前缀和,那么如果我们要查询只做\([l,r]\)区间内的操作,那么结束时的坐标就是\([sumx_{r}-sumx_{l-1},sumy_{r}-sumy_{l-1}]\),所以我们开一个桶,来统计之前第一个\(l\)在哪抉择(choice)从感觉上来说,肯定是越长越好,我们又看到有一......
  • 2024初秋集训——提高组 #30
    B.硬币问题题目描述有\(N\)种硬币,每种都有无限个。求\([1,m]\)中有多少种面额是不能被凑出来的。思路我们可以先求出不使用\(w_1\)凑出来的数,由于之后可以再添加若干个\(w_1\)。所以对于\(\bmodw_1\)同余的数只需看较小的数。这明显就是一个最短路。对于每种余数求......
  • NOIP2024集训Day43 博弈论
    NOIP2024集训Day43博弈论F.多边形之战如果这个三角形三个顶点相邻,则先手必胜(第一刀就可以切)否则当黑色三角形只有一边与白色三角形相邻时才可以被切,显然那个白色三角形是最后一个白色三角形于是转化为:有\(n\)个石子,一次只能取一个,问取最后一个的人是谁做完了。G.[BZO......
  • 20241003 模拟赛
    这场...打得还行吧。(至少没有爆零A.旋律的总数难度:橙签到题。只要第一个都选\(1\),就能保证不同。答案为\(m^{n-1}\)。#include<bits/stdc++.h>#definelllonglong#definemod1000000007usingnamespacestd;intT;lln,m;llquickpow(lla,llb){llre......
  • 10.2 代码源 2024 CSP-S 模拟赛 Day 7
    省流:\(55+5+0+10=70\)简称:唐诗T1第一眼发现在二进制下加法不能进位,然后码了个DP就放那了……DP代码:intS=(1<<14)|1;fd(i,0,r[1])f[1][i]=1;fd(i,2,n){fd(j,0,S){f[i][j]=f[i-1][j];for(ints=j;s;s=(s-1)&j){(f......
  • 10.4 模拟赛(2025 炼石计划 NOIP 模拟赛 #7)
    2025--炼石计划--9月25日--NOIP模拟赛#7【订正】-比赛-梦熊联盟(mna.wang)复盘赢麻了。浏览题。T1没理解“中间节点”是啥意思,样例太大先不模拟了。T2什么东西,密铺?T3好像看懂了题。脑子中瞬间有一个\(n^3\)DP,发现\(n\le200\)感觉切了。但其实DP假的很......
  • 【刷题笔记】2024.10.4 test
    2024.10.4test虹色的北斗七星思路题目要求\[maxn-minn-len\]的最大值,其中\(maxn\)为区间的最大值,\(minn\)为区间的最小值,\(len\)为区间的长度注意性质,最优的状态一定是区间的左右端点为最大值和最小值时。因为,如果区间左右端点不为最大值或最小值,那么区间长度就可以继续......
  • The 2024 CCPC Shandong Invitational Contest and Provincial Collegiate Programmin
    Preface传说中被杭电1h十题的比赛,结果打到结束也只会10题这场开局就不太顺,一个Easy题C卡到2h的时候才出,虽然中期题基本都能想到但还是出的很慢最后1h讨论了下L的大致做法发现了几个关键性质后觉得写不完了,遂摆烂滚去打炉石了A.Printer签到,二分答案大力检验即......
  • 羊城杯2024WP
    羊城杯-2024webweb2进题信息搜集一下,dirsearch发现了login路由可访问,先随便点一下,发现了一个文件读取:http://139.155.126.78:30148/lyrics?lyrics=Rain.txt我尝试了一下:http://139.155.126.78:30148/lyrics?lyrics=../../../../../../../../etc/passwd发现可以读取:本以为是任意文......
  • [DMY]2024 CSP-S 模拟赛 Day 7
    题目T1T2T3T4当前分数这场打成一坨了。几乎写的全是暴力。赛时开T1,不太会正解,先写了个暴力丢到那儿。胡了一个\(\mathcal{O}(n^2)\)的做法,但是样例假了,照着手推一遍发现错的很彻底。已经过了1h,于是去看T2。T2还是先写出来了暴力思路。感觉这东西......