Articles
-
一种轻松扩展ELF可执行内存的方法
在ELF文件中寻找可执行空间的办法很多,例如:patch无用的代码段、利用.eh_frame、修改PHDR增加一个新的Segment等等。本文介绍一种简单又通用思路:扩展原有的Segment。(注:本方法对与32位程序不适用)
关键词:ELF、可执行空间扩展。
-
ELFGuard 实现原理介绍
简介
ELFGuard是一个针对ELF文件的shellcode执行框架,可以在ELF二进制文件中插入你想要的shellcode,例如:SECCOMP来限制系统调用,reverseshell来留后门。
-
IDA Python 自动化检测格式化字符串漏洞
-
cannary是如何生成的?
canary是如何生成并且写入TLS中0x28的?
canary是rbp之前8byte大小的随机区域(最低位为0),从fs:0x28读取并且在函数返回前校验。
简而言之,在ELF加载到内存后,执行
_start
函数时,最终会调用security_init()
函数来向tcbhead_t.stack_guard中写入canary的值。其中canary的值是内核已经生成好保存在_dl_random
中的。glibc仅仅是将其最低位置为0后就存入tcbhead_t.stack_guard中。具体细节如下: -
浅析 house of lore
条件:控制smallbin中第一个chunk(假设为victm)的bk,bk指向要写的位置。bk->fd要为victim。这时malloc会从smallbin中取出chunk,同时last(bin)就为我们伪造的bk了,下次malloc时就可以得到。同时需要注意下次malloc时,还会检测bk->fd要为victim。
这个利用条件比较难满足。
-
SECCON2016 tinypad - house of einherjar - inuse smallbin/largebin chunk extend
本文参考ctf-wiki,简述house of einherjar的原理,并简单介绍SECCON2016 tinypad的利用思路,记录写exp时遇到的几个问题。
-
HITCON Training lab13 heapcreator - inuse fastbin chunk extend
题目来自HITCON-Training@Angelboy,off-by-one 修改inuse的fastbin chunk size,free该chunk获取一个稍微大的的fastbin chunk。再次malloc实现fastbin chunk overlap,从而可以修改关键指针,hjiack got getshell!
-
BCTF2018 Easiest - fastbin attack
这是BCTF2018中一道关于fastbin attack的简单题,重点阐述一下double free时fastbin attack的利用思路和size的伪造方法。PS:从这篇博客开始,图片如果可以引用raw.githubusercontent.com中的,就不单独上传到博客中了。
-
HITCON2014 stkof -温故知新unlink & fastbin attack
这题是HITCON2014中一道高分题,放到今天来看也就是考察普通的unlink利用。既然重新做了,就好好的写一下,省的以后再返工。废话不多说,具体来看一下。后续发现fastbin attack也可以做,见文末更新。
-
pwnable.kr toddler - all writeups
pwnable.kr toddler部分21道关卡的writeup合集。