您好,欢迎访问三七文档
PHP代码审计构建安全能力,创造业务价值目录12代码审计之背景介绍代码审计之实战漏洞分享23代码审计之发展趋势什么是代码审计?由具备丰富的编码经验并对安全编码及应用安全具有很深刻理解的安全服务人员,根据一定的编码规范和标准,针对应用程序源代码,从结构、脆弱性以及缺陷等方面进行审查,最终输出代码审计报告,完善应用程序,提升自身安全水平怎么做代码审计?(从发现安全漏洞维度出发)具备哪些知识点(运行环境搭建、熟悉开发语言、各类函数应用)了解常用漏洞产生成因(SQL、xss、上传漏洞、LFI、代码执行、CSRF等等)漏洞调试(断点输出、变量跟踪、漏洞关键函数)高级应用漏洞(奇技淫巧应用:二次注入、截断注入、条件竞争、二次攻击、黑白盒fuzz等)Poc编写(数据包构造、语言类型)代码审计带来的好处?发现更多“隐蔽”的安全漏洞企业合规性要求提升企业整体安全水平提升企业安全开发编码规范目录12代码审计之背景介绍代码审计之实战漏洞分享53代码审计之发展趋势WampWAMP是指在Windows服务器上使用Apache、MySQL和PHP的集成安装环境,可以快速安装配置Web服务器,一般说来,大家都习惯于将Apache、MySQL、PHP架设在Linux系统下,但是,不可否认的是Windows也有其优点,就是易用,界面友好,软件丰富,操作起来非常方便,因此对新手来说在Windows平台下使用Apache、MySQL、PHP也确实是一个不错的选择。下面我将介绍几款在Windows下可以使用的WAMP集成环境代码查找工具上传漏洞文件包含漏洞逻辑漏洞远程代码执行漏洞XPATH注入漏洞变量覆盖漏洞跨站脚本漏洞SQL注入漏洞目录遍历漏洞Csrf漏洞命令注入漏洞常见漏洞展示文件包含包含漏洞代码执行执行任意代码漏洞命令执行执行任意命令漏洞文件系统操作文件(目录)读写删除等漏洞数据库操作SQL注射漏洞数据显示XSS等客服端漏洞……常见漏洞展示审计代码审查相关危险函数XSSechoprint*……SQLinjectionmysql_querymysqli_querymysqli::queryPDO::query……Codeexecassertevalpreg_replaceinclude*require*……CommandexecpassthruSystempopen……Filefreadcopyfputsunlink……Otherextractparse_strunserialize……XssDiscuz!7.X系列一处问题可导致反射型XSS某功能高危跨站某处XSS打后台SQL注入DedeCMS最新版前台SQL注射某版本SQL注射漏洞最新全版本通杀注入代码执行PHPMyWind最新版代码执行漏洞江南科友堡垒机远程代码执行漏洞远程代码执行漏洞…...Xss?php$contetnt=$_GET[’content'];echo$content;?当提交=scriptalert(1)/script即可实现弹窗。由于通过get方式获取的变量未经过过滤导致直接输出js脚本,通过htmlspecialchars函数进行Html实体转换输出即可大幅度降低xss产生的可能。Xss不能直接造成危害,只能通过点击或者其他间接方式来触发该漏洞。Xss漏洞利用因人而异,乌云G博士,xss发挥的出神入化(远程代码执行、埋雷式攻击)SQLInjection1、注入之---无单引号$contentid=$_GET[‘contentid’];$r=$this-dbget_one(“SELECT*FROM`”.DB_PRE.“content`WHERE`contentid`=$contentid”);攻击条件:无过滤,直接产生SQL注入攻击。2、注入之---有单引号(无反转义函数)$contentid=$_GET[‘contentid’];$r=$this-dbget_one(“SELECT*FROM`”.DB_PRE.“content`WHERE`contentid`=‘$contentid’”);攻击条件:PHP未开启gpc魔术开关3、注入之---有单引号(stripslashes、urldecode、base64_decode、http_referer)$contentid=$_GET[‘contentid’];//$contentid=stripslashes($contentid);#反转义,去掉\等字符//$contentid=urldecode(contentid);#url解码方式,如%27则将解码成’进入SQL语句//$contentid=base64_decode(contentid);#base64解码//$contentid=$_SERVER[‘HTTP_REFERER’];#http头默认不转义$r=$this-dbget_one(“SELECT*FROM`”.DB_PRE.“content`WHERE`contentid`=‘$contentid’”);SQLInjectionStripslashes注入案例:Z-Blog的php版前台正则SQL盲注漏洞通过自定义_stripslashes函数,对从get、post、cookie3种传参方式进行反转义,造成传入的单引号等污染SQL语句字符得到执行,最终造成SQL注入漏洞。SQLInjectionUrldecode注入案例:齐博CMSurldecode注入SQLInjectionBase64_decode注入案例:CuuMall最新版sql注入SQLInjectionHTTP头注入案例:phpcms2008referer注入跟踪info变量,进入insert方法(产生注入)upload1、上传之---头文件欺骗上传程序当中只对MIME类型进行检测,如://文本类型:text/plain图片类型Image/jpeg//客户端可控,可伪造MIME类型绕过限制,达到任意文件上传。2、上传之---黑名单(后缀可控)程序中限制可执行文件后缀,如php、asp、cer、jsp、jspx、aspx、asa、ashx等1、apache:php3、php5绕过2、iis:iis6.0解析漏洞3、上传之---截断利用某些函数获取文件名%00截断原理,生产.php后缀(GPCoff)4、上传之---.htaccess应用利用上传.htaccess文件控制执行后缀,达到任意解析参考链接:、上传之---Fuzz后缀对后缀可控的文件名进行fuzz,利用iis或linux文件解析缺陷,生成可执行文件PHPCMS全版本通杀getshell(前台):头文件欺骗缺陷代码如下:远程代码执行借助代码执行函数如eval、preg_replace执行可控的变量,达到任意代码执行的漏洞,等级高危。案例如下:!某两个版本前台产品命令执行远程代码执行漏洞=view&id=417phpwind远程代码执行漏洞用友ICC网站客服系统远程代码执行漏洞网博士存在远程PHP代码执行漏洞CMSTOP远程代码执行CmsTop是一款基于PHP+MYSQL技术架构的内容管理系统,采用前后台分离技术,前台为发布页面(全为html静态页面),用户包括各行业重点门户系统,涉足报页、广电、网络媒体、教育等。在cmstop当中搜索功能模块由于对搜索关键字未进行严格过滤,导致任意代码执行。缺陷代码如下:CMSTOP远程代码执行跟踪getpagin方法,进入pages方法。CMSTOP远程代码执行继续跟踪pages_url函数当url变量不存在时,赋值自定义好的常量URL值。当url变量中存在$page字符时,将$url进行执行(变量得到执行)通过构造特殊url即可造成远程代码执行,如下链接:=search&controller=index&id=$page&action=search&wd=a&test=${@eval($_POST[xxxx])}变量覆盖漏洞高级应用漏洞分享二次注入:利用Mysql数据库出库值反转义功能,多次与数据库交互造成的注入问题。截断注入:利用某些php函数对字符截断,造成\或者’进入SQL语句当中,通过多个参数拼接构造畸形语句注入。条件竞争:根据程序执行时间差异,利用多线程并发技术,优先执行某些缺陷功能。二次攻击:多个bug或漏洞结合放大攻击手段(2次注入、2次解析、2次cookie注入)。白黑盒fuzz:利用web服务器对某些特殊字符处理不当造成文件截断等等漏洞。攻击者不是直接通过一个变量提交恶意代码而产生的漏洞,而是通过变量的转化或者是中转(如:数据库、cookie、自定义函数)最终产生的安全漏洞。“什么是PHP二次攻击?”恶意代码写入数据库UPDATEINSERT攻击原理:insert--select--insert--selectinsertselectinsertselect再次循环一次web服务器数据库漏洞存在于/plus/feedback.php中的第246行在/include/common.inc.php中的第79行载入攻击代码INSERTINTO`#@__feedback`(`aid`,`typeid`,`username`,`arctitle`,`ip`,`ischeck`,`dtime`,`mid`,`bad`,`good`,`ftype`,`face`,`msg`)VALUES('1','0','游客','1',',1,3,4,5,6,7,8,(selectpwdfromdede_admin))数据库交互数据库交互数据库交互1\',\\'\,1,3,4,5,6,7,8,(selectpwdfromdede_admin))#1',',1,3,4,5,6,7,8,(selectpwdfromdede_admin))#INSER
本文标题:PHP代码审计
链接地址:https://www.777doc.com/doc-4139188 .html