格式化字符串漏洞实验 - 实验楼.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
格式化字符串漏洞实验 - 实验楼

2015/5/15 格式化字符串漏洞实验 ­ 实验楼 格式化字符串漏洞实验 一、 实验描述 格式化字符串漏洞是由像printf(user_input)这样的代码引起的 ,其中user_input是用户输入的数据 ,具 有Set-UID root权限的这类程序在运行的时候 ,printf语句将会变得非常危险 ,因为它可能会导致下面 的结果 : 使得程序崩溃 任意一块内存读取数据 修改任意一块内存里的数据 最后一种结果是非常危险的 ,因为它允许用户修改set-UID root程序内部变量的值 ,从而改变这些程序 的行为。 本实验将会提供一个具有格式化漏洞的程序 ,我们将制定一个计划来探索这些漏洞。 二、实验预备知识讲解 2.1 什么是格式化字符串? printf (The magic number is: %d, 1911); 试观察运行以上语句 ,会发现字符串The magic number is %d中的格式符%d被参数 (1911 )替 换 ,因此输出变成了 “The magic number is 1911”。 格式化字符串大致就是这么一回事啦。 除了表示十进制数的%d ,还有不少其他形式的格式符 ,一起来认识一下吧~ 格式符含义 含义 (英 ) 传 %d 十进制数 (int ) decimal 值 %u 无符号十进制数 (unsigned int) unsigned decimal 值 %x 十六进制数 (unsigned int) hexadecimal 值 %s 字符串 ((const) (unsigned) char *) string 引用 (指针 ) %n %n符号以前输入的字符数量 (* int) number of bytes written so far引用 (指针 ) ( *%n的使用将在1.5节中做出说明 ) 2.2 栈与格式化字符串 格式化函数的行为由格式化字符串控制 ,printf函数从栈上取得参数。 printf (a has value %d, b has value %d, c is at address: %08x\n,a, b, c);  2.3 如果参数数量不匹配会发生什么? 如果只有一个不匹配会发生什么 ? printf (a has value %d, b has value %d, c is at address: %08x\n,a, b); /courses/document/734 1/7 2015/5/15 格式化字符串漏洞实验 ­ 实验楼 在上面的例子中格式字符串需要3个参

文档评论(0)

l215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档