- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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服务信息、数据库应用 渗透测试中的代码审计 快速
您可能关注的文档
最近下载
- 大学生个人简历表格空白模板通用.docx
- 23S516混凝土排水管道基础及接口图集.pdf VIP
- (完整版)《小型露天采石场安全生产标准化评分办法》.pdf
- 砌筑砂浆配合比设计规程.docx VIP
- 医院物业后勤化管理重点部位强化清洁方案及消毒隔离措施方案.docx
- 增量学习与类增长的融合.pptx
- 可编程逻辑控制器(PLC)系列:Siemens S7-1200 (煤炭工业应用)_(11).项目案例分析:矿井提升机控制.docx
- 课题申报书:大学生“慢就业缓就业”心理成因及干预对策研究.docx VIP
- PROE-Program程序设计全解析.doc VIP
- 2014抗爆、泄爆门窗及屋盖、墙体建筑构造14J938.docx
文档评论(0)