IDA 漏洞发掘方法示例.doc

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

漏洞发掘方法示例 1. 外部观察,了解文件类型、行为和外部接口。 [cloud@rsas zzz]$ file zzz zzz: setuid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped cloud@rsas zzz]$ ./zzz usage : ./zzz string [cloud@rsas zzz]$ ./zzz aa fzzz(aa) = 7d9dd0c79619cbcabb8f5095f61da05f 2. 静态分析,看看程序用了那些外部函数: [cloud@rsas zzz]$ objdump -R zzz 0804aa14 R_386_JUMP_SLOT strncat 0804aa18 R_386_JUMP_SLOT fileno 0804aa1c R_386_JUMP_SLOT fprintf 0804aa20 R_386_JUMP_SLOT getenv 0804aa24 R_386_JUMP_SLOT system 0804aa28 R_386_JUMP_SLOT setresuid 0804aa2c R_386_JUMP_SLOT fchmod 0804aa38 R_386_JUMP_SLOT strcat 0804aa3c R_386_JUMP_SLOT printf 0804aa40 R_386_JUMP_SLOT getuid 0804aa44 R_386_JUMP_SLOT setreuid 0804aa48 R_386_JUMP_SLOT getpwnam 0804aa4c R_386_JUMP_SLOT exit 0804aa50 R_386_JUMP_SLOT memset 0804aa54 R_386_JUMP_SLOT strncpy 0804aa58 R_386_JUMP_SLOT fopen 0804aa5c R_386_JUMP_SLOT sprintf 0804aa60 R_386_JUMP_SLOT geteuid 0804aa64 R_386_JUMP_SLOT strcpy . . . . 可以看到有了我们感兴趣的: 溢出: strcpy、sprintf、strcat、(strncpy、 strncat也可能导致溢出) 格式串: printf、sprintf 执行外部命令: system + setreuid/setresuid 有 可能高权限执行我们的命令。 外部接口: getenv、fopen、fprintf。 条件竞争: fchmod 疑虑问题:setresuid/setreuid到底把权限去掉了 还是设高了还是设低了?联系的是同时出现了 getuid,geteuid。 3. 静态考查更多的外部接口 有getenv,那么到底getenv了哪些内容,fopen又 打开了哪个个文件? [cloud@rsas zzz]$ strings zzz /lib/ld-linux.so.2 . . . . usage : ./zzz string fzzz( ) = %02x fzzz= ERR: string too long. LOGNAME LOGFILE logfile = %s LOGPATH ok : root user! ps -ef |sed s/r.*t//g |awk {print $1} 我们看到了感兴趣的: LOGNAME LOGFILE LOGPATH ok : root user! ps -ef |sed s/r.*t//g |awk {print $1} 4. 用ida反汇编,静态考查我们以上发现的兴趣点: .text:0804940E push offset aLogname ; LOGNAME .textcall _getenv .textadd esp, 4 .text:0804941B mov dword_804A924, eax .textpush offset aLogfile ; LOGFILE .textcall _getenv .text:0804942A add esp, 4 .text:0804973E add esp, 8 .textpush offset aLogname ; LOGNAME .textcall _getenv .text:0804974B add esp, 4 .text:0804

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档