安全测试
十大渗透测试演练系统
DVWA (Dam Vulnerable Web Application)DVWA是用PHP+Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序。包含了SQL注入、XSS、盲注等常见的一些安全漏洞。链接地址:http://www.dvwa.co.uk
mutillidaemutillidae是一个免费,开源的Web应用程序,提供专门被允许的安全测试和入侵的Web应用程序。它是由Adrian “Irongeek” Crenshaw和Jeremy “webpwnized” Druin.开发的一款自由和开放源码的Web应用程序。其中包含了丰富的渗透测试项目,如SQL注入、跨站脚本、clickjacking、本地文件包含、远程代码执行等.链接地址:http://sourceforge.net/projects/mutillidae
SQLolSQLol是一个可配置得SQL注入测试平台,它包含了一系列的挑战任务,让你在挑战中测试和学习SQL注入语句。此程序在Austin黑客会议上由Spider Labs发布。链接地址:https://github.com/SpiderLabs/SQLol
hackxorhackxor是由albino开发的一个online黑客游戏,亦可以下载安装完整版进行部署,包括常见的WEB漏洞演练。包含常见的漏洞XSS、CSRF、SQL注入、RCE等。 链接地址:http://sourceforge.net/projects/hackxor
BodgeItBodgeIt是一个Java编写的脆弱性WEB程序。他包含了XSS、SQL注入、调试代码、CSRF、不安全的对象应用以及程序逻辑上面的一些问题。 链接地址:http://code.google.com/p/bodgeit
Exploit KB / exploit.co.il该程序包含了各种存在漏洞的WEB应用,可以测试各种SQL注入漏洞。此应用程序还包含在BT5里面。
链接地址:http://exploit.co.il/projects/vuln-web-app
WackoPickoWackoPicko是由Adam Doupé.发布的一个脆弱的Web应用程序,用于测试Web应用程序漏洞扫描工具。它包含了命令行注射、sessionid问题、文件包含、参数篡改、sql注入、xss、flash form反射性xss、弱口令扫描等。 链接地址:https://github.com/adamdoupe/WackoPicko
WebGoatWebGoat是由著名的OWASP负责维护的一个漏洞百出的J2EE Web应用程序,这些漏洞并非程序中的bug,而是故意设计用来讲授Web应用程序安全课程的。这个应用程序提供了一个逼真的教学环境,为用户完成课程提供了有关的线索。 链接地址:http://code.google.com/p/webgoat
OWASP HackademicOWASP Hackademic 是由OWASP开发的一个项目,你可以用它来测试各种攻击手法,目前包含了10个有问题的WEB应用程序。链接地址:https://code.google.com/p/owasp-hackademic-challenges
XSSeducationXSSeducation是由AJ00200开发的一套专门测试跨站的程序。里面包含了各种场景的测试。
链接地址: http://wiki.aj00200.org/wiki/XSSeducation
搭建安全测试环境(DVWA)
DVWA
全名叫Damn Vulnerable Web Application,是一个基于PHP/MYSQL的web应用。专门就是为了帮助安全测试人员去学习与测试工具用的。就是搞了一个应用,有各种各样的漏洞,专门让你用来联系安全测试的。简直太适合初学者了有没有。
下载
首先需要搭建PHP/MYSQL的环境,用xampp就好了,我是超链接。
然后下载DVWA的应用包,点我。
因为这个应用充满了各种漏洞,不要在本机上直接安装,否则你的电脑可能被黑。用虚拟机。
安装
- 在虚拟机里,解压xampp并安装,非常简单,装好直接就打开了主面板。
- 解压dvwa,改名为dvwa并放在:“[xampp安装目录]\htdocs\”目录下
- 修改“[xampp目录]\htdocs\dvwa\config\config.inc.php”里面连接MySQL数据库的密码、端口(xampp默认MySQL用户名密码是root/root,默认端口是3306)
- 启动xampp的Apache和MySQL服务
- 获取虚拟机IP,并通过“http://[虚拟机IP]:80/dvwa”进入dvwa的安装界面
- 点击【Create / Reset Database】创建dvwa数据库。创建成功后会自动跳转到登录页面。
- 默认登录账号密码见上图,是【admin/password】登录。
- 登录后可见到界面如下图所示,左侧列表列出了dvwa所支持的漏洞种类,共10种,【DVWA Security】中可以设置dvwa的漏洞级别,有【Low、Medium、High、Impossible】四个级别。
- 到这里dvwa就已经装好了,可以用它来练习了。
漏洞类型
DVWA一共支持10种漏洞类型,包括:
- Brute Force(暴力破解)
- Command Injection(命令行注入)
- CSRF(跨站请求伪造)
- File Inclusion(文件包含)
- File Upload(文件上传)
- Insecure CAPTCHA(不安全的验证码)
- SQL Injection(SQL注入)
- SQL Injection(Blind)(SQL盲注)
- XSS(Reflected)(反射型跨站脚本)
- XSS(Stored)(存储型跨站脚本)
漏洞级别
DVWA可以设置漏洞的级别,一共有四种:
- Low (这个级别的漏洞没有做任何安全方面的措施)
- Medium (这个级别做了一点简单的安全防护,但是不够严格)
- High (这个级别比Medium要高,做了不错的安全防护,但也还是有漏洞可钻)
- Impossible (这个级别的安全措施就严格多了,基本上你是会被堵死了,这个级别一般可以给开发人员用来对比自己的代码来学习,看看人是怎么防护这种漏洞的)
Burp Suite
一 Burp 是什么
学习一款工具的第一步就是搞清楚它是什么,是做什么的?
Burp 是一款安全领域非常重要的工具(或者说是平台),它用于攻击Web应用程序。
Burp里面包含一些工具,这些工具都基于Burp的一个能处理并显示HTTP消息的框架。
Web应用程序 我们很常见,所有网页所在的服务端都可以说是一个Web应用程序。简要说来它的架构都是浏览器-服务器端形式,浏览器向服务器发送HTTP请求,服务器处理后返回HTTP信息给浏览器。
而Burp就是在中间插了一脚,使其变为了下图这样:
所有的请求与响应都需要通过Burp,这就使我们有机会修改HTTP请求与响应,实现对Web应用的攻击。
二 Burp 的部署
Burp在网上有很多下载地址,分为免费版(下载链接)与专业版,免费版有很多限制,部分功能不可用;专业版在网上也有破解版,大家可自行百度下载。
Burp的部署非常简单,只需要有JAVA环境就可以了。Burp就是一个jar包,配置好JAVA环境后,在cmd里执行
java -jar /your_burp_path/BurpSuite.jar
- 1
就可以启动了。注:your_burp_path是你的jar包所在路径。
Burp默认分配64M内存,在我们进行渗透测试的时候可能不够用,可以为其分配更大的内存,如下:
java -jar -Xmx2048M /your_burp_path/BurpSuite.jar
- 1
建议你建一个bat文件,内容为以上命令,这样每次直接双击bat就可以执行了。
三 Burp 的结构
我将Burp分为两部分,一部分是基础架构,它们为其他高级工具提供基本的功能,包括Target、Proxy以及Options;第二部分是高级工具,包括Spider、Scanner、Intruder、Repeater等更复杂的功能。如图:
其中最基本的一项功能模块即是Proxy 代理模块,正是这个模块让Burp插入到浏览器与服务器之间,使其成为相互沟通的传声筒,更为我们之后的各种扫描、攻击提供了基础。
Burp Suite Proxy与浏览器设置
一 Burp Proxy Listeners
Burp Proxy就是以拦截代理的方式,拦截所有通过代理的流量,通过拦截,我们可以对客户端请求、服务器返回信息进行各种处理。
当Burp启动后,打开“Proxy - Options”标签,可以看到监听器的设置。默认分配的代理地址和端口是127.0.0.1:8080,并且是启动了的,如下图:
二 IE浏览器设置
通过如下步骤完成IE浏览器设置。
- 启动IE浏览器
- 选择“设置 - Internet选项”
- 打开“连接 - 局域网设置”
- 勾选代理服务器并在地址中输入127.0.0.1,端口填写8080,点击“确定”,完成设置
- IE设置完成,访问http://burp,可以看到Burp的欢迎页面。
三 Firefox设置
- 打开“工具 - 选项”
- 在“高级 - 网络 - 连接 - 设置”中勾选“手动配置代理”并填写HTTP代理地址127.0.0.1,端口8080,“确定”保存修改。
- 配置完成,可访问http://burp。当然,你也可以添加管理代理服务器的扩展组件。
四 Chrome设置
- 打开Chrome“设置”
- 在“设置”最下方,点击“显示高级设置”
- 在“网络”标题下,点击“更改代理服务器设置”按钮
- 弹出的“Internet属性”框与IE相同,见IE设置的第3、4步
Chrome用的IE的代理设置,那么可以预见的是只要改了Internet属性中的代理设置,那么IE浏览器与Chrome的请求都会通过这个代理来走;而Firefox不受影响,同样修改了Firefox的代理,那么IE和Chrome都是不会受影响的。
Burp Suite Intruder的4种攻击类型
一 Sniper(狙击手模式)
狙击手模式使用一组payload集合,它一次只使用一个payload位置,假设你标记了两个位置“A”和“B”,payload值为“1”和“2”,那么它攻击会形成以下组合(除原始数据外):
attack NO. | location A | location B |
---|---|---|
1 | 1 | no replace |
2 | 2 | no replace |
3 | no replace | 1 |
4 | no replace | 2 |
二 Battering ram(攻城锤模式)
攻城锤模式与狙击手模式类似的地方是,同样只使用一个payload集合,不同的地方在于每次攻击都是替换所有payload标记位置,而狙击手模式每次只能替换一个payload标记位置。
attack NO. | location A | location B |
---|---|---|
1 | 1 | 1 |
2 | 2 | 2 |
三 Pitchfork(草叉模式)
草叉模式允许使用多组payload组合,在每个标记位置上遍历所有payload组合,假设有两个位置“A”和“B”,payload组合1的值为“1”和“2”,payload组合2的值为“3”和“4”,则攻击模式如下:
attack NO. | location A | location B |
---|---|---|
1 | 1 | 3 |
2 | 2 | 4 |
四 Cluster bomb(集束炸弹模式)
集束炸弹模式跟草叉模式不同的地方在于,集束炸弹模式会对payload组进行笛卡尔积,还是上面的例子,如果用集束炸弹模式进行攻击,则除baseline请求外,会有四次请求:
attack NO. | location A | location B |
---|---|---|
1 | 1 | 3 |
2 | 1 | 4 |
3 | 2 | 3 |
4 | 2 | 4 |
用Burp Suite进行暴力破解
- 启动dvwa,如果不知道dvwa是啥的,请看一起学安全测试——自己搭建安全测试环境(DVWA)。
- 启动Burp Suite,设置Burp的Proxy,同时设置浏览器代理,如果不知道怎么设置,请看一起学安全测试——Burp Suite Proxy与浏览器设置。
- 设置好了代理,打开Burp-Proxy-Intercept,设置状态为【Intercept is on】
- 在dvwa中,设置Security级别为【Low】
- 打开【Brute Force】,输入Username/Password,点击【Login】
- 查看Intercept,将拦截到的请求,右键【Send to Intruder】
- 在Intruder-Position中设置,将自动设置的position【Clear】掉,然后在请求中username和password的地方点击【Add】添加position
- 设置攻击类型为【Cluster bomb】,因为这是要同时对username和password进行爆破,选择字典的笛卡尔积进行最大程度的爆破,关于攻击类型,请看一起学安全测试——Burp Suite Intruder的4种攻击类型。
- 在Intruder-Payloads中设置攻击载荷,分别选择payload set 1/2,并添加username和password的载荷。
- 点击menu中的【Intruder-Start attack】开始攻击。
- 在结果列表中,通过Length排序,选出长度与其他不同的一个,查看Response,可以看到“Welcome to the password protected area admin”的字段,证明这对载荷是正确的,爆破成功。
- 在网页通过刚刚爆破得到的username/password登录,登录成功。