starctf2018_babystack
starctf2018_babystack刚刚搭了一个博客 随便写个刷题记录看看效果本题主要考察的是TLS(Thread Local Storage) 线程局部存储,简单来说就是多个线程访问同一个全局变量或者静态变量可能会发生冲突,而这个机制类似于让每个线程都备份了一份全局变量或者静态变量,当前线程只能修改自己这份全局变量或者静态变量并不会影响其他线程的全局变量以及静态变量。 在glibc实现中,TLS被指向一个segment register fs(x86-64上),它的结构tcbhead_t定义如下: 本题思路是我们可以打一个栈迁移+rop执行read。就是先覆盖rbp为bss段上的地址,然后执行puts函数泄露libc,接着执行read函数往bss段上输入数据,最后执行leave ret完成栈迁移从而将执行流劫持到bss段上。一般的retlibc是返回到程序开头重新执行一遍程序。而程序开头会调栈 所以rbp可以直接被覆盖而不会出现错误。本题要栈迁移,所以把rbp赋上合适的值(也就是bss上) 本题我们只要覆盖 TLS 中 Canary 的值,那么整个程序的 Canary...
全国大学生软件系统安全华东区域赛wp及乱七八糟东西
小前言:这次比赛拿了个第10名,不知道能不能进决赛,全靠学长带飞,非常感谢学长,太厉害了,神中神。比赛没包午饭,早知道就多偷点零食了,本篇看着是wp但是我也只会一题,还是学长指导的hh,要学习的前面看看就行了,后面是我比赛后外面玩拍的些照片(可以略过(●’◡’●))。 encoderupload函数,能在size小于原本的size情况下,去修改原来chunk的大小 download函数可以泄露数据 在encode函数中我们注意到当size大于0x10时会释放堆块,并且不修改 heap指针为0,但是后面的encode分支当加密长度返回小于等于0x10时,并不会对原来heap指针修改,这个时候就会留有指针残留,造成uaf。 相反release中比较安全,会指针置零 exp 题目就到这里 下面是一些照片记录下 这个忘记在哪里了 梧桐大道 最喜欢的一张,光秃秃的,可惜,偏我来时不逢春 就和我以前一样,遗憾总是贯穿人生始终。 夫子庙旁拍的 俩张秦淮河 俩座桥我互相拍。 鸡鸣寺旁的樱花 玄武湖大门口 玄武湖 就这些也差不多了 一路上都是一些小情侣,真的挺羡慕的,唉我也想要😭😭😭







