0%

网鼎杯 第二场 fmt

​ 学弟扔了网鼎杯的一道pwn给我,看了下发现是格式化字符串,恰巧昨天刚刚做了一道stack_check_fail劫持的格式化字符串题,今天又做格式化可以说还是比较轻松的。

阅读全文 »

xman夏令营 task_note1

​ 小伙伴扔给我这道题,看了下发现是个堆题。ida看了一下发现在edit函数中存在一个栈溢出,strcat的时候可以接0x90个字节,而dest空间只有0x80个字节,这里存在一个栈溢出,可以覆盖v7为任意值,但是其实很坑,程序内部有一个非常无耻的在字符串最后一个位置+’\x00’的操作,导致这里一直不能成功覆盖。后来看wp才知道strncat对不同偏移处碰到的0有多往后输入几个字字节的情况,但是我在本地18.04的环境下测试并没有成功,可能是libc的原因(待会换回16.04 //捂脸捂脸)。
之后的利用思路就简单了,edit函数最后有一个free(v7)的操作,由于我们可以覆盖v7为任意值,这里我们将v7覆写为bss段存储堆指针所在的地址头,这样我们可以通过再次malloc进行一个arbitray malloc,达到任意地址malloc的结果。

阅读全文 »

HITCTF DragonBall WP

​ 这段时间打算刷下之前哈工大的pwn。今天是第一天,本来打算搞两三道的结果发现一个栈就看了一天,哎果然还是太菜了。

阅读全文 »

ISITDTU CTF 2018 Quals

dead_note_lv1 wp

​ 拿到题目扔ida一看发现在check的时候没有考虑考虑全面导致输入的index可以为负数,这样就能够导致数组下标越界,引发一些问题,比如用户可以通过构造的index进行覆写got表执行任意指令.但是比较麻烦的是这里只允许用户输入三个字节,超过三个字节输入程序会报big size,输入的数据将不会被写入内存.

阅读全文 »

ISITDTU CTF 2018 Quals

xoxopwn wp

​ 看题目只给了一个服务器ip和端口考虑到是盲打,连上去看一下发现好像是一道python沙盒逃逸。常见的语法都被过滤了,使用常见的python内置函数和类试图去发现指定路径下的文件发现沙盒都是显示代码太长了,于是直接file显示当前引用文件的内容,发现dump出的应该就是题目。
题目如下:

阅读全文 »

QCTF 2018

NoLeak wp

​ 这道题是一道unsorted bin attack + fastbin attck的题。
​ 拿到题扔ida一看发现无printf函数无法泄露地址,所以就无法构造system指令执行,checksec看下发现未开nx保护,此时基本可以确定是写shellcode(堆题写shellcode之前没做过)。

阅读全文 »

babystack WP

​ 拿到题目扔ida一看发现是一道栈溢出,但开启了nx保护,而程序没有能泄露地址的函数,所以无法利用rop,想了很久。后来查了才知道这题要用return2dl-resolve来做。

阅读全文 »

Unsorted bin attack白板pwn复现

​ 这题可以用unsorted bin attack解决,64位下当>0x80大小的chunk被free时就会被分配到unsorted bin,而此题可以通过edit控制已经free掉的chunk的fd和bk,经过这么多天的刷题对堆题还是可以说是颇有感悟的,一般堆上的漏洞都发生在free后的chunk中,

阅读全文 »

double free 漏洞 介绍

double free漏洞就是明面上的意思,即可以对一个chunk free两次,由于在free的时候,glibc只对main_arena指向的堆块进行检查,即只有当main_arena直接指向的chunk和将要free的hchunk是同一个chunk时程序才会报”double free”错误,也就是说我们只要间隔free就能绕过这个检测。
如下:

阅读全文 »