- 博客(20)
- 收藏
- 关注
原创 栈的小复习:
栈的小复习:这一次以一道简洁的栈题来回顾一下前面栈的知识与应用:格式化字符串与栈迁移:首先看一下题目的保护:除了canary都开了,其实对我们后面栈溢出时的操作是比较友好的。静态分析:然后我们进入IDA看一下反编译的伪代码:__int64 __fastcall main(__int64 a1, char **a2, char **a3){ sub_7DA(a1, a2, a3); sub_83B(); return 0LL;}main函数非常简单,只有两个函数,第一个函数
2022-05-18 22:27:59
379
1
原创 练习题:2015 9447 CTF Search Engine
练习题:2015 9447 CTF : Search Engine保护检察:没有开PIE和RELRO,一般可以通过泄露libc基址来寻找system函数静态分析:main()函数:__int64 __fastcall main(int a1, char **a2, char **a3){ setvbuf(stdout, 0LL, 2, 0LL); sub_400D60(); return 0LL;}IDA给出的main函数是这个。但是真正意义上的main函数应该是这个:
2022-04-25 13:01:57
1666
2
原创 Fastbins attack : Alloc_to_stack
Fastbins attack : Alloc_to_stack这个利用技巧与前面的house of spirit 和 double free很类似。都是利用fastbins 中单链表成员只用 fd 指针这个特点来将伪造的fake_chunk 挂进 fastbins中再申请出来进行利用回到我们的主题啊,alloc_to_stack,顾名思义,这个技巧就是修改fd 指针将伪造的fake_chunk分配到栈段上面去。演示:#所用例子为wiki上的例子#typedef struct _chunk{
2022-04-12 21:08:50
300
2
原创 堆利用 - Use After Free
堆利用 - Use After Free概述:Use after free ,直译过来就是在释放后再利用,那么是怎么在释放后再利用的呢?其实这个释放后再利用主要是因为在程序中原本指向某些函数或堆块的指针在堆块被free或函数结束后指针本身确没有被置空,那么这个没有被置空的指针所在的堆块虽然被释放了,但是我们却还可以通过程序内对堆块内部的操作来执行这个指针指向的函数。#以下的内容截取自CTF-wiki#堆块被释放后一般有以下几种情况:内存块被释放后,其对应的指针被设置为 NULL , 然后
2022-03-22 23:07:28
1191
2
原创 XCTF4-ReeHY-main-100
XCTF:4-ReeHY-main-100这道题用来巩固一下之前学的unlink的利用方法保护检查:checksec一下:只开了NX,RELRO和PIE都没有开启,所以可以利用静态调试找出的地址来操作,并且可以使用GOT表覆盖这个技巧程序分析:main函数:代码如下:void __fastcall main(__int64 a1, char **a2, char **a3){ sub_400856(a1, a2, a3); while ( 1 ) { sub_4009
2022-03-20 21:35:40
278
3
原创 堆溢出-unlink
#有几张图出自hollk师傅的文章,原文链接:https://blog.youkuaiyun.com/qq_41202237/article/details/108481889#堆溢出-unlink对unlink的利用大概就是对chunk进行内存布局,然后借助unlink中对指针的操作来修改chunk中的指针unlink的宏定义:#define unlink(AV, P, BK, FD) { FD = P->f
2022-03-18 23:31:22
991
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人