首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
IO_FILE——leak 任意读
】的更多相关文章
IO_FILE——leak 任意读
在堆题没有show函数时,我们可以用 IO_FILE 进行leak,本文就记录一下如何实现这一手法. 拿一个输出函数 puts 来说,它在源码里的表现形式为 _IO_puts . _IO_puts (const char *str) { int result = EOF; _IO_size_t len = strlen (str); _IO_acquire_lock (_IO_stdout); if ((_IO_vtable_offset (_IO_stdout) != 0 || _IO_fwi…
_IO_2_1_stdin_ 任意写及对 _IO_2_1_stdout_ 任意读的补充
之前写过一篇 IO_FILE--leak 任意读,但是在学习的时候偷懒了,没有深入去看,这次碰到 winmt 师傅出的题,就傻眼了,故再写一篇博客来记录一下. 例题 ctfshow Incomplete Menu : 洞在 edit 里,可以超过 size 进行一个置零的操作. 这里还是考虑利用 _IO_2_1_stdout_ 来泄露 libc 基址.这里就出现了一个在我上篇文章中忽略的知识点.上一篇文章是通过改 flag 的一系列操作来进行,而 _IO_2_1_stdout_ 还有另一种修改方…
linux 内核的另一个自旋锁 - 读写锁
除spinlock外,linux 内核还有一个自旋锁,名为arch_rwlock_t.它的头文件是qrwlock.h,包含在spinlock.h,头文件中对它全称为"Queue read/write lock".这个锁只使用了两个成员变量就实现了读写锁.一个spinlock,以及一个整形锁变量.而spinlock就是这个Queue. 锁的原理是,当没有写意愿或写锁使用时,任意读锁可以并发.当有写意愿或写锁使用时,一切的读锁和写锁都必须进行排队. arch_rwlock_t的锁变量虽然只…
格式化字符串漏洞利用实战之 njctf-decoder
前言 格式化字符串漏洞也是一种比较常见的漏洞利用技术.ctf 中也经常出现. 本文以 njctf 线下赛的一道题为例进行实战. 题目链接:https://gitee.com/hac425/blog_data/blob/master/decoder 正文 程序的流程如下 部分函数已经进行了标注,看程序打印出来的提示信息就知道这个是一个 base64 解码的程序,然后可以通过 猜测 + 验证 的方式,找到那个 用于 base64 解码的函数. 这个程序的漏洞在于将 base64 解码后的字符串直接传…
见微知著(一):解析ctf中的pwn--Fast bin里的UAF
在网上关于ctf pwn的入门资料和writeup还是不少的,但是一些过渡的相关知识就比较少了,大部分赛棍都是在不断刷题中总结和进阶的.所以我觉得可以把学习过程中的遇到的一些问题和技巧总结成文,供大家参考和一起交流.当然,也不想搞那些烂大街的东西,所以,打算从一道道pwn题开始,见微知著,在题目中延伸. 一:工欲善其事必先利其器 ubuntu14.01 64位(该版本对pwntools的支持最好). pwntools:用于快速编写pwn的exp的python库,功能非常强大. IDA:二进制必备…
[BUUCTF-Pwn]刷题记录1
[BUUCTF-Pwn]刷题记录1 力争从今天(2021.3.23)开始每日至少一道吧--在这里记录一些栈相关的题目. 最近更新(2021.5.8) 如果我的解题步骤中有不正确的理解或不恰当的表述,希望各位师傅在评论区不吝赐教!非常感谢! [OGeek2019]babyrop /dev/random和/dev/urandom是unix系统提供的产生随机数的设备,先产生一个随机数 输入放到buf里,然后与随机数比较,不等的话程序就结束了,于是将输入的第一个字母弄成'\0',以绕过strncmp 后…
Cyber Apocalypse 2021 pwn write up
Controller 考点是整数溢出和scanf函数的引发的栈溢出漏洞,泄露libc地址将返回地址覆盖成one_gadgets拿到shell. 1 from pwn import * 2 3 p = process(['./pwn'],env={'LD_PRELOAD':'./libc.so.6'}) 4 elf = ELF('./pwn') 5 libc = ELF('./libc.so.6') 6 context.log_level = 'debug' 7 8 pop_rdi = 0x004…
[二进制漏洞]PWN学习之格式化字符串漏洞 Linux篇
目录 [二进制漏洞]PWN学习之格式化字符串漏洞 Linux篇 格式化输出函数 printf函数族功能介绍 printf参数 type(类型) flags(标志) number(宽度) precision(精度) length(类型长度) n$(参数字段) 格式化字符串漏洞 格式化字符串漏洞原因: 漏洞利用 使程序崩溃(测试) 栈数据泄露(堆栈读) 获取栈变量数值 获取栈变量字符串 堆栈读总结 栈数据覆盖(堆栈写) 覆盖变量 任意地址内存泄漏(任意读) 任意地址内存覆盖(任意写) 覆盖小数(小于…
C++11 并发指南七(C++11 内存模型一:介绍)
第六章主要介绍了 C++11 中的原子类型及其相关的API,原子类型的大多数 API 都需要程序员提供一个 std::memory_order(可译为内存序,访存顺序) 的枚举类型值作为参数,比如:atomic_store,atomic_load,atomic_exchange,atomic_compare_exchange 等 API 的最后一个形参为 std::memory_order order,默认值是 std::memory_order_seq_cst(顺序一致性).那么究竟什么是 s…
NoSQL数据库笔谈(转)
NoSQL数据库笔谈 databases , appdir , node , paper颜开 , v0.2 , 2010.2 序 思想篇 CAP 最终一致性 变体 BASE 其他 I/O的五分钟法则 不要删除数据 RAM是硬盘,硬盘是磁带 Amdahl定律和Gustafson定律 万兆以太网 手段篇 一致性哈希 亚马逊的现状 算法的选择 Quorum NRW Vector clock Virtual node gossip Gossip (State Transfer Model) Gossip…