- 博客(25)
- 资源 (3)
- 收藏
- 关注
原创 classic heap unlink exploit(protostar Heap3)
1 概述https://exploit-exercises.com/protostar/heap3/本题展示了classic heap unlink exploit。 前置技能:要了解ptmalloc堆;熟悉classic heap unlink exploit。2 题目Heap3.c#include <stdlib.h>#include <unistd.h>#includ...
2018-05-23 10:34:53
751
原创 ptmalloc heap unlink exploit
1 概述Heap unlink exploit 前提是要对ptmalloc堆有一定的了解。2 Unlink宏Unlink:用来将一个双向 bin 链表中的一个 chunk 取出来参数:AV:arena header(malloc_state)P :将要unlink的chunkBK:P后面的chunk <--FD:P前面的chunk -->具体过程如下:将chunk从FD/B...
2018-05-21 14:29:11
708
1
原创 ptmalloc堆实现
1 概述在 glibc-2.3.x. 之后,glibc 中集成了ptmalloc2。 可以下载glibc源码查看ptmallochttp://ftp.gnu.org/gnu/glibc/ 查看glibc版本millionsky@ubuntu-16:~/tmp$ ldd --versionldd (Ubuntu GLIBC 2.23-0ubuntu9) 2.23 这里主要参考:https://ctf...
2018-05-10 15:08:05
1322
原创 ptmalloc堆数据结构
1 概述在 glibc-2.3.x. 之后,glibc 中集成了ptmalloc2。 可以下载glibc源码查看ptmallochttp://ftp.gnu.org/gnu/glibc/ 查看glibc版本millionsky@ubuntu-16:~/tmp$ ldd --versionldd (Ubuntu GLIBC 2.23-0ubuntu9) 2.23 这里主要参考:https://ctf...
2018-05-10 14:53:41
834
原创 ptmalloc堆概述
ptmalloc堆概述1 概述堆的概念在程序运行过程中,堆可以提供动态分配的内存,允许程序申请大小未知的内存。堆其实就是程序虚拟地址空间的一块连续的线性区域,它由低地址向高地址方向增长。 堆管理器我们一般称管理堆的那部分程序为堆管理器。· dlmalloc – General purpose allocator· ptmalloc2 – glibc· jemalloc – FreeBSD and ...
2018-05-10 14:42:04
1614
原创 ptmalloc堆概述-多线程支持
ptmalloc堆概述-多线程支持1 多线程支持在原来的 dlmalloc 实现中,当两个线程同时要申请内存时,只有一个线程可以进入临界区申请内存,而另外一个线程则必须等待直到临界区中不再有线程。这是因为所有的线程共享一个堆。在glibc的ptmalloc2实现中,比较好的一点就是支持了多线程的快速访问。在新的实现中,所有的线程共享多个堆。 Ptmalloc2中,两个线程同时调用malloc时,每...
2018-05-10 14:33:00
1157
原创 ptmalloc堆概述-mmap系统调用
ptmalloc堆概述-mmap系统调用1 概述malloc 会使用 mmap来创建独立的匿名映射段。匿名映射的目的主要是可以申请以0填充的内存,并且这块内存仅被调用进程所使用。 Malloc分配大于128KB时,直接使用mmap进行分配。2 Mmap2.1 API#include <sys/mman.h>void *mmap(void *addr, size_t length, in...
2018-05-10 14:24:13
752
原创 Ptmalloc堆概述-Brk系统调用
1 brk1.1 program break未初始化数据段末尾后的第一个位置;等于或超过此地址的地方均不可访问;增加program break可以为进程分配内存;减少program break则释放内存;初始时,堆的起始地址 start_brk 以及堆的当前末尾 brk 指向同一地址。根据是否开启ASLR,两者的具体位置会有所不同l 不开启 ASLR 保护时,start_brk 以及 brk 会指...
2018-05-10 14:16:54
807
原创 传统栈溢出-(Exploit-exercise-protostar-stack5)
1 概述传统栈溢出有这些特点:没有ASLR没有NX 题目来自https://exploit-exercises.com/protostar/stack5/ 本来觉得很简单的,还是纠结了半天。Exploit-exercise-protostar-stack5的第一个坑就是setuid程序的core dump没有打开。需要这样操作:su - root #password:godmodeecho 1 &...
2018-04-11 13:19:55
879
原创 Exploit-exercises
1 概述Exploit-Exercise是一个Linux平台下漏洞挖掘、分析的练习平台。网址为:https://exploit-exercises.com官方提供了个很多虚拟机、文档、挑战题目,用于学习各种计算机安全问题,如权限提升、漏洞分析、Exploit开发、调试、逆向工程和通用的网络安全问题。 目前有几个板块:Nebula、Protostar、Fusion、Main Sequence、Clo...
2018-04-09 14:34:51
2138
原创 动态链接库劫持--libc
动态链接库劫持--libc1 概述动态链接库劫持,本文是做这个题目的笔记:Exploit Exercises - Nebula 15。2 Exploit Exercises - Nebula 152.1 问题描述根据题目的要求,我们需要用strace命令观察flag15的系统调用情况。 最终目标是通过这个程序拿到flag。 整个过程都是在调用一个叫libc.so.6的动态链接库:level15@n...
2018-04-04 16:35:52
3830
原创 Linux系统调用
1 概述相比Intel支持的快速系统调用指令sysenter/sysexit,AMD对应的是syscall/sysret,不过现在,Intel也兼容这两条指令。 测试环境:Ubuntu 12.04Ubuntu 16.04 642 传统系统调用int 0x80只用于32位系统,64位系统上不起作用; 系统调用号和返回结果EAX指定要调用的函数(系统调用号)EBX传递函数的第一个参数ECX传递函数的第...
2018-03-19 13:19:45
4871
原创 附加向量
1 附加向量1.1 附加向量Auxiliary vector是一种机制,内核的ELF binary loader使用附加向量在程序执行时传递某些信息到用户空间。 #include <sys/auxv.h>unsigned long getauxval(unsigned long type); sys/auxv.h#define AT_NULL 0 ...
2018-03-19 13:05:54
642
原创 Return-to-VDSO
1 概述本文是这篇文章的笔记:Return to VDSO using ELF Auxiliary Vectorshttps://v0ids3curity.blogspot.jp/2014/12/return-to-vdso-using-elf-auxiliary.html2 代码section .textglobal _startjmp _startvuln:sub rsp, 8mov rax,...
2018-03-19 11:37:54
1154
原创 VDSO与vsyscall
1 概述vsyscall和vDSO是用于加速某些系统调用的两种机制。 传统的int 0x80有点慢, Intel和AMD分别实现了sysenter/sysexit和syscall/ sysret, 即所谓的快速系统调用指令, 使用它们更快, 但是也带来了兼容性的问题. 于是Linux实现了vsyscall, 程序统一调用vsyscall, 具体的选择由内核来决定. 而vsyscall的实现就在VD...
2018-03-19 11:20:21
7518
1
原创 SROP 32位VDSO的爆破
1 概述https://www.anquanke.com/post/id/85810Sigreturn Oriented Programming攻击简介这篇文章描述了32位vdso的爆破本文是对它的复现和笔记。2 32位VDSO的爆破2.1 原理32位的VDSO只有1个字节是随机的vdso_range = range(0xf7700000, 0xf7800000, 0x1000)2.2 程序#in...
2018-03-19 11:05:21
679
原创 SROP 64位-smallest(2017429ctf.ichunqiu)
1 概述360春秋杯”国际网络安全挑战赛Challenge - smallest (pwn 300) - 429 ichunqiu ctf 2017http://2017429ctf.ichunqiu.com/competition/index 64位SROP很好的练习题。2 程序分析millionsky@ubuntu-16:~/tmp/smallest$ objdump -d smallest ...
2018-03-19 10:45:04
1305
原创 SROP 32位--Fun with SROP Exploitation
1 概述本文是这篇文章的笔记:Fun with SROP Exploitationhttps://v0ids3curity.blogspot.jp/2015/06/fun-with-srop-exploitation.html 环境:Ubuntu 16.042 程序nasm -felf32 vuln_s.asmld vuln_s.o -melf_i386 -o vuln_s millionsky@...
2018-03-19 10:24:28
452
原创 SROP 32位DEMO
1 概述开始学习SROP技巧。希望找到一个简单的demo来了解SROP。找了很多资料,但都没有实作成功。主要参考这篇文章1. Sigreturn Oriented Programming攻击简介https://www.anquanke.com/post/id/85810直接拿原文中的程序测试,没有复现成功,主要的问题有:1. VDSO的爆破不成功,GDB调试发现对应的位置没有找到对应的指令:sig...
2018-03-19 10:15:45
572
1
原创 SROP基本原理和利用
1 概述SROP: Sigreturn Oriented Programming ,系统Signal Dispatch之前会将所有寄存器压入栈,然后调用signal handler,signal handler返回时会将栈的内容还原到寄存器。 如果事先填充栈,然后直接调用signal handler,那在返回的时候就可以控制寄存器的值。2 资源1. Framing Signals—A Return...
2018-03-19 10:06:09
7023
转载 虚拟机安装MAC OS系统
转载自ZOL硬件论坛http://diybbs.zol.com.cn/1/34037_699.html?qq-pf-to=pcqq.c2c这篇文章对VMware虚拟机安装Mac OS X 有着非常详细的图文说明。VMware虚拟机安装Mac OS X Mountain Lion 10.8.2所需文件:1、Vmware 9.01版下载:点击进入2、Vmware 9.01版汉化文件:点
2014-04-03 10:35:13
546
转载 WhatsApp月活跃用户4.3亿,是如何做到的
[转载自http://new.iheima.com/detail/2014/0122/58141.html]发表于2014-01-22 08:44:56 来源:腾讯科技聊天应用WhatsApp宣布其月活跃用户数达到4.3亿。在宣布用户数方面,WhatsApp近一年表现得非常积极。基本上每增长5000万,它就要向外界公布一次。按照它的数据增长幅度,现在WhatsApp每增长1亿用户大概需
2014-01-23 15:32:08
878
转载 Google Protocol Buffer 的使用和原理
Google Protocol Buffer 的使用和原理[转载自刘 明,http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/, 2010 年 11 月 18 日。]Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等
2013-12-31 09:06:53
776
转载 iMessage Privacy
come from http://blog.quarkslab.com/imessage-privacy.htmliMessage is probably one of the most trendy instant messaging systems. Apple presents it as very secure, with high cryptographic standards,
2013-12-30 16:03:34
4273
Learning Linux Binary Analysis
2018-06-19
深入理解程序设计使用Linux汇编语言
2018-06-19
Learning the bash Shell, 3rd Edition(EN)
2008-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人