记事本

CVE-2014-7911学习笔记

之前对Android root相关知识了解的不多,所以打算找几个洞学习一下。这篇是对CVE-2014-7911的相关分析文章的学习笔记。 漏洞成因 0x0 finalize()方法 Java中在进行垃圾回收时,要回收的对象的finalize()方法会被自动调用。类BinderProxy在文件/frameworks/base/core/java/android/os/Binder.ja...

密码学相关的一些代数

CTF比赛中遇到许多密码学的题目,往往最后都转化为相关的代数问题。因此,在这里就经常会用到的一些概念进行归纳总结。 原根(primitive root) 什么是原根 是模 的原根,如果所有与 互素的数,均与 的某个幂模 同余。换句话说,对于所有与 互素的 ,存在 使得 。 原根存在性 对于一般的 ,原根是不一定存在的。比如说,模8就不存在原根。但如果是模素数 ,那么原...

ROP之return to dl-resolve

我们都知道,ELF在执行时,许多函数的地址是lazy binding的,即在第一次调用时才会解析其地址并填充至.got.plt。对于具体这一解析过程是如何完成的,之前并不怎么了解,只知道是在.plt中完成。其实之前Tiger有告诉我有一个名为roputils的工具,利用的就是构造所需信息,直接解析得到system的地址进而ROP。但直到最近才去研究其代码,搞明白这一技术,即return to...

0CTF 0ops app

这道题提供了一个sandbox.so,当时我连如何运行这道题都不知道……今天阅读了http://acez.re/ctf-writeup-0ctf-2015-quals-login0opsapp-breaking-out-of-a-pin-sandbox/和https://rzhou.org/~ricky/0ctf2015/0ops_app/test.py,终于搞明白这道题目了,在此记录。 ...

ISG决赛pepper

这道题目是去年参加ISG决赛时遇到的。二进制文件是有多个漏洞,我们当时是做的栈溢出,而堆溢出一直没有研究过。正好这两天在学习堆溢出,发现这道题和0CTF的freenote十分相似,不愧是同一批人出的题目。所以,在这里简要记录下,因为思路是完全一样的 具体地,通过修改restaurant的功能,我们可以重新编辑restaurant的description。description是保存在堆上的...

0CTF freenote

这道题目是关于heap overflow的。之前没有接触过这方面。通过阅读http://winesap.logdown.com/posts/258859-0ctf-2015-freenode-write-up, http://winesap.logdown.com/posts/258859-0ctf-2015-freenode-write-up这两篇writeup,基本上明白了原理,在此记录...

通过DT_DEBUG来获得各个库的基址

最近,在学习BCTF和0CTF的writeup时,注意到了一种通过DT_DEBUG来获得库的基址的方式:BCTF里的pattern用这一方法来获得ld-linux.so的地址,0CTF里的sandbox用这一方法来获得sandbox.so的基址。之前面对ASLR,我只知道可以通过GOT来获取libc.so的地址,而其他库的地址还不清楚应该怎样取得。于是,我稍微研究了下,在此记录。 首先,通...

0CTF rsa quine

这道题是一道密码学(其实是数学)的题目,因为对相关理论还是不够熟练,在比赛的时候没有能够做出来:( 这两天读了读别人的writeup,基本上明白解法了,在这里记录下具体的思路。 题目的要求是求”quine number”,即:已知RSA公钥,求,使得。规则很清晰,但实际解决起来还是需要一定的数学知识。 Ok. Now welcome to the world of math! 我当时犯...

0CTF writeup

周末参加了今年的第二次CTF,0CTF。与BCTF类似,这次的溢出、逆向题目也是非常有水平的,令人大开眼界。下面是我的部分的writeup。 flaggenerator 这道题的溢出还是比较明显的。在leetify时,一个h字符会被变成1-1三个字符,从而长度变长,造成栈溢出。但这道题有stack canary保护,如果我们栈溢出修改了返回地址,就会触发__stack_chk_fail。...

PHP protocol的坑

LFI(local file inclusion)是一类比较典型的漏洞,不过之前也并没怎么利用过它,主要还是include时往往有许多限制,比如文件的后缀必须是.php。今天偶然发现了PHP伪协议的一个坑,可以得到php文件的内容而不是作为php解释。 这是php://filter/convert.base64_encode/resource=。根据官方文档的描述,他可以像base64_e...