- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
代码审计基础-shield
代码审计基础
今天分享一下我学习代码审计的一点经验 ,希望跟大家共同进步。
我们今天的主角是 世界上最好的语言,
没错 ,就是 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() 这个函数
函数的位置在
您可能关注的文档
- 2016艾滋病宣传课件(学校).ppt
- 2017 ttt 新普科技(重庆)有限公司.pptx
- 2017 机械学科专业英语 -- 1.pdf
- 2017-2018《生活与哲学》第二单元-探索世界与追求真理.ppt
- 2017-2018学年八年级语文上册名师课件(人教版)-7 列夫-托尔斯泰 (共18张).ppt
- 20171220 h2s-职业健康知识讲座.ppt
- 2017_2018学年高中英语unit2healthyeating单元重点小结课件新人教版必修3.ppt
- 2017《生活与哲学》第二单元-探索世界与追求真理.ppt
- 2017_2018学年高中语文第9课记梁任公先生的一次演讲课件新人教版必修1.ppt
- 2017·4.6献县惠农语文讲座.pptx
文档评论(0)