记事本

ISG初赛BT

这道题目是去年ISG初赛的一道ARM逆向题,当时的知识储备还不足以解决。但其实稍微了解了下ARM汇编之后就可以做了,虽然说还不熟练,花了较久时间。 我是开始想用IDA的反编译的,但不知怎么回事,对thumb代码的处理总有问题;继而无奈用hopper,然而hopper得到的伪代码还是比较简陋的,而且发现居然会把本应是*ptr+=1这样的反编译为*ptr=1,这个错误太大了……于是最后基本还是...

olympic ctf echof(PWN 300)

2015年第一帖。 以往的CTF的题目质量还是很高的,所以打算稍微练一练这些题目。 这道题目,存在一处format string attack。主要是在strncpy后添加结尾的null字符时,如果长度足够,就会把之后用到的格式字符串地址最低byte设为0,而那里正好指向我们提供的内容,于是接下来的sprintf造成漏洞。 但是,在开始时会先检查我们提供的内容是否包括字符n,这就使得%...

mysql比较字符串忽略结尾的空白

今天学习到一个知识点,在查询时如果比较字符串,会忽略结尾的连续空白,起始的空白不会忽略。于是: select * from users where user='admin '; 会把user='admin'的记录也选出。 这里有比较详细的例子,而且mysql的官方文档也说了: In particular, trailing spaces are significant, whi...

ISG初赛library

子曰:温故而知新。最近一段时间没有练习pwn的题目,正好当时ISG初赛的library还一直没研究,于是练习了下。果然是稍微放一放就生疏了…… 比较明显的问题是在register里,有一个format string attack。但这道题对这里还是有一些限制,比如字符串长度只有15,而且一旦调用过一次就不能再调用了。我最初光考虑这个漏洞了,想好久也没有找到好的方法。因为有ASLR,所以必须...

用QEMU模拟ARM环境

之前遇到ARM逆向的入门题,但没有环境只能静态分析,非常慢;而且我觉得边调试边学应该会快一些,于是决定模拟一个ARM环境装linux系统。 首先是QEMU,由于单位电脑系统是RHEL 6,没有qemu-system-arm,于是我不得不编译了一次。我下的是qemu-2.0.2,运行 $ ./configure --target-list="arm-softmmu arm-linux-u...

第一次做ARM逆向的题目

把ARM环境搭好后,就可以动态调试了。之前一道arm逆向的题目,由于没有环境一直只能静态分析,但对arm完全不熟,进行不下去。果然能动态调试就好了。 题目给了一个.c文件和一个.asm文件。我首先编译.c文件,但发现得到的结果用了好多thumb的16 bits的代码,而这和给的.asm文件是不同的。搜索后发现需要指定-marm。于是 $ gcc leg.c -g -marm -o leg...

webhacking.kr challenge 12

这道题给了源代码,发现过滤了union。于是只能从当前表考虑了。 尝试了取no=1,得到guest,说明其对应的no是1。如果表里还存在id=admin的记录,那么那条记录的id要么比1小,要么比1大。于是分别尝试这两种,发现后一种是正确的 http://webhacking.kr/challenge/web/web-12/index.php?no=9)+or+no>1--+

webhacking.kr challenge 10

这道题其实和web-09非常像。 进入页面,发现有提示,知道了column和表的名字。然后试了下直接把参数no取为查询语句,发现还是很多过滤了,而且最后发现似乎返回值只见到了0和1,估计还是盲注。 过滤的地方,主要是空格有问题,但如果把空格换为换行符%0a就可以了。 然后还用昨天的思路,但一直跑不出来……最后搜了答案。相比我的,主要是这次flag有两个,用我昨天做web-09时的那种对...

webhacking.kr challenge 9

这道题花了好久啊才做出来……不愧是这么大分值的题目 首先,直接点击后就是遇到了HTTP basic auth。由于realm是sql injection world,我开始还以为在这里就要有注入……试了各种知道的payload发现没有用,于是在这里卡住了 然后是搜索时偶然发现这里提到了他的basic auth被GETS方法绕过了,而实际上GETS并不是什么正确的方法,是因为配置时只检查了...

webhacking.kr challenge 7

发现有页面的源代码,发现参数val处存在注入,而且在提示里也说了用union。所做的防御是过滤了一些字符,而且每次随机选一个查询语句,不同的语句需要闭合的括号数目不同。 由于不允许使用空格和注释,我就用TAB来分词;由于最后需要的结果2也不允许出现,加号也不允许出现,我们用减法3-1=2。 由于只有5种随机的情况,所以选定一种一直跑应该就有选中的可能。我选了最简单的只有1个括号的, h...