pwn
文章平均质量分 64
Anciety
这个作者很懒,什么都没留下…
展开
-
Own your Android! Yet Another Universal Root CVE-2015-3636 (中文翻译) (2)
Exploitation目标到现在我们弄明白了典型的UAF漏洞和一个用户空间悬垂的文件描述符,指向了内核中可以被攻击者达到的PING sock对象。接下来,我们将会展示我们的方法,来重写sock 对象以及通过复用这个PING sock对象来调用一些东西。在那之后,我们将可以执行内核中的任意代码,并最终达到在android设备上进行特权提升。在实践中,我们使用socket对象的close函数。当clo翻译 2016-08-07 11:25:13 · 1129 阅读 · 0 评论 -
Own your Android! Yet Another Universal Root CVE-2015-3636 (中文翻译) (3)
root在我们控制了内核上下文的PC寄存器之后,我们计划执行代码,来获得设备的root权限,这总是我们最终的目的。最基础的方法是重写当前任务(task)的addr_limit到0,于是达到内核空间的任意读写。在我们重写一些内核空间的重要数据结构之后提权。对于我们没有PXN存在的设备上,事情就很简单了。我们只需要将close函数指针设置为一个用户空间的虚拟地址,然后将一段用来将当前任务的addr_li翻译 2016-08-07 11:50:24 · 986 阅读 · 0 评论 -
google ctf 2017 inst_prof writeup
题目题目本身比较神奇,当时看到这道题的时候还懵了一下,一下子没有太好的思路,不过后两天还有考试所以也没太静下心来想,今天刚考完了再来看这道题感觉其实难度并不是很大。题目给出了一个二进制文件,本能的checksec:[*] '/home/vagrant/ctf/contests/googlectf-2017/inst_prof/inst_prof' Arch: amd64-64-lit原创 2017-06-23 01:20:04 · 1202 阅读 · 0 评论 -
pwn工具箱之unsorted bin attack
unsorted bin attack基本信息利用类型:堆利用 堆利用类型:针对unsorted bin的利用,也就是需要用normal chunk或者large chunk释放得到的 利用思想:unsorted bin是一个双链表,在分配时会将unsorted bin中的chunk从unsorted bin中移除,是一个链表的unlink操作。如果能够控制unsorted bin chunk的原创 2017-07-03 13:03:26 · 2828 阅读 · 0 评论 -
pwn工具箱之house of force
house of force基本信息利用类型:堆利用堆利用类型:top chunk相关利用思想:通过修改top chunk大小,使得分配任意大小都是从top chunk里边切出来,这样分配一个大小占满想要写的位置和当前分配位置top chunk的差,下一个分配就可以分配出想要写的位置利用难点需要有办法能够更改到top chunk大小需要能够知道当前位置和要写位置的差值需要能够自由控制将原创 2017-07-03 14:40:53 · 1005 阅读 · 0 评论 -
0ctf 2017 babyheap writeup
前言坑比的我比赛的时候没有做。。第二天有课,赛后看了看,题目其实没啥太多难度,可能也就是细节上需要注意一下吧题目题目功能简单介绍一下题目功能,因为我本机是用的linux,ida在虚拟机里,ida的复制又不是特别方便,所以我就不复制分析的情况了,具体分析自己做一下练习一下也比较好,就把大致的情况说明一下。首先是主菜单===== Baby Heap in 2017 =====1. Allocate2原创 2017-03-26 15:47:43 · 6405 阅读 · 10 评论 -
pwntools使用简介
0x01 pwntools?pwntools是一个ctf框架和漏洞利用开发库,用Python开发,由rapid设计,旨在让使用者简单快速的编写exploit。pwntools下载:https://pwntools.com/ 文档在线:http://pwntools.readthedocs.io/en/latest/0x02 使用简介官网的一个简单样例from pwn import *contex原创 2016-05-07 11:32:51 · 45380 阅读 · 6 评论 -
pwn工具箱之house of spirit
house of spirit基本信息利用种类:堆利用堆利用种类:释放fake chunk利用思路:通过构造fake chunk,然后使得fake chunk被free,在下一次malloc时返回fake chunk利用难点需要能够控制被free的内容,才能构造fake chunk在free fake chunk的时候,libc会检查next size,也就是从当前位置开始算,加上一个c原创 2017-07-03 15:13:49 · 953 阅读 · 0 评论 -
0ctf final upxof writeup
https://github.com/D-I-E/writeups/tree/master/2017-ctfs/20170602-TCTF-Final/pwn-upxof原创 2017-06-13 09:37:21 · 818 阅读 · 0 评论 -
0ctf final world of fastbin writeup
https://github.com/D-I-E/writeups/tree/master/2017-ctfs/20170602-TCTF-Final/pwn-world_of_fastbins原创 2017-06-13 09:37:52 · 706 阅读 · 0 评论 -
汇编获取当前执行位置方法总结
call-popglobal _startsection .text_start: call next_ins next_ins: pop rax ; rax holds current pc ret; nasm -felf64 test.S && ld -o test test.o这种方法利用了call的时候会在栈上保存ip值,之后pop就可以使某寄存器获取原创 2017-07-05 20:48:45 · 3039 阅读 · 0 评论 -
Python沙箱?不存在的
http://bobao.360.cn/learning/detail/4059.html转载 2017-07-07 11:58:00 · 807 阅读 · 0 评论 -
defcon quals 2016 feedme writeup
题目基本信息一个32位的二进制文件,静态链接 checksec:[*] '/home/vagrant/ctf/practice/defcon-2016/pwn/feedme/feedme' Arch: i386-32-little RELRO: No RELRO Stack: No canary found NX: NX enable原创 2017-07-07 15:12:25 · 912 阅读 · 0 评论 -
绿盟杯NSCTF(CCTF)2017 pwn writeup
前言比赛有无数值得吐槽的地方,其中最主要的是,题目给了pwn的libc,然而,特么是错的,也就是说虽然给了libc,但是其实还是靠运气/当做没有libc解,顺手记录一下这两个水题。pwn1分析mainint __cdecl main(){ alarm(0x1u); setbuf(stdin, 0); setbuf(stdout, 0); setbuf(stderr, 0); p原创 2017-07-22 01:12:36 · 6103 阅读 · 0 评论 -
bosten key party 2017 signed shell server writeup
signed shell server题目https://github.com/ctfs/write-ups-2017/tree/master/boston-key-party-2017/pwn/signed-shell-server-200分析先随便把玩一下,有两个功能,一个是sign,一个是execute,sign会给出一个命令的签名,然后execute给出命令,并给出签名,如果匹配成功就会使用原创 2017-07-27 15:03:11 · 744 阅读 · 0 评论 -
bosten key party 2017 memo writeup
memo题目https://github.com/ctfs/write-ups-2017/tree/master/boston-key-party-2017/pwn/memo-300分析题目有些生硬,很多地方都不太能说通,不过就是练习一下,就当刷水题了。逻辑setvbuf等基本操作,以及使用prctl设置了no new privs,所以无法新建进程输入用户密码,密码可以不写,全局变量name和p原创 2017-07-27 19:47:16 · 1069 阅读 · 0 评论 -
hitb-2017 1000levels writeup
题目分析题目设置的还是比较巧妙的。本身是一个二进制的文件,linux 64环境,保护情况如下: Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: PIE enabled功能一共三个: 1. go:原创 2017-08-28 11:00:37 · 1715 阅读 · 0 评论 -
hitcon 2016 pwn babyheap writeup
NoticeFor English information, just get a closer look at my exp.py.题目Heap so fun! Baby, don’t do it first. nc 52.68.77.85 8731 note : the service is running on ubuntu 16.04地址:https://github.com/ctfs/w原创 2017-05-22 16:32:22 · 1028 阅读 · 0 评论 -
elf增加一个可执行段以注入代码的一些思考
注入代码需要什么向elf中注入代码为patch带来了极高的灵活性,使得对函数进行hook从而达到更改参数,在线更改值以及监视函数执行等一系列 行为提供了可能。可是向segment中注入代码并不如想象的那么简单,有一些东西需要注意才能够真正达到效果。elf可执行文件执行的关键其实是segment,在执行的过程中section相对并不重要,即使section有一些损坏,只要segment,包括 pr原创 2017-05-22 16:31:45 · 4003 阅读 · 5 评论 -
pwn工具箱之house of lore
前言我看了一些网上对于这些技术的解释,但是发现他们大多比较绕,对于理解其中心思想造成了难度,所以 我在这里把他们记录下来,把这些技术的中心思想记下来,作为自己的pwn工具箱,在以后解决pwn问题的 时候能够随时拿出来发挥作用。我在这里关注的目标是其利用的思想,和其他的一些post不同,利用条件等等这些我个人认为不是能够直 接被总结的,pwn本身的方法多种多样,十分灵活,如果用一些“第一个chu原创 2017-05-22 16:29:39 · 1448 阅读 · 0 评论 -
Own your Android! Yet Another Universal Root CVE-2015-3636 (中文翻译) (1)
摘要近几年来,由于linux内核漏洞极少,并且不同的供应商也在设备上做了防范措施,想要在安卓上找到一个可以广泛使用的root方法已经变得愈加困难。在这篇文章里,我们将要展示我们的一种可以广泛应用的root方案。相关的漏洞是 CVE-2015-3636,一个典型的linux内核UAF(use-after-free)漏洞,我们将深入讨论这个漏洞。由于内核allocator(分配器)的分离分配,利用这样一翻译 2016-08-07 01:21:58 · 920 阅读 · 0 评论 -
volga-ctf-quals-2016 pwn web_of_scicen_250 writeup
基本情况我并没有参加这个比赛,只是作为练习用,所以无法模拟远程,只能本地调试文件是64位的,运行之后先输入名字,然后每次都会输出这个名字,然后问你10道数学题,后面怎样的其实对这个版本的利用来说不是很重要漏洞情况整个函数比较长,不过我还是复制下来方便解释(来源于radare2, 如果不依赖ida的F5, radare2一些时候比ida还好用,特别是在pwn当中):/ (fcn) sub.puts_7原创 2016-11-30 00:17:48 · 865 阅读 · 0 评论 -
linux堆溢出学习之unsafe unlink
示例代码来源:https://github.com/Escapingbug/how2heap/blob/master/unsafe_unlink.c#include <stdio.h>#include <stdlib.h>#include <string.h>#include <stdint.h>uint64_t *chunk0_ptr;int main(){ printf("We原创 2016-12-10 14:29:44 · 3405 阅读 · 6 评论 -
linux 栈溢出学习之return_to_dl-resolve
符号动态解析原理符号解析一个可执行文件可能会包含外部符号,可以简单的理解为包含“库函数”。这些函数(符号),在运行的时候必须得知道他们的地址,一个可执行文件在装载的时候,即使其本身装载的位置是固定的,其“库函数”所在的文件的装载位置是不定的,但是又必须知道其精确地址才可以进行运行。所以,符号解析,即将外部符号的具体地址找到,包含两种方法:静态解析:在编译之后的链接过程中,将外部符号所在的共享库的整原创 2016-12-16 23:59:13 · 1309 阅读 · 0 评论 -
转载2005 Malloc Maleficarum(待翻译)
Date: Tue, 11 Oct 2005 10:14:02 -0700From: Phantasmal Phantasmagoria <phantasmal@hush.ai>To: bugtraq@securityfocus.comSubject: The Malloc Maleficarum-----BEGIN PGP SIGNED MESSAGE-----Hash: SHA1[---转载 2016-12-19 19:36:11 · 695 阅读 · 0 评论 -
linux 堆溢出学习之house of spirit(2)
开篇本篇接上篇的house of spirit技术的学习,上篇我们翻译了这个技术来源的文章,这篇我们将通过实例和总结来进行一个更深入的了解house of spirit 简介攻击方式:结合栈溢出和堆溢出攻击效果:返回任意位置作为一个chunk攻击要求:可溢出控制某个malloc返回的地址被控制的地址被free再次malloc一个chunk可对第二次分配的chunk进行输入house o原创 2017-03-02 18:24:04 · 999 阅读 · 0 评论 -
linux 堆溢出学习之malloc堆管理机制原理详解
前言在pwn的学习过程中,最为难啃的骨头莫过于堆相关的利用,然而无论是在实际情况下还是在ctf比赛中,堆利用都是绝对的主流,是漏洞的主要类型之一。鉴于国内相关资料有限,系统讲解堆溢出利用的更是少之又少,我在此整理相关内容,既能作为自己学习的记录,也希望能够给大家带来一定的作用,不过鉴于本人也在学习之中,如有错误希望大家包涵,并且能够积极指正。堆的基础知识什么是堆堆是一种全局的数据结构,用以动态管理系原创 2017-03-02 18:47:57 · 13192 阅读 · 2 评论 -
linux 堆溢出学习之house of spirit(1) malloc maleficarum hos翻译
综述house of spirit是一种常用的堆溢出技术,而在如今的malloc实现中依然没有对这种方法进行保护,所以在目前还是一种有效的堆溢出技术。下面我们先从这种方法的来源之本讲起,即2005 Malloc Maleficarumcsdn原文 The House of SpiritThe House of Spirit is primarily interesting because of th原创 2017-03-02 10:37:52 · 2291 阅读 · 0 评论 -
0ctf-2016 pwn-warmup writeup
题目一个bin,知道的信息是flag 的路径https://github.com/ctfs/write-ups-2016/tree/master/0ctf-2016/exploit/warumup-2分析[anciety@anciety-pc warmup]$ file warmupwarmup: ELF 32-bit LSB executable, Intel 80386, version原创 2017-03-04 10:25:53 · 2715 阅读 · 0 评论 -
pwnable.kr brainfuck writeup
题目I made a simple brain-fuck language emulation program written in C. The [ ] commands are not implemented yet. However the rest functionality seems working fine. Find a bug and exploit it to get a原创 2017-03-28 14:07:48 · 1795 阅读 · 0 评论 -
file struct 利用总结——百度杯总决赛线上赛try to pwn write up
简介file stream overflow是pwn的一种常用方法(至少最近几次比赛变得有点常用了),主要是通过利用libc的FILE结构体中的一些特点达到控制流劫持的效果。一般来说劫持控制流的方式主要是: 1. 更改栈上返回地址,这种方法在堆相关的利用和格式化字符串利用时需要知道栈地址,或者有栈溢出等方法,才能够更改到栈地址 2. 更改got表地址,这种方法在开启了full relro的时候就原创 2017-04-08 13:33:52 · 2160 阅读 · 0 评论 -
堆相关漏洞利用libc异常提示原因记录
Memory Corruption (fast)原因size为fast bin范围。fastbin取出的chunk的size不属于该fastbinsmallbin double linked list corrupted原因size 为smallbin 范围。smallbin的最后一个被取出的时候发现不为double linked list。如拿出的那一...原创 2017-03-26 11:49:10 · 6940 阅读 · 2 评论 -
超越时空的调试器-qira
QIRA我们在写一些exploit的时候,经常会碰见出现的内存不如预期的情况,这个时候我们就会使用调试器查看到底是什么地方出了问题。这个出错的地方肯定是比现在你查看内存的地方要晚了,也就是说,我们得,倒回去看内存,这在一般的调试器中是实现不了的。qira就是这么一个调试器,它可以做到记录下整个过程,使得调试的过程变得更加简单。总的来说,qira的作用: 1. 进行正常调试 2. 调试时如果发现内原创 2017-05-23 13:59:48 · 2248 阅读 · 0 评论 -
2017 rctf RNote2 writeup
QIRA我们在写一些exploit的时候,经常会碰见出现的内存不如预期的情况,这个时候我们就会使用调试器查看到底是什么地方出了问题。这个出错的地方肯定是比现在你查看内存的地方要晚了,也就是说,我们得,倒回去看内存,这在一般的调试器中是实现不了的。qira就是这么一个调试器,它可以做到记录下整个过程,使得调试的过程变得更加简单。总的来说,qira的作用: 1. 进行正常调试 2. 调试时如果发现内原创 2017-05-23 15:43:23 · 1313 阅读 · 0 评论 -
linux wine运行windows ida
前言由于ctf比赛需要,必须得使用ida,然而我本机一直运行的都是manjaro linux。我基本上是使用linux代替windows的,如果缺少这么一个功能,自然代替就无从谈起了。之前一直使用的都是虚拟机,然而最新的manjaro linux更新之后,virtualbox的guest addition应该是和xorg-server存在一些不可告人的错误,只要安装了guest addition就会原创 2017-05-24 14:52:39 · 4882 阅读 · 0 评论 -
pwn工具箱之fastbin attack
fastbin attack基本信息利用类型: 堆利用堆利用类型: 针对fastbin的利用利用思想: 利用fastbin的free只检查是否和上一个freechunk相等,使得同一个chunk两次进入free list,造成UAF,可以更改fastbin free chunk的fd信息,最终分配一个特定地址利用难点需要能够两次free同一个chunk更改fd的时候,为了能够在之后的ma原创 2017-05-22 16:29:05 · 2262 阅读 · 0 评论 -
Anciety 0CTF/TCTF 2018 总结
前言这次跟着lotus-r3kapig打0CTF,题目挺好,学到很多东西,无奈最后实在是菜,题目要么被队友秒了,要么完全不知道怎么下手,确实很有总结的必要。Time basedDAY 1第一天比较操蛋是我们除了0ctf还有个nuit du ctf要打,两个时间是重合的,比较尴尬,还好nuit du ctf只有一天,难度也还比较有限,加之队友实在给力(感谢@F0r_1st 和...原创 2018-04-02 19:03:48 · 2600 阅读 · 2 评论