WEB代码审计与渗透测试.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WEB代码审计与渗透测试 5up3rh3i@ WEB应用程序代码审计 程序的两大根本:变量与函数 漏洞现成的条件: A、可以控制的变量 【一切输入都是有害的 】 B、变量到达有利用价值的函数[危险函数] 【一切进入函数的变量是有害的】 漏洞的利用效果取决于最终函数的功能 变量进入什么样的函数就导致什么要的效果 PHP应用程序代码审计 为什么只是PHP? A、跨平台、应用广泛、复杂 B、变量处理灵活[如变量覆盖、全局变量等] C、函数库巨大 [导致漏洞类型多,既有通用的又有特有的] E、代码审计的思路是可以通用的 变量 预定义变量[常规外部提交的变量] GPC $_ENV/SERVER/SESSION $HTTP_RAW_POST_DATA等 register_globals = on [未初始化的变量] PHP ? 4.20 默认为off 变量覆盖[未初始化及覆盖前定义的变量] 如:extract() 、遍历初始化变量、parse_str()等 变量的传递与存储[中转的变量] 存储于数据库、文件[如配置、缓存文件等] 危险函数 文件包含?包含漏洞 代码执行?执行任意代码漏洞 命令执行?执行任意命令漏洞 文件系统操作?文件(目录)读写等漏洞 数据库操作?SQL注射漏洞 数据显示 ?XSS等客服端漏洞 …… 更多的变量处理与危险函数 《高级PHP应用程序漏洞审核技术》 /p/pasc2at/wiki/SimplifiedChinese 代码审计的本质 找漏洞==找对应变量与函数 变量跟踪的过程 通过变量找函数[正向跟踪变量] $id=$_GET[‘id’]?$sid=$id?…?函数($sid) 通过函数找变量[逆向跟踪变量] 函数($sid)? $sid=$id?…? $id=$_GET[‘id’] 变量的传递与二次漏洞 变量存储、提取、传递是一个复杂的立体的过程 过程中经过多个不一样的函数的处理后继续传递,最终达到漏洞函数 传递的过程中任意环节可控就可能导致漏洞 中间函数处理的过程诞生新的变量,新的变量达到新的漏洞函数?诞生新的漏洞[二次漏洞] 二次漏洞 什么是二次漏洞? 2006年提出的一个概念 主导思想:通过一个现有漏洞,创造新的漏洞使得漏洞利用最大化 一个demo 二次漏洞 又一个demo 一个实例: phplist-2.10.4[old ver]远程包含漏洞 又一个实例: Discuz![old ver]远程代码执行漏洞 二次漏洞的启示 漏洞的类型是可以转换的:最终的目的是攻击效果最大化! 一切进入函数的变量是有害的:变量在传递过程任意个环节可控就可能导致漏洞! 变量传递的途径是多样的:我们的攻击思路多元化! 如对于dz,去寻找可以找到uc_key的途径:sql注射、文件读取[config.inc.php里存有uc_key]、控制mysql的管理权限[phpmyadmin]等等 二次漏洞的其他应用 应用级别的“rootkit” 其他的因素与代码审计 php版本与代码审计[变量与函数] php.ini默认设置问题 php本身函数的漏洞[php缺少自动升级的机制] 系统特性与代码审计 包括OS: [主要是文件操作] web服务器: [主要文件解析类型] 《系统特性与web安全 》 http://4/article/63.htm 数据库类型与代码审计[数据库注射与利用] 渗透测试中的代码审计 代码审计的目的[目的决定行为] 甲方的代码审计: 目的:防御 要求:找到更多的漏洞,并且给出安全补丁建议等。并且对应用程序平台无特别要求。 乙方的代码审计: 目的:渗透也就是进攻 要求:找到一个可用的漏洞就可以,但是要求快速、利用效果最大化等。并且要求在渗透测试目标的平台上可以利用。 渗透测试中的代码审计 代码审计前的准备 A.得到代码 a.对于开源的应用程序:得到程序的版本信息,越详细越好。 *具体应用程序版本扫描 b.对于不开源的应用程序: *通过黑盒扫描得到备用文件 *通过黑盒扫描利用sql注射暴代码[loadfile()] *通过黑盒扫描利用容易文件下载漏洞 *上一次渗透测试打包下载的代码 B.得到平台信息 php版本及php.ini一些基本设置、OS信息、Web服务信息、数据库应用 渗透测试中的代码审计 快速

文档评论(0)

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

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

1亿VIP精品文档

相关文档