网站大量收购独家精品文档,联系QQ:2885784924

代码审计基础-SHIELD1762.pdf

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

代码审计基础 今天分享一下我学习代码审计的一点经验 ,希望跟大家共同进步。 我们今天的主角是 世界上最好的语言, 没错 ,就是 PHP PHP 由于使用广泛 ,入门简单 ,主要适用于 Web开发领域。 一般情况下 ,测试时黑盒的情况比较多。有时我们获取到源码后 ,如果有代 码审计基础就可以进行比较全面的测试 ,使渗透效率更高。 PHP静态代码审计分几个阶段 , 2007-2009 正则表达式 2009-2012 借助词法分析 ,主要处理面向过程的代码部分 2012-2016 借助语法分析 ,抽象语法树 AST ,代码段 ,可以分析面向对象 代码 基本概念 :危险函数 ,用户输入 这里的漏洞定义可以这样来理解 :用户输入经过各种操作 ,最终进入到危险 函数 ,以危险的方式成功执行。 这里的用户输入是指 GPCSF、数据库、文件等可能输入的点 ,危险函数如 include ,system等 ,当用户输入进到函数里面 ,并且要是以危险的方式执行 , 比如转义了 ,或者过滤了 ,这样就不能成功了。 大家了解到这个基本的概念之后 ,对后面的案例就会比较清晰。 然后我来给大家说一下学习方法 : 简单来说就是多分析 ,多思考。在这里不得不提一套比较好的学习漏洞原理 的教程——dvwa。对于初学者 ,可以以 dvwa 为案例 ,分析漏洞原理。掌握漏 洞原理之后 ,对渗透测试的理解也会更深刻。 它是类型比较多 ,左边列出的类型基本是常用类型。 今天主要是讲人工审计 ,知道原理之后 ,大家可以借助工具进行分析。 如果大家还记得前面的漏洞的定义的话 ,就可以知道 ,这里是有 2条路可以 走的。 可以正向 ,可以逆向。 正着走 ,就是跟踪用户可控的输入 ,比如看到一个 GET 参数 ,跟踪这个参 数最终是到哪一步了 ,是否进入到危险函数中 ,以危险的方式执行了。 那么逆着走呢 ?先找到危险函数 ,逆着看进入到这个函数的参数是否可控 , 一路找到来源 ,最终判断输入点。 中间分析的时候 ,需要留意一些过滤处理。 不同的人分析方式不一样 ,我比较喜欢大致浏览一下程序的架构 ,是否使用 框架 ,MVC ,是否有通用过滤等 ,这些都是需要考虑的。要不然 ,当你满心欢 喜地发现 ,一个 GET 参数 ,没有经过过滤函数 ,直接进入到 mysql_query 函数 , 为什么就没有注入呢。 你看了一遍又一遍 ,甚至开始怀疑人生。 分析过的人就知道。 闲话少说 ,言归正传。让我们先看一看原理。 拿到一份源码应该如何开始审计呢 ?新手刚拿到一份源码一定很头疼 ,不知 道该如何下手。首先你应该弄懂这套源码的结构 ,了解系统的源码怎么分布的 , 找到其中的关键文件代码。 往往一些库文件都会放到 include这个文件夹里。 下面这些文件一定要特别注意的 : 函数集文件 :命名中包含 functions, common等关键字。 配置文件 :命名中包含 config关键字 安全过滤文件 :filter, safe ,check index 文件程序的入口文件  XSS 我们先来分析一下最常见的XSS漏洞 :基本的XSS分为反射型和存储型 , 挖掘 XSS漏洞的关键就在于寻找没有过滤且被输出的参数。 先上代码 : 可以看到 ,对着我们的漏洞定义来分析 , 用户输入 :$_GET[ ‘name’] 危险函数 :echo 危险的执行 :用户输入没有经过过滤函数 ,同时在函数执行时也没有相应的 过滤和转义 ,直接输出到 html代码中造成 xss漏洞。 了解这个方式之后 ,就是找用户可控输入和危险函数了。 常用的输出函数有 :print, print_r, echo, printf, sprintf, die, var_dump, var_export。我们寻找这些输出函数就可以来挖掘 XSS漏洞。 我们来看一个案例 ,大米 CMS 的存储型 XSS。漏洞点在留言区这里。先来 看下源码 我们发现 ip参数没有经过转义 ,直接进行了输出 然后看下 get_client_ip() 这个函数 函数的位置在

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档