2024四川省信息安全省赛snake复现
复习
由于这题是利用的构造一个fakechunk 来进行free所以我们需要好好搞清楚一下glibc2.39版本下free的检测差不多有哪些(这里针对大chunk)
free
-
首先会检查size是否正常
- 是否对齐
- 是否大于最小值
-
利用check_inuse_chunk查看这个chunk是否是double free
-
获取物理意义上下一个chunk
-
chunk不能是topchunk
-
下一个chunk的p位必须为1
-
检查下一个chunk的size是否正常
-
要是当前chunk的prev_inuse位为0则执行合并机制
-
当下一个chunk不是头chunk 则获取下下个chunk 当nextinuse位为0的话就触发unlink
pwn IO相关偏移
主要是因为有几次比赛,题基本打到IO了但是就剩下十分钟了根本调不通IO链,为了预防这种情况再次出现这里慢慢总结一下IO相关结构体和不同的攻击方式
这里主要是快捷提供了一些结构体以及偏移方便直接查询,这里的偏移以虚表为主,虚表实现主要是辅助我们查找函数的
gdb调试技巧
-
查看结构体的偏移量
ptype /o struct xxxx // 可以获取结构体的偏移量
-
查看变量的类型
ptype 变量 // 可以查看变量类型
house of apple2板子
vctf apple 复现(apple的通用模板)
本文参考的是Arahat0 师傅的脚本 这里主要介绍一下vctf apple的house of apple部分的思路 与常规的house of apple不同这里将
_wide_data
指向劫持的FILE
结构体加减偏移 来让脚本更加可以移植 最后实现栈迁移打ROP链的操作
![fb1a288c642bea3735402249db6fe6ff](/Users/elegy/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/nt_qq_e931de0b75079abb07148fd16dfa5521/nt_data/Pic/2024-09/Ori/fb1a288c642bea3735402249db6fe6ff.jpg)
One_byte_ROP
题目
void __noreturn sub_11A9()
{
char v0; // [rsp+Fh] [rbp-11h] BYREF
void *buf; // [rsp+10h] [rbp-10h] BYREF
unsigned __int64 v2; // [rsp+18h] [rbp-8h]
v2 = __readfsqword(0x28u);
if ( !ptr )
ptr = malloc(0x40000uLL);
v0 = 0;
buf = 0LL;
read(0, &buf, 8uLL);
read(0, &v0, 1uLL);
*((_BYTE *)buf + (_QWORD)ptr) = v0;
write(1, "HELLO WORLD", 0xCuLL);
_Exit(0);
}
CGO
汇编
参考文章:https://mp.weixin.qq.com/s/YtTY23cWaE3M5ygAurj1Ig
GO语言的汇编并不是针对硬件框架的汇编,而是抽象出来的可移植汇编
使用的是GAS汇编,也就是(Gnu ASsembler) 可以通过
go build -gcflags "-N -l -S" main.go 2 > main.s
实现生成对应汇编代码
数据库学习
数据库分类
-
关系性数据库
- mysql
- oracle
- sql server
- Sql lite
-
非关性数据库
- redis
- mongodb
不好看的linux内核学习(2) dirty pipe/cow学习
参考文章:https://blog.csdn.net/jasonliuvip/article/details/22600569
https://zhuanlan.zhihu.com/p/25918300
https://blog.csdn.net/hbhgyu/article/details/106245182
mmap函数:https://blog.csdn.net/qq_41687938/article/details/119901916
脏页面:https://blog.csdn.net/shift_wwx/article/details/122497891
匿名页:https://blog.csdn.net/jasonchen_gbd/article/details/79462014
linux下的特殊文件:https://blog.csdn.net/pi9nc/article/details/18257593
反向映射机制:https://zhuanlan.zhihu.com/p/363319174
madvise函数:https://blog.csdn.net/sz66cm/article/details/139334306
dirty cow详解:https://xuanxuanblingbling.github.io/ctf/pwn/2019/11/18/race/ (巨推荐)
get_user_pages:https://zhuanlan.zhihu.com/p/579444153
缺页异常:https://www.anquanke.com/post/id/290851
pde和pte:https://blog.csdn.net/q1007729991/article/details/52723478
管道:https://zhuanlan.zhihu.com/p/470183989
Dirty pipe :https://blog.csdn.net/void_zk/article/details/125884637
Pipe_write源码分析:https://xz.aliyun.com/t/11016?time__1311=Cq0x2QD%3DqDT4l2zYGQqpxQq0I1tqWumD
linux寻址机制:https://www.cnblogs.com/binlovetech/p/17571929.html