- 博客(14)
- 收藏
- 关注
原创 路由器配置基础
1822协议的限制很快体现了出来,它定义的格式将计算机所有应用需要发送的数据完全统一了起来,因此接收方在接收到消息时,无法根据消息本身判断出这些代码是由发送方的哪个应用提供的,进而也就不知道这些代码所描述的数据需要用自己的哪个应用来进行解读。包交换网络不需要在通信各方之间建立独占的通道,数据的发送方会将通信数据划分成很多的数据包,而通信的中转设备有能力根据网络的情况,为各个数据包独立选择发送的路径。因此,当终端B准备发送数据时,它会首先在设备内部执行纵向处理,即按照自上而下的顺序,逐层对数据进行封装。
2024-11-07 14:30:21
406
原创 路由器的配置
路由器的Ethernet 0端口为inside端口,即此端口连接内部网络,并且此端口所连接的网络应该被翻译,Serial 0端口为outside端口,其拥有合法IP地址(由NIC或服务提供商所分配的合法的IP地址),来自网络10.1.1.0/24的主机将从IP地址池c2501中选择一个地址作为自己的合法地址,经由Serial 0口访问Internet。路由器处于用户命令状态,这时用户可以看路由器的连接状态,访问其它网络和主机,但不能看到和更改路由器的设置内容。
2024-11-07 14:27:35
3857
原创 web的理解
Web对我们的生活产生了深远的影响,它改变了人们获取信息和交流的方式。Web也成为了商业活动的重要平台,许多公司和组织通过Web进行在线销售、营销和服务。Web(World Wide Web,全球网络)是互联网上的一种信息传播和交流方式。Web的内容存储在不同的服务器上,用户通过互联网访问这些服务器来获取所需的信息。Web(World Wide Web,全球网络)的历史和发展可以追溯到20世纪90年代初。下面是Web的主要里程碑和发展过程。Web是一个开放的平台,任何人都可以创建和发布自己的网页内容。
2024-11-07 14:25:05
202
原创 逆向的介绍
常用的Trace方法可以使用Ptrace的单步执行记录下运行的每一条指令的地址,也可以使用动态二进制插桩工具,如Pin来进行记录。壳一般会在在二进制程序中植入-段代码, 在运行的时候优先取得程序的控制权,这段代码在执行的过程中对原始的指令进行解密还原,之后再把控制权交还给原始代码,执行原来的代码。3.从初始化状态开始,进行动态符号执行,使用explore进行路 径的探索,通过find参数指定需要到达的地址avoid指定不要到达的地址。它以一个函数的形式存在,函数的参数就是字节码的内存地址。
2024-11-07 14:21:55
1090
原创 ctf简介
WEB(web类):WEB应用在今天越来越广泛,也是CTF夺旗竞赛中的主要题型,题目涉及到常见的Web漏洞,诸如注入、XSS、文件包含、代码审计、上传等漏洞。**解题模式(Jeopardy):**在解题模式CTF赛制中,参赛队伍可以通过互联网或者现场网络参与,这种模式的CTF竞赛与ACM编程竞赛、信息学奥赛比较类似,以解决网络安全技术挑战题目的分值和时间来排名,通常用于在线选拔赛。取证分析题目,都属于这类题目。在CTF比赛中,线上比赛会有,但是比例不会太重,进入线下比赛,逆向和溢出则是战队实力的关键。
2024-11-07 14:17:33
446
原创 堆(glibc)
响应用户请求向系统申请内存,一次会申请很大内存,根据用户需求分配堆,堆空间不够时才会再次与系统交互;malloc(size) : 用户通过malloc函数申请size大小的堆内存,malloc 函数返回对应大小字节的内存块的指针。malloc和free后面真正与系统进行交互的函数时brk()和sbrk(),还有mmap、unmmap等。初始时,堆的起始地址 start_brk 以及堆的当前末尾 brk 指向同一地址。堆的大小通过brk()和sbrk()函数移动program_break使堆增长。
2024-11-07 14:15:41
256
原创 关于pwntools
执行上述代码的时候,可以看到其中有一个BytesWarning,其中导致的原因是一开始pwntools开发的时候是没有python3的,然后python2的str类型就是bytes类型,所以是不需要对这两个数据类型进行额外的处理;但是到了python3之后,str类型是unicode类型了,跟bytes类型有区别了,这就是要额外处理一下,加个b在str类型前面,以此来声明这是bytes类型的数据;大概的理解,v1为接收输入点,v2固定为0.0,当v2 == 11.28125是,返回flag值;
2024-11-07 14:12:39
1352
转载 pwn入门
到了getshell步骤 ,PWN题基本已经解出来了,把我们漏洞利用步骤的exp替换成获取系统shell的code形成最终exp,就可以拿到主机的shell权限获取flag。缓冲区溢出包括:堆溢出、栈溢出、bss溢出、data溢出。斗哥认为解决PWN题就是利用简单逆向工程后得到代码(源码、字节码、汇编等),分析与研究代码最终发现漏洞,再通过二进制或系统调用等方式获得目标主机的shell。在分析代码步骤时,有些漏洞是经常出现,所以我们应该事先了解常见的漏洞,这样可以让我们在分析代码时事半功倍。
2024-11-07 14:10:58
166
原创 堆叠的概念
堆叠ID,即成员交换机的槽位号(Slot ID),用来标识和管理成员交换机,堆叠中所有成员交换机的堆叠ID都是唯一的。设备堆叠ID缺省为0。堆叠时由堆叠主交换机对设备的堆叠ID进行管理,当堆叠系统有新成员加入时,如果新成员与已有成员堆叠ID冲突,则堆叠主交换机从0~最大的堆叠ID进行遍历,找到第一个空闲的ID分配给该新成员。②角色选举结束后,主交换机更新堆叠拓扑信息,同步到其他成员交换机上,并向新加入的交换机分配堆叠ID(新加入的交换机没有配置堆叠ID或配置的堆叠ID与原堆叠系统的冲突时)。
2024-10-28 15:08:07
826
原创 堆跟栈的区别
堆则是由C/C++函数库提供,库函数会按照一定的算法在堆内存中搜索可用的足够大小的空间,如果没有足够大小的空间(可能是由于内存碎片太多),就有可能调用系统功能去增加程序数据段的内存空间,这样就有机会分到足够大小的内存,然后进行返回。3、全局区(静态区)(static),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。堆则容易产生碎片,多次的new/delete 会造成内存的不连续,从而造成大量的碎片。
2024-10-28 15:05:52
322
原创 格式化字符
计算偏移量: 例如,如果你在第 7 个 %p 的输出中看到 41414141,这意味着偏移量是 7,因为在栈上前 6 个值是其他内容,第 7 个值是你输入的字符串。同样,当 a 调用 d 时,d 的返回地址也会存放在栈上与 b 和 c 返回地址相同的位置,因为在调用 d 时,c 的栈帧已经被清除,栈指针再次返回到 a 的栈帧。当 b 返回后,a 再调用 c,c 的返回地址会存放在栈上同样的位置,因为调用 c 时,b 的栈帧已经被清除,栈的指针返回到 a 的栈帧位置。// 假设这是我们想写入的地址。
2024-10-28 15:04:07
439
转载 栈溢出基础
静态链接得到的文件包含外部函数的全部代码,而动态链接得到的可执行文件并不包含外部函数的代码,而是在运行时将动态链接库加载到内存的某个位置。所以可以利用libc库包含的(一般是system)系统级的函数来获取当前进程的控制权,执行的函数需要参数,例如system("/bin/sh")4.假定输入溢出数据不收“/x00”字符的影响,所以payload可以直接包含"/x7d/x00/x00/x00"(传给eax的参数125)7.gadget需要是的rdi的值指向“/bin/sh”的地址。
2024-10-28 15:01:24
40
原创 堆和栈 临时
堆的内存地址生长方向与栈相反,由低到高,但需要注意的是,后申请的内存空间并不一定在先申请的内存空间的后面,即 p2 指向的地址并不一定大于 p1 所指向的内存地址,原因是先申请的内存空间一旦被释放,后申请的内存空间则会利用先前被释放的内存,从而导致先后分配的内存空间在地址上不存在先后关系。关于堆上内存空间的分配过程,首先应该知道操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆节点,然后将该节点从空闲节点链表中删除,并将该节点的空间分配给程序。
2024-10-14 12:29:44
555
原创 pwn入门
file命令是一个常用的命令行工具,用于识别文件的类型。如果文件已存在,新内容将被添加到文件末尾。这个例子中,cat 命令会读取 file.txt 文件的内容,并通过管道将其传递给 grep 命令。如果文件已存在,错误信息将被追加到文件末尾。这个例子中,command 的标准输出和错误输出都将被重定向到 output.txt 文件。如果文件已存在,它的内容将被覆盖。这将读取 input.txt 文件的内容,并将其作为 sort 命令的输入。当使用重定向符号时,你可以将命令的输出发送到不同的目标。
2024-09-29 20:27:29
1510
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人