自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 654 1

原创 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 627 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 1191

原创 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 732

原创 ptmalloc堆概述

ptmalloc堆概述1 概述堆的概念在程序运行过程中,堆可以提供动态分配的内存,允许程序申请大小未知的内存。堆其实就是程序虚拟地址空间的一块连续的线性区域,它由低地址向高地址方向增长。 堆管理器我们一般称管理堆的那部分程序为堆管理器。· dlmalloc – General purpose allocator· ptmalloc2 – glibc· jemalloc – FreeBSD and ...

2018-05-10 14:42:04 1496

原创 ptmalloc堆概述-多线程支持

ptmalloc堆概述-多线程支持1 多线程支持在原来的 dlmalloc 实现中,当两个线程同时要申请内存时,只有一个线程可以进入临界区申请内存,而另外一个线程则必须等待直到临界区中不再有线程。这是因为所有的线程共享一个堆。在glibc的ptmalloc2实现中,比较好的一点就是支持了多线程的快速访问。在新的实现中,所有的线程共享多个堆。 Ptmalloc2中,两个线程同时调用malloc时,每...

2018-05-10 14:33:00 1005

原创 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 680

原创 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 733

原创 传统栈溢出-(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 784

原创 Exploit-exercises

1 概述Exploit-Exercise是一个Linux平台下漏洞挖掘、分析的练习平台。网址为:https://exploit-exercises.com官方提供了个很多虚拟机、文档、挑战题目,用于学习各种计算机安全问题,如权限提升、漏洞分析、Exploit开发、调试、逆向工程和通用的网络安全问题。 目前有几个板块:Nebula、Protostar、Fusion、Main Sequence、Clo...

2018-04-09 14:34:51 2055

原创 动态链接库劫持--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 3570 1

原创 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 4768

原创 附加向量

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 555

原创 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 1078

原创 VDSO与vsyscall

1 概述vsyscall和vDSO是用于加速某些系统调用的两种机制。 传统的int 0x80有点慢, Intel和AMD分别实现了sysenter/sysexit和syscall/ sysret, 即所谓的快速系统调用指令, 使用它们更快, 但是也带来了兼容性的问题. 于是Linux实现了vsyscall, 程序统一调用vsyscall, 具体的选择由内核来决定. 而vsyscall的实现就在VD...

2018-03-19 11:20:21 7314 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 611 2

原创 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 1184

原创 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 372

原创 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 511 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 6831

转载 win7 的 XP Mode 模式

换了硬盘后,装的仍然是Win7系统,但虚拟机

2014-06-17 09:03:32 549

转载 虚拟机安装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 506

转载 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 843

转载 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 740

转载 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 3956

Learning Linux Binary Analysis

First published: February 2016 Production reference: 1250216 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78216-710-5 www.packtpub.com

2018-06-19

深入理解程序设计使用Linux汇编语言

深入理解程序设计.使用Linux汇编语言.高清.完整版 是否真正理解汇编语言,常常是普通程序员和优秀程序员的分水岭。《深入理解程序设计:使用Linux汇编语言》介绍了Linux平台下的汇编语言编程,教你从计算机的角度看问题,从而了解汇编语言及计算机的工作方式,为成就自己的优秀程序员之梦夯实基础。 很多人都认为汇编语言晦涩难懂,但New Medio技术总监Jonathan Bartlett的这本书将改变人们的看法。本书首先介绍计算机的体系结构,然后从编写简单程序开始,一步一步扩充函数、文件、读写处理等知识,并平滑过渡到程序共享、存储与优化,由浅入深地介绍了Linux汇编语言编程。作者不仅会带你了解向计算机传递信息的方式方法,还让你学会向修改和使用程序的人传递信息,并最终用自己的规则构建“世界”,按自己对问题的理解和解决方案创造“世界”。, 主要内容:, 计算机体系结构(详解内存及寻址方式);, 编程初体验;, 函数使用及复杂度处理;, 文件处理及缓冲区分析;, 记录读写及修改;, 通过测试及错误处理打造健壮程序;, 程序共享;, 内存布局及处理;, 计算机的计数原理;, 程序优化(时机、位置及方式)。

2018-06-19

Learning the bash Shell, 3rd Edition(EN)

学习bash shell的经典书籍,中文名为学习bash(第三版)。里面有关于shell 命令的完全实际的例子解说。学习shell可以使Linux的使用更容易。

2008-12-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除