摘要:
实验五 通讯协议设计 1 + 两人一组 + 基于Socket实现TCP通信,一人实现服务器,一人实现客户端 + 研究OpenSSL算法,测试对称算法中的AES,非对称算法中的RSA,Hash算法中的MD5 + 选用合适的算法,基于混合密码系统实现对TCP通信进行机密性、完整性保护 + 学有余力者,对 阅读全文
摘要:
[TOC] 分箱式内存管理 Unsorted bin Unsorted bin 可以看作是 small bins 和 large bins 的 cache,只有一个 unsorted bin,以双向链表管理空闲 chunk,空闲 chunk 不排序,所有的 chunk 在回收时都要先放到 unsor 阅读全文
摘要:
[TOC] 分箱式内存管理 对于空闲的 chunk,ptmalloc 采用分箱式内存管理方式,根据空闲 chunk 的大小和处于的状态将其放在四个不同的 bin 中,这四个空闲 chunk 的容器包括 fast bins,unsorted bin,small bins 和 large bins。Fa 阅读全文
摘要:
[TOC] 边界标记法 + chunk2mem(p):根据 chunk 地址获得返回给用户的内存地址 + mem2chunk(mem):根据 mem 地址得到 chunk 地址 + fd_nextsize 指针距离 malloc_chunk 结构体开头的字节偏移量,也就是最小的chunk的大小。(3 阅读全文
摘要:
#实验三-并发程序-1 学习使用Linux命令wc(1) 基于Linux Socket程序设计实现wc(1)服务器(端口号是你学号的后6位)和客户端 客户端传一个文本文件给服务器 服务器返加文本文件中的单词数 上方提交代码 附件提交测试截图,至少要测试附件中的两个文件 ##实验代码: ###客户端: 阅读全文
摘要:
[TOC] Ptmalloc内存管理设计 + 具有长生命周期的大内存分配使用 mmap。 + 特别大的内存分配总是使用 mmap。 + 具有短生命周期的内存分配使用 brk,因为用 mmap 映射匿名页,当发生缺页异常时,linux 内核为缺页分配一个新物理页,并将该物理页清 0,一个 mmap 的 阅读全文
摘要:
[TOC] x86_64栈和mmap固定映射地址 只需要设置全局变量randomize_va_space 值 为 0 , 这 个 变 量 默 认 值 为 1 。 用 户 可 以 通 过 设 置/proc/sys/kernel/randomize_va_space 来停用该特性,也可以用如下命令: s 阅读全文
摘要:
[TOC] 堆的概述 什么是堆 堆用来在程序运行时动态的分配内存,对其实就是虚拟空间里从地址向高地址增长的连续的线性区域。 堆的基本操作 + void malloc(unsigned int size):作用是在内存的动态存储区中分配一个长度为size的连续空间。此函数的返回值是分配区域的起始地址, 阅读全文
摘要:
[TOC] 实验内容 1 交叉编译环境 (使用自己笔记本电脑) 1. 可以使用自己的笔记本,也可以使用实验室台式机, 使用实验室机器的不用做本题 2. 安装老师提供的software目录中的“VMware workstation full 10.0.1 1379776.exe” 3. 解压老师提供的 阅读全文
摘要:
[TOC] 程序基本信息 程序漏洞 有一个读入函数,程序的所有输入都靠它读取,这个程序有个很明显的off_by_one漏洞,在输入时多输入一个0字符。 利用思路 程序开始运行时首先要求输入authorname,而这个输入保存在bss段0x0000559C506F3040处 程序有创建函数可以分别给b 阅读全文
摘要:
[TOC] 题目基本信息 题目漏洞 首先在main函数中需要绕过一个if判断才能进入漏洞函数 漏洞函数中很明显的栈溢出漏洞,同时还控制了返回地址不能超过文件映射到内存的最大地址 思路 所以我们的思路很明显,因为函数中控制了返回地址,所以断绝了直接返回运行shellcode的可能,所以我们先通过双le 阅读全文
摘要:
[TOC] 程序基本信息 32位动态链接程序,开启了数据段不可执行以及栈溢出保护 程序漏洞 在函数中sub_80487fa中有一个格式化字符串漏洞和read函数栈溢出漏洞 整体思路 首先不用说,肯定得先想办法栈溢出,溢出函数我们已经找到,接下来的问题就是得泄露出canary的值,从而绕过栈溢出保护。 阅读全文
摘要:
[TOC] 程序基本信息 64位动态链接程序,开启了栈溢出和数据段不可执行保护 程序漏洞 read函数很明显的栈溢出漏洞 整体思路 由于题目给了libc,我们可以使用one_gadget获得gadget在libc中的偏移,通过泄露其他函数库的偏移计算gadget在内存中的位置。由于程序中有栈溢出保护 阅读全文
摘要:
[TOC] 程序基本信息 程序防护全开,shellcode修改got表等方法都不太可行,同时pie开启也使程序代码随机化了。 程序漏洞 这是一个发推特的程序,具体功能不在这里细说,这个程序有两个漏洞: 一个是存在在功能1中的格式化字符串漏洞,在函数sub_55D83D2C4F00中 通过分析可以发现 阅读全文
摘要:
#寄存器 1、查看寄存器 2、查看所有寄存器 3、查看某个寄存器 4、修改寄存器的值 #内存 1、修改内存值 2、搜索内存 #peda插件命令 1、显示在调用指令处停止时传递给函数的参数 2、显示/设置gdb的aslr设置 3、显示特定内存范围内的所有ROP gadgets 4、从调试的elf文件获 阅读全文
摘要:
GCC基本命令 gcc[选项][文件名] + E:仅执行编译预处理(.c .i) + S:将c代码转换成汇编代码(.i .s) + c:仅执行编译操作,不进行连接操作(.s .o) + o:指定生成的输出文件 + I(大写i):指定头文件目录 + l:指定程序要来链接的库 + L:指定库文件所在的目 阅读全文
摘要:
[TOC] 程序基本信息 可以看到开启了栈不可执行和got表不可写保护。 程序溢出点 在函数sub_400AF7中,v8可以读入0x12C个字节,同时if判断中对v8进行字节截断,所以我们可以输入如0x101个字符,在保证能够溢出到返回地址的同时,v8字节截断后的0x01又能够通过if判断,然后通过 阅读全文
摘要:
[TOC] 程序基本信息 我们可以看到这是一个64程序,没有保护开启。 程序溢出点 gets函数可以读取无限字符,存在栈溢出。 接下来我们测测需要多少字符长度可以溢出。 我们可以直接从ida上看到 变量s在栈上[bp Fh]位置,也就是说我们只能输入(Fh + 8)(覆盖rbp需要8个字节)的字节就 阅读全文
摘要:
@[TOC]目录 一、信息收集 信息收集非常重要,它决定了攻击者是否能准确定位目标网络系统安全防线上的漏洞,并通过这些信息制定可行的渗透方案。 需要收集的信息主要有以下这些: + DNS域名信息的收集 + 整站分析 +服务器类型(Linux/Windows) + 网站容器(Apache/Nginx/ 阅读全文
摘要:
一、实验报告封面 课程:Java程序设计 班级:1752班 姓名:罗乐琦 学号:20175219 指导教师:娄嘉鹏 实验日期:2019年5月28日 实验时间: 实验序号:实验五 实验名称:网络编程与安全 二、实验内容与步骤 任务一要求 + 参考http://www.cnblogs.com/roced 阅读全文