Glibc 2.29 下新安全机制及漏洞利用

在Glibc2.29中增加了几个新的安全机制,我呢就参考了其他一些师傅的文章学习了一番,并作如下记录

我只是重新走一遍师傅们的路,叙述如有错误还请斧正

unlink(null-by-one)

###GLIBC 2.23###
/* consolidate backward */
if (!prev_inuse(p)) {
    prevsize = p->prev_size;
    size += prevsize;
    p = chunk_at_offset(p, -((long) prevsize));
    unlink(av, p, bck, fwd);
}


###GLIBC2.29###
/* consolidate backward */
if (!prev_inuse(p)) {
    prevsize = prev_size (p);
    size += prevsize;
    p = chunk_at_offset(p, -((long) prevsize));
    if (__glibc_unlikely (chunksize(p) != prevsize))
        malloc_printerr ("corrupted size vs. prev_size while consolidating");
    unlink_chunk (av, p);
}

如上所示代码,在backward consolidate的时候检查了size!=prev_size。

Continue reading Glibc 2.29 下新安全机制及漏洞利用

第四届蓝帽杯预选WEB&&PWN题解

疫情原因初赛改为了线上赛,还是要吐槽一下,附件给的libc和远程不一样是什么操作,本地通远程不通

emmm电脑卡死十几次,还好PWN最后通了

此WriteUp包括此次比赛所有的WEB和PWN类(PWN2后面补

Continue reading 第四届蓝帽杯预选WEB&&PWN题解

BUUCTF PWN WRITEUP Part7

护网杯_2018_gettingstart

也算是比较经典的一个pwn了,考察了浮点数在内存中的存储方式:

不难猜出是栈上的变量覆盖,难点在于浮点数转换,这里不赘述,有兴趣可以自己上网查查资料。

Continue reading BUUCTF PWN WRITEUP Part7

BUUCTF PWN WRITEUP Part6

wustctf2020_number_game

整数溢出,我们知道int型的取值范围是[-2147483648,2147483647],那我们输入2147483648应该会变成-2147483648,对应地,输入2147483649变成-2147483647

Continue reading BUUCTF PWN WRITEUP Part6