下载此文档

web代码审计与渗透测试.ppt


文档分类:IT计算机 | 页数:约39页 举报非法文档有奖
1/39
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/39 下载此文档
文档列表 文档介绍
WEB代码审计与渗透测试
******@

.
WEB应用程序代码审计
程序的两大根本:变量与函数
漏洞现成的条件:
A、可以控制的变量
【一切输入都是有害的 】
B、变量到达有利用价值的函数[危险函数]
【一切进入函数的变量是有害的】
漏洞的利用效果取决于最终函数的功能
变量进入什么样的函数就导致什么要的效果
.
PHP应用程序代码审计
为什么只是PHP?
A、跨平台、应用广泛、复杂
B、变量处理灵活[如变量覆盖、全局变量等]
C、函数库巨大
[导致漏洞类型多,既有通用的又有特有的]
E、代码审计的思路是可以通用的
.
变量
预定义变量[常规外部提交的变量]
GPC $_ENV/SERVER/SESSION $HTTP_RAW_POST_DATA等
register_globals = on [未初始化的变量]
PHP » 默认为off
变量覆盖[未初始化及覆盖前定义的变量]
如:extract() 、遍历初始化变量、parse_str()等
变量的传递与存储[中转的变量]
存储于数据库、文件[如配置、缓存文件等]
.
危险函数
文件包含包含漏洞
代码执行执行任意代码漏洞
命令执行执行任意命令漏洞
文件系统操作文件(目录)读写等漏洞
数据库操作SQL注射漏洞
数据显示 XSS等客服端漏洞
……
什么样的函数导致什么样的漏洞!
.
更多的变量处理与危险函数
《高级PHP应用程序漏洞审核技术》

.
代码审计的本质
找漏洞==找对应变量与函数
变量跟踪的过程
通过变量找函数[正向跟踪变量]
$id=$_GET[‘id’]$sid=$id…函数($sid)
通过函数找变量[逆向跟踪变量]
函数($sid) $sid=$id… $id=$_GET[‘id’]
.
变量的传递与二次漏洞
变量存储、提取、传递是一个复杂的立体的过程
过程中经过多个不一样的函数的处理后继续传递,最终达到漏洞函数
传递的过程中任意环节可控就可能导致漏洞
中间函数处理的过程诞生新的变量,新的变量达到新的漏洞函数诞生新的漏洞[二次漏洞]
.
二次漏洞
什么是二次漏洞?
2006年提出的一个概念
主导思想:通过一个现有漏洞,创造新的漏洞使得漏洞利用最大化
一个demo
<?php
//?file=
unlink($_GET[‘file’]);
?>
一个典型的文件删除漏洞
[注意:include与require的区别]
.
二次漏洞
又一个demo
一个注射漏洞
$sql= "select id,filepath,user,name from attachment where fileid=$_GET[‘id’]”; $result = mysql_db_query($dbname, $sql); $file=mysql_fetch_array($result);
然而:
include($file[‘filepath’]);
一个貌似不可以直接控制的新变量$file[‘filepath’]进入了危险函数include()
?id=1 union select 1,’’,1,1
当然我们没有那个注射漏洞,只要我们对数据库有控制权限一样可以通过update、insert控制$file[‘filepath’]。
.

web代码审计与渗透测试 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数39
  • 收藏数0 收藏
  • 顶次数0
  • 上传人相惜
  • 文件大小2.23 MB
  • 时间2020-12-05