summer14

随笔分类 -  代码审计

C代码审计之指针诡计
摘要:指针诡计(pointer subterfuge)是指通过修改指针值(函数指针、对象指针)来利用程序漏洞的方法。 发生溢出的缓冲区被用于修改函数指针或对象指针的值。攻击函数指针使得攻击者能够直接将程序的控制权转移到由其提供的任意代码,对对象指针进行修改并赋值的能力导致任意内存写。 缓冲区循环类型 缓冲 阅读全文

posted @ 2023-05-08 22:48 summer14 阅读(136) 评论(0) 推荐(0)

C代码审计之格式化字符串
摘要:格式化输出函数 printf() 写入标准输出 fprintf() 写入流 sprintf() 写入数组 snprintf() 等同于sprintf(),但是指定了可写入字符的最大值 格式化字符串函数的原理 例:printf("test%d%s", 20, "tom"); 函数运行时部分栈: 低地址 阅读全文

posted @ 2023-03-20 10:18 summer14 阅读(104) 评论(0) 推荐(0)

C代码审计之整数溢出漏洞
摘要:整数溢出就是对整数操作时产生了超过表示范围的数值 无符号整数不会发生溢出。如果超出表示范围,无符号整数进行回绕,CF寄存器(假装是结果的最高位)会记录下进位/借位操作。 //假设四位无符号整数进行运算 1111 + 1111 = 11110 0000 - 1111 = 10001 回绕:整数表示范围 阅读全文

posted @ 2023-03-18 11:06 summer14 阅读(342) 评论(0) 推荐(0)

C代码审计之缓冲区溢出漏洞及修复方案
摘要:当在某特定数据结构的内存空间的边界之外写入数据时,即会发生缓冲区溢出。 本篇主要针对字符串操作错误引发的漏洞。 1、无界字符串复制 发生于从源数据复制数据到一个定长的字符数组时 1.1 使用gets()从标准输入读取数据到一个定长的缓冲区中 // gets()函数读取输入时不会判断上限,很容易造成缓 阅读全文

posted @ 2023-03-17 17:46 summer14 阅读(553) 评论(0) 推荐(0)

导航