1.打开软件,点击New Scanhtml
2.在website url中输入被扫描的网址,点击nextjava
3.在scanning profile中选择测试的漏洞类型,默认选择default(默认)web
在scan setting中选择爬行设置,默认选择default(默认),点nextsql
4.此页面也是选择默认,点击next数据库
5.Login页面,建议选择第一项,且进行登陆,只有登陆后扫描测试才会更深刻不然不少登陆状况不会被扫描到,保存登陆脚本后点击next浏览器
6.finish页面直接点击finish便可安全
7.点击finish后直接进入漏洞扫描过程服务器
7.1显示三个信息。session
Taget Information:包含目标站点 工具
1、是否应答、2、WebServer的banner、3、操做系统、4、Web容器、5、程序语言
Statistics:对扫描的各类信息统计,包含
1、扫描的总时间、2、HTTP请求数量、3、平均扫描时间、4、扫描重复次数
Progress:扫描进度信息的提示,包含
1、是否扫描完成,100.00%表示已完成,2、端口扫描是否完成 3、蜘蛛爬行是否完成(文件数量、目录数量、变量数量)、4、脚本信息 5、内部模块
8.扫描测试完成后,数据分析以下
9.保存测试结果及导出测试报告
10.漏洞分析及验证(工具也会出错,防止awvs误报)
10.1 sql注入漏洞分析验证
(1)火狐浏览器安装插件hackbar quantum,安装插件后重启浏览器按F9启动插件
(2)sql注入分析,以下图(漏洞描述及攻击影响)
(3)关注项
view http headers
view html response
10.2 验证漏洞真实性
1、URL安全测试
(1)适用范围: URL中含有参数,也就是经过GET方式传递的HTTP请求
(2)什么叫GET方式?
HTTP 定义了与服务器交互的不一样方法,最基本的方法是 GET 和 POST。
GET方式在客户端经过URL提交数据,数据在URL中能够看到,例如在平常中订购服务:
http://www.cnblogs.com/javame/index.htm?servId=2
POST方式,数据放置在HTML HEADER内提交,数据在URL中看不到
GET只能传输比较少的数据,安全性较低,POST传输数据较多,安全性也比GET高
(3)测试关注点:
1) URL 参数检查:
A: 对URL中参数信息检查是否正确
如:URL中的订单号、金额容许显示出来的话,须要验证其是否正确
B: 对于一些重要的参数信息,不该该在URL中显示出来
如:用户登录时登陆名、密码是否被显示出来了 ,
2) URL参数值篡改
修改URL中的数据,看程序是否能识别:
如:对于如下URL,修改其中planId,看是程序是否能够识别:
http://www.cnblogs.com/javame/index.htm?planId=878
又如:对于URL中包含金额参数的,修改金额看是否可以提交成功(可能致使用户把2元金额改为1元金额能提交),还有修改订单号等重要信息看是否会报错
3) URL中参数修改进行XSS注入:
什么是XSS?
XSS的全称是Cross Site Script(跨站点脚本)
XSS的原理很简单,即进行脚本注入,URL执行时即把此脚本进行了执行,通常都是JavaScript脚本。
如“http://www.cnblogs.com/javame/index.asp?IDClass=2&ClassName=abc”
改为“http://www.cnblogs.com/javame/index.asp?IDClass=2&ClassName=abc<script>alert("hello")</script>”
看看有没弹出对话框显示hello,有的话就有跨站漏洞。
在URL中进行XSS注入,也就是把URL中的参数改为JS脚本。
4) URL参数中进行SQL 注入
什么是SQL注入?
SQL注入全称是SQL Injection ,当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击,如查询、插入数据时。
测试方法: URL中写入SQL注入语句,看是否被执行
如:www.cnblogs.com/javame这个网站中,选择登录
设置用户名为 admin ' or '1'='1 密码为任意数字 ,点击登陆就能够登录。
通常状况下要进行SQL注入攻击,须要对数据库类型、表名、判断逻辑、查询语句等比较清楚才可以写出有效的SQL注入语句。
2、表单提交安全测试
适用范围:有表单提交的地方、有HTTP请求的地方(包括GET、POST请求)
测试关注点:
1) 表单中注入XSS脚本
什么是XSS?这已在上一节中说明。URL中须要检测XSS注入,表单中更须要验证
测试方法:即在表单填写框中直接注入JS脚本
如在表单中输入XSS脚本,程序是不该该让脚本执行的
2) 表单中注入SQL 脚本
与URL中参数进行SQL注入相似,就是在表单中写入SQL注入脚本提交看是否会有问题
4、Session测试
(1)Session是客户端与服务器端创建的会话,老是放在服务器上的,服务器会为每次会话创建一个sessionId,每一个客户会跟一个sessionID对应。
并非关闭浏览器就结束了本次会话,一般是用户执行“退出”操做或者会话超时时才会结束。
(2)测试关注点:
1)Session互窜
Session互窜便是用户A的操做被用户B执行了。
验证Session互窜,其原理仍是基于权限控制,如某笔订单只能是A进行操做,或者只能是A才能看到的页面,可是B的session窜进来却可以得到A的订单详情等。
Session互窜方法:
多TAB浏览器,在两个TAB页中都保留的是用户A的session记录,而后在其中一个TAB页执行退出操做,登录用户B,此时两个TAB页都是B的session,而后在另外一个A的页面执行操做,查看是否能成功。预期结果:有权限控制的操做,B不能执行A页面的操做,应该报错,没有权限控制的操做,B执行了A页面操做后,数据记录是B的而不是A的。
2)Session超时
基于Session原理,须要验证系统session是否有超时机制,还须要验证session超时后功能是否还能继续走下去。
测试方法:
1、打开一个页面,等着10分钟session超时时间到了,而后对页面进行操做,查看效果。
2、多TAB浏览器,在两个TAB页中都保留的是用户A的session记录,而后在其中一个TAB页执行退出操做,立刻在另一个页面进行要验证的操做,查看是能继续到下一步仍是到登陆页面。