《Web安全漏洞及代码审计(第2版)微课版》高职完整全套教学课件_第1页
《Web安全漏洞及代码审计(第2版)微课版》高职完整全套教学课件_第2页
《Web安全漏洞及代码审计(第2版)微课版》高职完整全套教学课件_第3页
《Web安全漏洞及代码审计(第2版)微课版》高职完整全套教学课件_第4页
《Web安全漏洞及代码审计(第2版)微课版》高职完整全套教学课件_第5页
已阅读5页,还剩408页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【ch13】靶机文件包含漏洞与审计【ch14】靶机文件操作类漏洞与审计【ch15)靶机其他类型漏洞与审计【ch16】

靶机框架漏洞与审计部署工作环境Web

安全漏洞及代码审计(第2版)(微课版)【ch01】

部署工作环境【ch02】

初识审计软件【ch03】

初基于DVWA

的漏洞分析与代码审计

【ch04】

靶机SQL

注入漏洞与审计【ch05】靶机跨站脚本攻击漏洞与审计【ch06】靶机跨站请求伪造漏洞与审计【ch07】

靶机服务端请求伪造漏洞与审计【ch08】

靶机XML

外部实体注入漏洞与审计

【ch09】

靶机代码执行漏洞与审计【ch10】靶机命令执行漏洞与审计【ch11】靶机反序列化漏洞与审计【ch12】靶机任意文件上传漏洞与审计项目1全套可编辑PPT

课件01

项目知识准备

代码编辑工具在学习语言之初,最先需要做的就是进行环境搭建。只有配置好相应的环境,才能部署一套业务系统。同时,一个漏洞在不同环境中的利用方式可能不同。因此,我们需要在不同平台上对多个PHP

版本进行切换测试。这时就需要一套可以支持多环境切换、支持不同PHP版本切换等功能的集成环境。1.p

hpStudyphpStudy

的Linux

版和Windows

版同步上线,支持Apache/Nginx/Tengine/Lighttpd/IS7/8/6

。目

该程序包集成了最新的Apache+Nginx+Lighttpd+PHP+MySQL+phpMyAdmin+ZendOptimizer+Zend

Loader服务,如图1-1所示,支持一次性安装,无须配置即可使用,是非常方便、好

用的PHP调试环境。项目知识准备

代码编辑工具2.WampServerWAMP

环境是指在Windows

服务器上使用Apache、MySQL和PHP的集成安装环境,如图1-2所示。WampServer

可以快速安装和配置Web

服务器,集成了Apache、MySQL、PHP、phpMyAdmin

服务,只需要在菜单“开启/关闭”处单击即可启用或禁用这些服务。在安装成功后,访问localhost

时会出现ServerConfiguration

(服务器配置)界面,如图1-3所示。phpStudy2018

PHP-5.4.452.4.27

5.6.315.7.1910.2.8MySQL己经启动…打开工具箱Start

All

ServicesStop

All

ServicesRestart

AllServices三TockYourVirtualHosts

wwwdirectoryApacheMsaL01You

a

Your

VirtaalonYor

nosc一22:03:55建方法。代码审计员通常会选择安装集成环境软件包,如WAMP或LAMP,因为这些软件包可以快速构建用户需要的PHP运行环境。而在选择安装的集成环境软件包时,代码审计员必须考虑集成环境的版本。同时,对于服务软件的版本(如PHP、MySQL、Apache等),可以尝试使用最常用的版本(如PHP5.2.X、MySQL5.0及更高版本)来解决特殊漏洞。在测试过程中,我们可能需要安装不同的服务软件版本进行测试,并且需要在不同的操作系统下进行测试。可以在phpStudy官网上直接下载phpStudy安装程序,之后只需要单击phpStudy主界

WAMP/WNMP

环境搭建在构建PHP代码审计环境时由于它不是一个在线环境,因此为了便于环境的配置,可以尝试使用最简单的构01

项目知识准备页c3小招共eelO7厘本正式站

三-

×1一健宿助WAMD

·

开nne

·

数*工共网站数据库8

FTP三软件管理设置1#件Apod2439mP0958MgOLS728NpnL1511

■□E田

I

田国行m三8

Be文4202908-24142254MoL572世202001025o57正202002410225pad24E应

2920634121d24正调产pA9G0L5726①版本A1.1首XP面中Apache和MySQL等套件后面的“启动”按钮,即可启动相应服务,如图1-

4所示。T01

项目知识准备

WAMP/WNMP

环境搭建在启动服务后,访问http://localhost/

即可看到“站点创建成功”的信息提示,如图1-5所示。选择界面左侧的“网站”标签,进入网站管理界面,在右侧“操作”列中单击“管理”按钮,即可在弹出的菜单中选择相关命令,更改配置和切换Web

服务组合,如图1-6所示。但是,有时在启动Web

服务时,Nginx

服务无法启动。最常见的情况是WebServer

服务端口被占用和WebServer

配置文件发生错误。对于WebServer

服务端口被占用的情况来说,有两种解决方案:第一种是通过更改配置文件中的监听端口来更改WebServer

的服务端口;第二种是结束占用端口的进程。01

项目知识准备

LAMP

环境搭建很多时候,在不同的操作系统下,漏洞的测试结果也可能不同。举一个简单的例子,如果文件包含截断,则Windows

和Linux下的截断之间存在差异。为了更好地测试漏洞,需要在Linux下构建一个PHP

环境。而为

了方便地调整测试环境,仍然选择phpStudy

来构建LAMP

环境。phpStudy

支持Linux,

如CentOS、Ubuntu和Debian。phpStudy

的安装过程如下:wget-chttp://-lamp.phpstudy***.net/phpstudy.bin·chmod+xphpstudy.bin→#

权限设置↵./phpstudy.bin→→→#运

装项目知识准备

PHP

核心配置1.安全模式PHP安全模式表示PHP以安全模式运行,当safe_mode=on

时,它会提供一个基本安全的共享环境。在部署PHP环境的Web

服务器上,如果服务器运行的PHP开启了安全模式,就会有一些函数被完全禁止或被限制一些功能,但是在PHP

5.4之后的版本中已经删除了安全模式及其相关设置。在开启安全模式的情况下,一些文件操作类函数的功能将会受到限制。如果想要操作某个文件,就需要拥有该文件的读取或写入的访问权限,而实现此类功能对于PHP来说是没有问题的。但是,当开启安全

模式后,用户尝试写入或读取一个本地文件时,PHP

会检查当前访问的用户是不是该文件的拥有者,如果不是,则该用户的操作会被禁止,此时安全模式等同于模拟实现了防止一个用户操作另一个用户的文

件的功能。受限制的文件操作类函数如下:chdir,move_uploaded_file,chgrp,parse_ini_file,chown,rmdir,copy,rename,fopen,require,highlight_file,show

source.include.symlink.link.touch.mkdir.unlinke01项目知识准备

PHP

核心配置1

.

安全模式同样地,如果在开启安全模式的情况下,当需要执行系统程序时,必须在safe_mode_exec_dir选项指定的目录下执行程序,否则程序将会执行失败。另外,背部标记操作符()也将会被关闭,常见执行命令

的函数列表也将会受到影响。常见执行命令的函数如下:exec,shell_exec,passthru,system,popene同样地,如果在开启安全模式的情况下,当需要执行系统程序时,必须在safe_mode_exec_dir选项指定的目录下执行程序,否则程序将会执行失败。另外,背部标记操作符()也将会被关闭,常见执行命令

的函数列表也将会受到影响。常见执行命令的函数如下,在开启安全模式后,结果如图1-7所示。<?php↵Sa='ipconfig';↵system(Sa);↵

Warning:systemo

function.systeml

:Cannot

execute

a

blank

command

in

C:\phpStudy\PHPTutorial\www\safe.php

on

line?>e01项目知识准备

PHP

核心配置2.禁用函数在运行环境中,如果未开启安全模式,则可以使用此指令来禁止一些敏感函数的使用。在默认状态下,

disable_functions是没有禁止任何PHP函数运行的。在配置禁用函数时,应使用逗号来分隔函数名,例如:disable

functions=2assert,popen,system,pasthru,shell_exec,proc_close,proc_open,pcntl_exece测试代码如下,在通过disable_functions配置禁用函数后,结果如图1-8所示。<?php

①localhost/safe.php

☆system(Sa);↵

Warning:

system()has

been

disabled

for

security

reasons

inC:\phpStudy\PHPTutorial\www\safe.php

online3Sa='ipconfig';↵01项目知识准备

PHP

核心配置3.魔术引号过滤magic_quotes_gpc

在php.ini文件中是默认开启的,用于设置GPC($_GET、$_POST、$_COOKIE)的魔

术引用状态(在PHP4中还包含$_ENV)

当开启magic_quotes_gpc

时,所有的单引号(')、双引号(

"

)

线(

\

)

和NULL(NULL字符)都会被反斜线自动转义,相当于调用了addslashes()函数。

测试代码如下:<?phpSa=$_GET[a];

echo

Sa;↵011\'但是在PHP5中,magic_quotes_gpc并不会过滤$_SERVER变量,从而导致refer、client-ip等漏洞被利

用,所以在PHP5.3之后的版本中不推荐使用,并且在PHP

5.4之后的版本中已经被取消。如果开启magic_quotes_runtime,则许多返回外部数据(如数据库、文本)的函数将会被反斜线转义。

它和magic_quotes_gpc

的区别是处理对象不同,magic_quotes_runtime是对外部引入的数据库资料或者文件中的特殊字符进行转义,例如,在Discuz

1.0/Discuz3.x中,Discuz

安装文件开始部分的代码就

使用了magic_quotes_runtime

这个函数;而magic_quotes_gpc

是对post、get、cookie

等数组传递过来的数据进行特殊字符转义。测试代码如下:01

项目知识准备//safe.php//-0:代表关闭;1:代表打开ini_set("magic_quotes_runtime"."1");↵echo

file_get_contents("1.txt");↵←→C

①localhost/safe.php222\"213213\'213123\\664345?>4//-1.txt↵222"213213*213123\664345↵

PHP

核心配置3.魔术引号过滤在allow_url_include

(默认关闭)的配置为on

的情况下,可以直接包含远程文件,若包含的变量是可控

的,则可以直接控制变量来执行PHP代码。allow_url_open

(默认开启)允许本地PHP

文件通过调用URL

重写来打开或关闭写权限,通过默认的封

装协议提供的FTP

和HTTP

协议来访问文件。测试代码如下:项目知识准备

PHP

核心配置4.包含远程文件←→C

localhost/safe.php?a=http://localhost/1.txtSa=$_GET[a'];↵

require($a);↵222"213213'213123\66434501项目知识准备

PHP

核心配置5.可访问目录open_basedir

用于将PHP所能打开的文件限制在指定的目录树中。当程序想要使用fopen()

或file_get_contents()函数打开一个文件时,这个文件的位置将会被检查。当文件在指定的目录树之外时,

程序将拒绝打开该文件,当然本指令并不受打开或关闭安全模式的影响。使

用open_basedir

需要注意的是:多个目录需要以分号(;)分隔;在访问被限制的指定目录时,需要

使用斜线结束路径名,如open_basedir=/www/dvwa/,如果将其设置为open_basedir=/www/dvwa,则/www/dvwa

和/www/dvwaaaaaaaa

都是可以访问的。另外,如果在程序中使用open_basedir,则

将其写为ini_set('open_basedir',"指定目录'),但是不建议使用这种方式。01在register_globals的配置为on

的情况下,传递过来的值会被注册为全局变量,从而可以被直接使用;在

register_globals

的配置为off的情况下,需要通过特定的数组得到它。例如,当register_globals=off

时,

下一个程序应该使用$_GET['username']

来接收传递过来的值;当register_globals=on时,下一个程序可以直接使用$username来接收传递过来的值。然而,register_globals从PHP

5.3起被弃用,并在PHP5.4

中被移除,因此不推荐使用。当register_globals=off时,检查$_SESSION['username']是否被赋值,如果已经被赋值,则会输出username;如果尚未被赋值,则会输出false。测试代码如下:当register_globals=on

时,$_SESSION['username']可能会在其他HTTP请求中被赋值,结果如图1-13所示。01

项目知识准备→c①localhost/safe.php?SESSION[username]=adminnamo',false←→c①localhost/safe.php?_SESSION[username]=adminarname'1;username:admin

PHP

核心配置6.全局变量注册开关"usename:"S_SESSION[username].'false'l/register_globals=0fifisset(S_SESSION[usemame'T){→

…echo}else{→

…echo163任务1

部署Windows平台的工作环境02

任务1

部署Windows平台的工作环境

任务目标能够在Windows

平台上部署PHP集成环境熟悉《中华人民共和国网络安全法》中关于安全漏洞的条款。通过phpStudy

官网下载对应的压缩文件,并在下载成

功后将该文件解压缩,之后在弹出的对话框中选择安装

路径,如图1-14所示,单击“是”按钮,进行安装。在

单击“是”按钮之后,即可将压缩包内的文件解压缩到

指定目录中,如图1-15所示。

任务实施phpStudy2018自动解压包请选择路径(不能包含中文和空格)C:|phpstudy□是

否1.安装运行安装路径不能包含中文和空格!翼38%正在解压中...38%02

任务1

部署Windows平台的工作环境>此电脑>本地磁盘(C)>phpStudy>PHPTutorial>名称ApachebackupIISI

MySQLⅢNginxPHPSQL-FrontI

tmplI

toolswww修改日期2019/11/2819:142019/11/2819:142019/11/2819:142019/11/2819:142019/11/2819:142019/11/2819:142019/11/2819:142019/11/2819:142019/11/2819:152019/11/2819:14∨已类型文件夹文件夹文件夹文件夹文件夹文件夹文件夹文件夹文件夹文件夹其中,主要内容如下。·

HTTP服务器:Apache/Nginx/IIS。·

:MySQL。·

脚本语言:PHP。·

根目录:WWW。·

数据库管理工具:

phpMyAdmin

(在根目录下)。

任务实施在项目安装服务目录PHPTutorial中,可以看到对应服务,如图1-16所示。2.

目录结构02

任务1

部署Windows平台的工作环境

任务实施主界面如图1-17所示,对Apache

的运行状态而言,绿灯表示正常,红灯表

示不正常。“运行模式”可以被设置为“系统服务”,以后台进程的方式常

驻内存;也可以被设置为“非服务模式”,随开随用。选择“切换版本”选项,即可在弹出的菜单中选择对应的版本及服务,如图

1-18所示。3.主界面4.切换版本02

任务1

部署Windows平台的工作环境

任务实施单击“其他选项菜单”按钮,在弹出的菜单中选择“phpStudy

设置”→“端口常规设置”命令,打开“端口常规设置”对话框,如图1-19所示。在该对话框中,

可以修改Apache的“httpd

端口”“网站目录”、PHP的“全局全量”“脚本运行最长时间”及MySQL

的“端口”“最大连接数”等内容。单击“其他选项菜单”按钮,在弹出的菜单中选择“打开host”命令,如图1-20

所示,即可在弹出的对话框中修改hosts域名解析文件。6

.

修改hosts域名解析文件5.站点配置02

任务1

部署Windows平台的工作环境

任务实施单击“其他选项菜单”按钮,在弹出的菜单中选择“MySQL工具”命令,如图1-22所示,即可设置或修改密码,也可以在忘记密码的情况下重置密码,默认的用

户名/密码是root。单击“其他选项菜单”按钮,在弹出的菜单中选择“PHP扩展及设置”命令,如图1-21所示,即可开启/关闭PHP扩展等。7.PHP

扩展设置8.MySQL

管理02

任务1

部署Windows平台的工作环境

任务实施单击“其他选项菜单”按钮,在弹出的菜单中选择“phpMyAdmin”命令,即可弹出如图1-23所示的登录

界面,这时可以直接访问http://localhost/phpMyAdmin/,

默认的用户名/密码是root。9.phpMyAdmin下面在Linux

平台上进行环境部署,目前,phpStudy

可以一键安装Web

环境。CentOS的一键安装命令如下、

Ubuntu/Deepin/Debian

的一键安装命令如下:yum

install-y

wget&&wget-O

install.sh

https://download***xp.cn/install.sh&&-sh

install.shwget-Oinstall.shhttps://download***/install.sh&&sudobashinstall.sh能够在Linux

平台上部署PHP集成环境理解Linux开放源代码的特点,以及我国信息技术应用创新产业的发展动因。03

任务2

部署Linux平台的工作环境

任务目标

任务实施1.一键安装脚本任务2

部署Linux平台的工作环境

任务实施2.安装部署本书的Linux平台的工作环境是在Ubuntu

16.04.3中进行安装和部署的,输入一键安装脚本,如图1-24所示。在安装结束后,结果如图1-25所示,可以看到相关运行状态信息。docker

daemon

runningcentos_envcontainer

runningwebpanel

runningphpstudy

running请用浏览器访问面板

107

--D系统初始账号:admin系统初始密码:Jemvll6GsU如果使用的是云服务器,请至安全组开放9080端口如果使用ftp,请开放21以及30000-30050端口如果在虚拟机安装,请将ip换成虚拟机内网ip===========================================0303

任务2

部署Linux平台的工作环境操

作说

·

明操

作说明phpstudy-starte启动phpStudyphpstudy--visiturl查看面板登录信息↵phpstudy--astop停止phpStudyphpstudy-repaire修复主控Web面板↵phpstudy-restarte笙启phpStudyphpstudy-instinfo查看首次安装信息↵phpstudy-status查询phpStudy状态phpstudy--uninstalle卸载phpStudyphpstudy--initpwdnewpwd修改登录密码↵phpstudy-h查看帮助信息↵登录浏览器访问面板,输入系统提供的初始账号和密码,主界面

如图1-26所示。

任务实施3.相关操作4.访问面板03

任务2

部署Linux平台的工作环境□

口□

四四□日a

口选择左侧导航栏中的“软件管理”标签,进入软件管理界面,可以看到PHP版本、MySQL

版本、Memcached

、Redis

等相关系统环境信息,单击“安装”按钮,即可部署对应的服务。在部署成功后,即可在对应的“状态”列中设置“已停止”或“运行中”状态,如图1-27所示。

任务实施5.软件管理选择左侧导航栏中的“数据库”标签,进入数据库列表界面,单

击“添加数据库”按钮,弹出“添加数据库”对话框,如图1-28

所示。在该对话框中,先输入数据库名并选择编码格式,再输入

用户名和密码并设置访问权限,最后单击“保存”按钮,即可创

建数据库。单

击“root密码”按钮,即可在弹出的对话框中修改root密码,

如图1-29所示。03

任务2

部署Linux平台的工作环境

任务实施6.数据库任务2

部署Linux平台的工作环境

任务实施7.部署服务选择左侧导航栏中的“文件”标签,进入文件管理界面,可以进行“文件上传”“新建文件”

“新建目录”

“返回用户根目录”等操作,在右侧“操作”列可以进行“重命名”“权限”“压缩”“删除”等操作,其中根目录在“/www/admin/localhost_80/”

中,如图1-30所示。M工,

E

K

,

g

.□

si*GR

:va

音排起苏

鼎为01amm口田Bg大a

大wsne031在Windows

平台上部署PHP

集成环境。2在Linux平台上部署PHP集成环境。04

项目复盘项目知识准备

代码编辑工具在代码审计过程中需要用到很多辅助工具,也就是说,无论是编写程序还是进行代码审计,都需要一款合适的代码编辑器。

代码编辑器如同学生的笔、医生的手术刀一样,是程序开发人员在工作中的必备工具。可以说,好用的

开发工具能够极大地提高工作效率,因此,需要找到一款适合自己的代码编辑器,使开发效率更高,所

以本项目将重点介绍这些辅助工具的使用。1.S

ublime

Text

3Sublime

Text

3是一款具有代码高亮显示、语法提示、自动完成且反应快速等特点的编辑器软件,支持插件扩展机制。相比于较难上手的Vim

,Sublime

Text

3编辑器的操作无疑简单很多,如图2-1所示。01项目知识准备

代码编辑工具2.PhpStormPhpStorm

是JetBrains公司开发的一款商业化PHP

集成开发工具,如图2-2所示。PhpStorm

可以随时帮助用户对其编写的代码进行调整、运行单元测试或者提供可视化debug

功能。可以说,PhpStorm

是轻量级且便捷的PHPIDE,旨在提高用户编写代码的效率。

PhpStorm

可以深刻理解用

户编写的代码,提供智能代码补全、快速导航及即时错误检查等功能,全面提升了用户的PHP代码编写效率,

并极大地节省了用户的PHP代码编写时间。01项目知识准备

代码审计工具1.Seay源代码审计系统Seay

源代码审计系统是一款基于C#

语言开发的代码审计工具,主要针对PHP

代码进行分析,具有自动代码审

计功能,简化了人工审计的烦琐流程,使得代码审计更加智能、简洁。它支持一键审计、代码调试、函数定位、

插件扩展、规则配置、代码高亮、编码转换、数据库管理和监控等19项强大功能,主界面如图2-3所示。在使

用Seay

源代码审计系统时,先单击菜单栏中的“新建项目”按钮,选择需要审计的源代码文件,然后单击菜单栏中的“自动审计”按钮,进入“自动审计”界面,最后单击“开始”按钮,系统就会开始扫描并分析代码

中的安全问题。代码中可能出现的漏洞详情如图2-4所示。Seay源代码审计系统一键审计代码调试函数定位插件扩展规则配置代码高亮审计报告函数查询正则调试编码转换数据提交临时记录文件编辑英汉互译黑盒审计全局搜索在线升级编辑器配置数据库管理和监控官

.SafeKey团队出品01项目知识准备

代码审计工具2.

RIPSRIPS

是一款基于PHP

开发的源代码分析工具,如图2-11所示。它使用了静态分析技术,能够自动扫描PHP

源代码潜在的安全漏洞。渗透测试人员可以直接审阅分析结果,而不用审阅整个程序代码。它实现了在函数定义

和调用之间进行灵活跳转的功能,支持多种样式的代码高亮,还可以详细地列出每个漏洞的描述、举例、PoC、

补丁和安全函数。田mum

+io

LmJrur

l里三

,

二…

:3

3

g

m

h

e

n

x

r…

/0101

项目知识准备

代码审计工具2.RIPS新速喷日

深第地明日

诚自助*计金焊度案*计酒啡·代码璃就的政章网山数描理

正端码

回记量

系配路·

出关于系施·文件地摘码:

P

-

8调写:新译:

m出自间面制加页R营1颗流地D

am路i*n10113oo19可

隔北

a

rc

空B

引中展网得

:SQL音in中结人量无单引保护,司能存直99L主人院间:[1eeLsfo

sC癫述:在在文件上悔,注意上佛典出垦否可这里所it:为了档高甲计效率,建以如D3用如这量:原里用1.5这样描字姓里a

hu--eaerer件e01

项目知识准备此时可以看到,界面中多出了一个

“windows”视窗,如图2-16所示,其中包括4个按钮,具体作用如下。(1)files:

显示扫描和已包含的文件。(2)user

input:显示传入的参数,也可以在此回溯代码,寻找可控的变量。(3)stats:

显示可视化扫描结果。(4)functions:

显示源代码中所有定义的方法,在此可以快速定位到方法所在的位置。a");if

(1in_array($_GBT[patb/file:UsetsayDsktopDVWARIPS.verbosiy

levetcode

shje:Lusertarnted

onyayti

代码审计工具2.RIPS

代码审计工具3.Fortify

SCAFortify

SCA是HP

的一款商业化产品,也是一款静态的、白盒的软件源代码安全测试工具,如图2-17所示。它通过内置的五大主要分析引擎——数据流、语义、结构、控制流、配置流,对应用软件的源代码进行静态分析,并在分析过程中与其特有的软件安全漏洞规则集进行全面的匹配、查找,从而将源代码中存在的安全漏洞扫描

出来,整理、生成完整的报告。扫描结果中不仅包括详细的安全漏洞信息,还包括相关的安全知识说明,以及相应的修复建议。FortifySCA支持常见的操作系统,如Windows、Solaris、RedHatLinux、OSX、HP-UX、IBM

AIX;提供常见开发平台的IDE插件,如Visual

Studio、Eclipse、RAD、RSA;可以检测600多种源代码安全漏洞。对于CWE组织发布的漏洞信息,FortifySCA都会及时跟进并更新漏洞库。FortifySCA目前可以支持多达21种常见开发语言的检测,可以扫描和分析有安全漏洞和安全隐患的源代码。Fortify

SCA支持C/C++/C#、Java、VB,数据库开发语言Transact-SQL、PL/SQL,大型项目和管理平台开发语言COBOL、ColdFusion、ABAP、Flex,脚本语言JSP、JavaScript/AJAX、VBScript、Python,网络和

网页开发语言ASP.NET、VB.NET、ASP、PHP、HTML,

以及移动应用开发语言Android、Objective-C等。ScanJavaProject表示扫描Java项目

,Advanced

Scan表示高级扫描项目。在进行高级扫描项目分析时(见图2-18),会出现一些参数,常见的参数及其含义如表2-1所示。01

项目知识准备01

项目知识准备数含

义b一个ba的D,通章以项目名称加丰扫描时闻来组成bD-Xmx指定这个SCA的JVM使用的最大内存数dlkan青际之前转换的NST,一般与b一起使用,且在项目转换之解使用show-fle在宾成铸换之后,愿示这次铸挑的文件,

一毅用于检查铸换是舌成功完整xcaae指定转换所事的文件类型或文件夹指定项目所体秩的clapah,主要用于Jaa项目指家项目所用的DK蜃左mcodng指定转换时昌到事英文字符时的院码格式,如UT8、BKTeuclen指定与构建工具集成,如Mkefile、An等ne指定转描不窑要编译,用于CC+项目、细译器不支持时。指定转换所用的编译著

·主费在扫描CC+顶目时使用ibdin指定NET项目所体赖的库文件的端径nenion指定VS的断本,

VS52003、V52005、VS2008、VS52010的所本号分别为71、80、90、100pms指定将本次扫的结果盗加到另一个FPR结果中,一般用于将大项目分为多个部分扫痴,生成

一个FPR的情况bi?指定CC+项日编译后的0eme文件指宏生成扫疆结果文件的名称和当径f

l

m

二指定一个过市文件,用于屏颗一整不想扫福出来的问题,加误报ac描定本次操作为SCA的扫描分析阶段thom

suili显示本机器上共有多少个builsIDhowbuld

te显示每个文件在转换时所依赖的文件abowbuld-waming显示在矫换过程或扫痴过程中的mzmig信息iable

sorcereneime美闭在扫蜜过程中对源代码的加赖LoohhondARo2at

代码审计工具3.FortifySCAb

110DWMOlsm

AU

wo**c#*jonL

2)(Cu

url

aundtu

aie

isdt

r(P

Po

Eb

-nm00

-B/三peyatioR鸟

1n…e-t0HPESecurityFortify

Audit

Workbench0■nD一GsC

:Pewfee

p1/0/1RTFYkraSmc

e在进行SQL执行监控时,可以使用Seay

源代码审计系统中自带的监控插件。在Seay源代码审计系统2.0之后的版本中,增加了MySQL

执行监控,可以监控自定义断点后执行的所有SQL语句,方便调试SQL注

入,如图2-22所示。另外,也可以通过互联网寻找一些Python

脚本,

目前互联网中有一些小脚本。MySQL

执行监控的主要原理是开启MySQL

的general_log表来记录MySQL

的历史执行语句。它有两种

记录方式:默认的记录方式是记录到文件中;另一种记录方式是直接

记录到MySQL的general_log

表中。在开启MySQL的general_log

后,会在本地生成log文件,可以根据本地生成的正则匹配log文件来筛选出执行的SQL

语句。01

项目知识准备p中

sC

1

7

-

5

m

W:1L

□8E89

CLu

mPE

emmd*d

:

mw

8

9

*

:执nt主和

辅助验证工具1.SQL

执行监控工具Burp

Suite是一款使用Java编写的,用于Web应用安全审计与扫描的工

具。它集成了诸多实用的小工具以完成HTTP

请求的转发、修改、扫描等

操作,同时这些小工具之间还可以互相协作,在Burp

Suite这个框架下

进行各种强大的、可定制的攻击/扫描方案。安全人员可以使用它进行半自动的网络安全审计,开发人员也可以使用它的扫描工具进行网站压力

测试与攻击测试,以检测Web

应用的安全问题。BurpSuite主界面如图2-23所示。Burp

Suite主要包括Dashboard、Proxy、Intruder、Repeater、Sequencer、Decoder、Comparer、Extender和Projectoptions

模块等。01

项目知识准备

辅助验证工具2.BurpSuiteVvrthg②MagPnymese71⑩⑥①7⑨◎⑧③8D0…mae-nseam

dTaa7·1oumnec

2ttin①

femwCemme代理功能是最常用的功能,这是因为其他几个常用功能都基于该功能捕获的数据包。该功能的使用非常简单,

在打开Burp

Suite后,在界面上方选择“Proxy”

选项卡即可打开代理功能界面。如果想要使用Burp

Suite,

则需要设置代理服务器。下面,使用火狐浏览器进行测试。01

项目知识准备

辅助验证工具2.BurpSuiteArcepti

text/htmL,pplcat10n/xhtml+ml,appltea10m/m1;0,5,tmoge/webp,"/";q=0.06AeeapE-Eneoding

:gip,detiaEe50C85生nIntruder模块是一个高度可配置的、可用于自动化攻击的模块。用户可以使用Intruder模块执行很多任务,

包括枚举标识符、获取有用的数据和模糊测试。攻击类型取决于应用程序的情况,可能包括SQL注入、跨站点脚本、路径遍历、暴力攻击认证系统、枚举、数据挖掘、并发攻击、应用程序的拒绝服务攻击等。Intruder模块主要由以下4个模块组成。(1)Target(2)Positions(3)Payloads(4)Options用户可以在发动攻击之前,在Intruder模块的用户界面上编辑这些选项,也可以在进行攻击时对正在运行的

窗口修改大部分设置。使用较多的是暴力破解登录用户密码,因为它具有非常强大的兼容性,可以支持各种数据格式爆破。下面来看看Intruder模块到底有多强大。这里在DVWA中演示使用它进行爆破的过程。01

项目知识准备

辅助验证工具2.BurpSuiteHoot

项目知识准备BopPauiethouduRareWadowHoDPuo

Pb

0②

u

nl

n

esar

moe

payond

sns

The

rure

d

eyloadsas

ope

tn

atak

y

edia

thePosions

th

Vaious

payoseypes

ae

Sat

amadalbhPy/odPaylodasc

pyedan.ndeschdatype

Smpmlapyod

yecan

te

coonzedindfut

wytPagbad

cut信Raqeu

cnut

oPayloasdopions

Ssmpia

liugtapoadtye

ltsyou

codgahku

d

nngy

tuanned

a

pykaanScayYoeP

辅助验证工具Bd3knekDmDau.mPanFau

SdyfRae

PafaT1232554321解

0

0

0ZN678FapuntFanem

P|1IMLes

intr

taro2.BurpSuiteiane/hTS_

4-3)7

owrenscterze

o

010rrme**p⑦Pglapoedan,…any*eezeacevalmwromucK-otm--erdrLeunme5558559855159U

401

项目知识准备

辅助验证工具3.正则调试工具正则表达式使用自定义的特定字符组合在正则分析引擎中执行字符

匹配的操作。正则表达式非常灵活,可以应用于许多不同的场景中,

如验证注册的用户名是否正确。同时,在搜索文件内容时,相当多

的WAF(Web

应用防火墙)的规则也基于正则表达式。但是,如果

不严谨地编写正则表达式,则经常会出现各种错误,如绕过防火墙等。因此,需要熟悉正则表达式的用法,熟悉各个符号的含义,这样才能编写出严谨的正则表达式,才能在代码审计中发现正则表达式的问题所在。下面介绍一个常用的测试和分析正则表达式的工具——Regester。

测试和分析正则表达式的工具,支持实时预览,也就是说,用户在输入框中修改正则表达式或者需要匹配的源字符时,调试的结果会实时显示在下方的信息栏中,非常直观和方便。8Regesterstd><span\s+class'desc'>(?descT<1+)</span></td>s

</trscode

descspends=de

换行件认外的任室字class="desc">匹配e换行符以外的任章字td</t>tdspan

<ulBurpSuite中有一个Decoder模块,这个Decoder

模块的功能比较简单,可以对字符串进行编码和解码,目前支持URL、HTML、Base64、ASCII、Hex、Octal、Binary、Gzip等编码格式。它的用法也非常简单,只需要在输入域中输入要转换的字符,之后选择转换的编码格式即可,如图2-33所示。01

项目知识准备

辅助验证工具4.编码与加/解密工具02

任务1使用Seay审计DVWA

任务目标能够使用Seay

软件进行初步的代码审计了解国家信息安全漏洞库(CNNVD)中安全漏洞的分类和发展态势。

任务实施1.DVWA

简介DVWA(Damn

Vulnerable

Web

Application)是一个用来进行安全脆弱性鉴定的PHP/MySQLWeb应用,旨在为安全管理人员测试自己的专业技能和工具提供合法的环境,帮助Web

开发者更好地理解Web

应用安全防范的过程。DVWA的漏洞示例分为4个安全等级:

Low、Medium、High、Impossible。02任务1使用Seay审计DVWAconfigdosdwaextemalhackable1

vunerabities□

qgitignore□htaccess□about

php□CHANGELOGmd

COPYING.nt圆faviconico□

ids

logphp□

indexphp□

instrutionsphpD

loginphp□

logout

phpphpiniphpinfophp□

READMEmd

robotsttD

securityphp□setuphp2019/5/619:152019/5/619:52019/5/619:152019/5/619:152019/5/619:152019/5/619:15

2017/11/54.012017/1/54:01201711/54:012017/1/54:012017/11/54:01

20171/54012017/11/54:012017/1/54012017/11/54:012017/11/54:012017/11/54:012017/11/54:012017/11/54:012017/11/54:012017/11/54:012017/1/54:012017/11/54.01文件夹文件夹文件夹文件夹文件夹文件夹GITIGNORE文件HTACCESS文件PHP文件MD文件文本文档标PHP文件PHP文件PHP文件PHP文件PHP文件配置设置PHP文件MD文件文本文档PHP文件PHP文件11KB4KB8KB33

KB2KB1KB5KB2

KB5KB1KB1KB1KB9KB1.KB5KB3KBDamnVulnerableWebApp(DVWA)isa

PHP/MySQLwebapplicationthatisdamvulnerable.Itsmaingoalsaretobean

aidfor

security

professionals

to

test

thelr

sl在DVWA官网上,下载最新版本DVWA,如图2-34所示。单击“DOWNLOAD”按钮,即开始下载。

下载完成的文件是一个压缩包,将其解压缩后把DVWA安装到phpStudy的根目录下,如图2-35所示。

任务实施2.环境搭建andtoolsinalegalenvironment,helpweb

developers

better

understandtheprocessesofsecuringwebapplicationsandaidteachers/studentstoteach/learnapplicationsecurityina

class

room

environment.02

任务1使用Seay审计DVWA

任务实施2.环境搭建之后,打开本地网址,界面中会提示配置文件错误,如图2-36所示。需要注意的是,将config文件夹下的

config.inc.php.dist

文件修改为config.inc.php,即可进入安装界面,如图2-37所示。←→c①不安全72/DVWA/

☆DVWASystemoror-contgflenotfound.Copy

contg/confginc.pdst

to

contg/confginc.php

and

contgure

to

you

envronment.能

回oo

o0

ncredcDatabase

has

beencreated.'users'table

was

created.Data

inserted

into'users'table.'guestbook'tablewascreated.Data

inserted

into'guestbook'table.Backupfile/config/config.inc.php.bakautomaticallycreatedSetup

successful!Please

login

.任务1使用Seay审计DVWA

任务实施后,就会跳转到登录界面,如图2-40所示。

DVWA

默认的账号(Username)

是admin,密

码(Password)是

password。在/config/config.inc.php文件中修改数据库信息,将配置文件中的数据库密码db_password

改为root后

如图2-38所示,之后单击“Create/Reset

Database”

按钮,即可安装成功,如图2-39所示。在软件安装成功2.环境搭建02任务1使用Seay审计DVWA

任务实施3.使用工具审计打开Seay

源代码审计系统,单击“新建项目”按钮,选择想要审计的源代码程序,单击“开始”按钮,程序就会自动根据规则对源代码中可能存在的安全隐患进行模糊审计,如图2-41所示。在漏洞扫描完成后,可以发现,

程序在下面提示“扫描完成,发现188个可疑漏洞,花费时间56.41秒”,并且在漏洞描述的第170行可能存在

SQL注入漏洞,如图2-42所示。主用使MAm

h二

a7sui/hdiiila”收ai55

期sl

(n02最国日扫a言时高时主出间用相出其重国图重画每15双击“漏洞描述”列中某项漏洞后面的“漏洞详细”列的相应内容,即可定位到出现可疑漏洞的代码,代码如

:if(isset(S_POST['Submit'])){↵→Sid-S_POST[id];→Sid-mysqli_real_escape_string(SGLOBALS["_mysqli_ston"1.Sid);↵→Squery-"SELECTfirst_name,last_nameFROMusersWHEREuser_id-Sid;";→Sresult-mysqli_query(SGLOBALS["

mysqli_ston"].Squery)ordie('cpre'mysqli_error(SGLOBALS["

mysqli_ston"D.'</pre>');→//Get

results→while(Srow-mysqli_fetch_assoc(Sresult)){→//Displayvalues→Sfirst-Srow["first_name"];↵→Slast-Srow["last_name"];→Shtml.-"<pre>ID:{Sid}<br>Firstname:{Sfirst}<br/>Surname:{Slast}<pre>";//Thisisused

later

on

inthe

index.php

page//Settingitheresowecanclosethedatabaseconnectionin

here

like

in

the

rest

ofthe

source

scriptsSquery-"SELECTCOUNT(")FROMusers;";(is_object(SGLOBALS["

mysqli_ston"D)?mysqli_error(SGLOBALS[”_mysqli_ston”D(S__mysqli_res=mysqli_connect_erorO)?$__mysqli_res:false).'cpre');Snumber_of_rows=mysqli_fetch_row(Sresult)[0]:mysqli_close(SGLOBALS["

mysqli_ston"D;↵02

任务1使用Seay审计DVWA

任务实施3.使用工具审计02

任务1使用Seay审计DVWASeay源代码审计系统漏洞报告用阴述日TE二取文件话onsrocow-吨tonDWALMEaPAODEToOHooTteo7H*omso

EboasppouodboasungescaknepihpL.5ENERDITPDXJFOMNAROEDJom;e0B/Osrepp-om

m

mba0B/OSCadngFactnypagoce

5pmpd0

eOSCadiuornzsotspoalprosos/OSCacigrpudasoeospomwy,可能办在住章文件读取

除棉故写入导湖用omeprodo

OBCadmoFamatwnk

smounytaouk该取文件路数中存在变量,可磁年在任意文并该章月comesyreobosGOSCadinoworeadruc

oontw读取文件函数中存在安量,可睦存在任意文并读章画

同ypodb68/OBrmosoeiemreg

obpsyorek12获原P地址方武可伪法,HTTP_EFERER可伪产。第见引1发SL注入等跟用camaspodb6G/OSLoDmeatebERMEOITPeXFORMAOEDFon参数$id经过处理之后,将被传入SQL

语句中执行。因此,只需要控制用户输入的内容,即可突破转义限制。

,Seay

源代码审计系统提供生成报告的功能,在“自动审计”界面中,单击“生成报告”按钮,就会生

成一份报告信息以供用户查看,如图2-43所示。在上述代码中可以看到,通过POST方式传递过来的参数$id

会经过mysqli_real_escape_string()

函数的处理。

该函数主要用于对SQL

语句中使用的字符串中的特殊字符进行转义。可被转义字符如表2-2所示。

任务实施x00n²r↵le4"↵xla3.使用工具审计能够使用RIPS软件进行初步的代码审计了解国家信息安全漏洞共享平台(CNVD)

中安全漏洞的分类和发展态势。RIPS.在通过RIPS官网下载最新版本的RIPS后,将压缩包解压缩到网站根目录

下即可运行它,如图2-44所示。可以使用火狐浏览器访问RIPS(目

前RIPS声称只支持火狐浏览器)。03

任务2使用RIPS

审计DVWA

任务目标

任务实施1.RIPS

环境的本地搭建03任务2使用RIPS

审计DVWA

任务实施2.使用工具审计在程序启动后,可以看到RIPS主界面,其中包括以下选项。path/file、subdirs、verbositylevel、vulntype、scan、codestyle、/regex/、searchRIPS

.

user

input_GET[page]Hintst在第8行代码中可以看到,通过GET

方式传入的参数name

会进入str_replace()函数,在经过这个函数处理后,程序会将处理后的内

容显示到页面上,从而导致跨站脚本攻击。下面来介绍一下str_replace($search,$replace,$subject)

函数该函数返回一个字符串或数组,该字符串或数组是将subject中全部的$search替换为$replace

之后的结果。其中,$search是要查

找的值;$replace

是将查找到的值进行替换的内容;$subject是执行替换的字符串或数组。也就是说,这个函数会查找传入的参数name

中是否存在<script>,如果存在,就会将它替换成NULL

(空值)。因此,在进行最终验。03

任务2使用RIPS

审计DVWA

任务实施证时,只要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论