03 2024 档案
概述以及数据结构
摘要:概述以及数据结构 1. What is heap Heap is a memory region allotted to every program. Unlike stack, heap memory can be dynamically allocated. This means that
堆漏洞利用
摘要:堆漏洞利用 一. 介绍 堆溢出是一种特定的缓冲区溢出(还有栈溢出, bss 段溢出等)。但是其与栈溢出所不同的是,堆上并不存在返回地址等可以让攻击者直接控制执行流程的数据,因此我们一般无法直接通过堆溢出来控制 EIP 。 二. 利用策略 覆盖与其物理相邻的下一个 chunk 的内容。 prev_si
Metasplotiable靶场渗透
摘要:Metasplotiable靶场渗透 一. 信息收集 1. 获取IP地址 由于虚拟机和本主机在同一局域网下,可以使用ipconfig指令查看主机和靶场的网络地址,再使用Nmap对靶场进行扫描,进行信息收集。 IP地址的网络地址为192.168.172/24,使用Nmap扫描查找虚拟机对应IP地
永恒之黑复现
摘要:永恒之黑复现 一. 永恒之黑介绍 原理 2020年3月,微软公布SMB远程代码执行漏洞(CVE-2020-0796)又称“永恒之黑”,该漏洞由SMB 3.1.1协议中处理压缩消息时,对其中数据没有经过安全检查,没有检查长度是否合法,最终导致整数溢出,直接使用会引发内存破坏漏洞,可能被攻击者利用远程执
RC4加密
摘要:RC4加密 一. 介绍 在密码学中,RC4(来自Rivest Cipher 4的缩写)是一种流加密算法(基于bit进行加密) ,密钥长度可变。它加解密使用相同的密钥,因此也属于对称加密算法。所谓对称加密,就是加密和解密的过程是一样的。RC4是有线等效加密(WEP)中采用的加密算法,也曾经是TLS可采
AES加密
摘要:AES加密 一.加密流程 AES未使用Feistel结构。其前N-1轮由4个不同的变换组成:字节代替、行移位、列混淆和轮密钥加。最后一轮仅包含三个变换。而在第一轮前面有一个起始的单变换(轮密钥加),可以视为0轮。 字节代替(SubBytes):用一个S盒完成分组的字节到字节的代替。 行移位(S
DES加密
摘要:DES加密 一. DES加密流程 1. 初始置换 根据初始置换表,对输入的64位的明文按照比特位数进行替换。 即加密和解密的时候应该是一张8*8的表来进行替换。 2. f运算 f运算的参数为每一轮的密钥k和上一轮的R。 对于32位的输入数据首先经过拓展变换得到48位的数据,然后与48位的
函数调用
摘要:函数调用 一. 调用规范 ARM函数调用约定采用的是:ATPCS ATPCS的英文全称是ARM-THUMB procedure call standard(ARM-Thumb过程调用标准) 总结:参数1~参数4 分别保存到 R0~R3 寄存器中,剩下的参数从右往左一次入栈,被调用者实现栈平衡,返回值
C.S远程指令控制
摘要:C.S远程指令控制 一. 模型结构 客户端: 客户端首先创建一个套接字,该套接字绑定的是目标IP和端口,在调用connect函数的时候将自己的IP和端口发送给服务器。 服务端: 服务端首先创建一个套接字,该套接字和自身IP以及端口绑定,在调用accept函数的时候,从缓冲区将客户端的IP和端口
GDB使用技巧
摘要:GDB使用技巧 1.GDB启动 直接调试目标程序:gdb ./hello_server 附加进程id:gdb attach pid 调试core文件:gdb filename corename 2. 退出GDB 可以用命令:q(quit的缩写)或者 Ctr + d 退出GDB。 如果GDB atta
canary(金丝雀保护)
摘要:canary(金丝雀保护) 一. 介绍 Canary 的意思是金丝雀,来源于英国矿井工人用来探查井下气体是否有毒的金丝雀笼子。工人们每次下井都会带上一只金丝雀。如果井下的气体有毒,金丝雀由于对毒性敏感就会停止鸣叫甚至死亡,从而使工人们得到预警。 我们知道,通常栈溢出的利用方式是通过溢出存在于栈上的局
格式化字符串漏洞
摘要:格式化字符串漏洞 一. 基础知识 1. 原理 这里我们了解一下格式化字符串的格式,其基本格式如下 %[parameter][flags][field width][.precision][length]type 每一种 pattern 的含义请具体参考维基百科的格式化字符串 。以下几个 patter
GOT表和PLT表
摘要:GOT表和PLT表 一. 引入目地 操作系统通常使用动态链接的方法来提高程序运行的效率。在动态链接的情况下,程序加载的时候并不会把链接库中所有函数都一起加载进来,而是程序执行的时候按需加载,如果有函数并没有被调用,那么它就不会在程序生命中被加载进来。这样的设计就能提高程序运行的流畅度,也减少了内存空
PwnTools使用技巧
摘要:PwnTools使用技巧 一. 通过上下文设置目标平台 二. 本地进程对象的创建 语法如下: 通过声明的二进制文件路径可在本地创建新的进程并与其进行交互在上面创建的进程中,stdin默认使用的是管道。可以通过stdin=PTY来更改默认的设置,这样就能够以交互的方式进行操作。管道是一个单向的数