当前位置: 首页 > news >正文

格式化字符串漏洞

一、格式化字符串漏洞原理

格式化字符串是一种很常见的漏洞,其产生根源是printf函数设计的缺陷,即printf()函数并不能确定数据参数arg1,arg2…究竟在什么地方结束,也就是说,它不知道参数的个数。它只会根据format中的打印格式的数目依次打印堆栈中参数format后面地址的内容

格式字符串漏洞发生的条件就是格式字符串要求的参数和实际提供的参数不匹配。

常见格式化字符串漏洞函数如下:

任意内存读

任意的内存的读取需要用到格式化字符串 %s,其对应的参量是一个指向字符串首地址的指针,作用是输出这个字符串。

在任意内存的读取之前要知道局部变量是存储在栈中,通过所输入的格式化字符串找到输出的参数的位置。

采用%s的方式读整数,需要参考ASCII码表:

任意内存写

任意地址的内存写,通过%n格式字符完成。

%hn 一次性写入2个字节

%hhn

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于Qt的osg读取模型进度回调
  • 数据结构:栈(含源码)
  • [QNX] C++编程: 外部硬件加速器与SOC共享内存中使用NOCACHE的必要性与优化策略
  • jQuery实现图片轮播效果
  • Redis相关面试题(二)
  • Go框架选战:Gin、Echo、Fiber的终极较量
  • 力扣 | 递增子序列 | 动态规划 | 最长递增子序列、最长递增子序列的个数、及其变式
  • Python-调用pymysql库,执行插入语句
  • 3个月,从Web前端到鸿蒙应用高手
  • 67、ceph
  • Go语言+Vue3开发前后端后台管理系统实战 用户管理的前端界面和表结构分析
  • MySQl 中对数据表的增删改查(基础)
  • 软件测试下的AI之路(6)
  • Python万字长文基础教程第四章:函数
  • 用openssl 创建自签名证书用于内网HTTPS
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 2017 前端面试准备 - 收藏集 - 掘金
  • CentOS 7 修改主机名
  • Cumulo 的 ClojureScript 模块已经成型
  • Fabric架构演变之路
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • java8 Stream Pipelines 浅析
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • javascript从右向左截取指定位数字符的3种方法
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Vue2 SSR 的优化之旅
  • 关于使用markdown的方法(引自CSDN教程)
  • 蓝海存储开关机注意事项总结
  • 算法系列——算法入门之递归分而治之思想的实现
  • 小试R空间处理新库sf
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 如何在招聘中考核.NET架构师
  • ​520就是要宠粉,你的心头书我买单
  • ​马来语翻译中文去哪比较好?
  • ![CDATA[ ]] 是什么东东
  • # 透过事物看本质的能力怎么培养?
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #Java第九次作业--输入输出流和文件操作
  • #Linux(Source Insight安装及工程建立)
  • #数学建模# 线性规划问题的Matlab求解
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • $forceUpdate()函数
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • ( 10 )MySQL中的外键
  • (1)(1.13) SiK无线电高级配置(六)
  • (3)nginx 配置(nginx.conf)
  • (java)关于Thread的挂起和恢复
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (利用IDEA+Maven)定制属于自己的jar包
  • (南京观海微电子)——I3C协议介绍
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (四)Controller接口控制器详解(三)
  • (四)模仿学习-完成后台管理页面查询
  • (算法二)滑动窗口