随笔分类 -  PWN

摘要:概述以及数据结构 ‍ 1. What is heap Heap is a memory region allotted to every program. Unlike stack, heap memory can be dynamically allocated. This means that 阅读全文
posted @ 2024-03-23 08:30 ONE_ZJ 阅读(40) 评论(0) 推荐(0)
摘要:堆漏洞利用 一. 介绍 堆溢出是一种特定的缓冲区溢出(还有栈溢出, bss 段溢出等)。但是其与栈溢出所不同的是,堆上并不存在返回地址等可以让攻击者直接控制执行流程的数据,因此我们一般无法直接通过堆溢出来控制 EIP 。 二. 利用策略 覆盖与其物理相邻的下一个 chunk 的内容。 prev_si 阅读全文
posted @ 2024-03-23 08:30 ONE_ZJ 阅读(228) 评论(0) 推荐(0)
摘要:GDB使用技巧 1.GDB启动 直接调试目标程序:gdb ./hello_server 附加进程id:gdb attach pid 调试core文件:gdb filename corename 2. 退出GDB 可以用命令:q(quit的缩写)或者 Ctr + d 退出GDB。 如果GDB atta 阅读全文
posted @ 2024-03-22 09:05 ONE_ZJ 阅读(93) 评论(0) 推荐(0)
摘要:canary(金丝雀保护) 一. 介绍 Canary 的意思是金丝雀,来源于英国矿井工人用来探查井下气体是否有毒的金丝雀笼子。工人们每次下井都会带上一只金丝雀。如果井下的气体有毒,金丝雀由于对毒性敏感就会停止鸣叫甚至死亡,从而使工人们得到预警。 我们知道,通常栈溢出的利用方式是通过溢出存在于栈上的局 阅读全文
posted @ 2024-03-22 09:05 ONE_ZJ 阅读(607) 评论(0) 推荐(0)
摘要:格式化字符串漏洞 一. 基础知识 1. 原理 这里我们了解一下格式化字符串的格式,其基本格式如下 %[parameter][flags][field width][.precision][length]type 每一种 pattern 的含义请具体参考维基百科的格式化字符串 。以下几个 patter 阅读全文
posted @ 2024-03-22 09:04 ONE_ZJ 阅读(841) 评论(0) 推荐(0)
摘要:GOT表和PLT表 一. 引入目地 操作系统通常使用动态链接的方法来提高程序运行的效率。在动态链接的情况下,程序加载的时候并不会把链接库中所有函数都一起加载进来,而是程序执行的时候按需加载,如果有函数并没有被调用,那么它就不会在程序生命中被加载进来。这样的设计就能提高程序运行的流畅度,也减少了内存空 阅读全文
posted @ 2024-03-22 09:04 ONE_ZJ 阅读(540) 评论(0) 推荐(0)
摘要:PwnTools使用技巧 一. 通过上下文设置目标平台 二. 本地进程对象的创建 语法如下: ​​ 通过声明的二进制文件路径可在本地创建新的进程并与其进行交互在上面创建的进程中,stdin默认使用的是管道。可以通过stdin=PTY来更改默认的设置,这样就能够以交互的方式进行操作。管道是一个单向的数 阅读全文
posted @ 2024-03-22 09:03 ONE_ZJ 阅读(1669) 评论(0) 推荐(0)