最近工作不是很多,花了2天时间学习appscan扫描工具。第一天了解了下工具的使用和原理,感觉使用起来还是很简单的。准备第二天学习一下各种配置。第二天早上来上班,领导说难点在于分析结果,让我找开发爸爸一起分析下,无奈开发们都很忙,自然不会理会我。只能自己研究了一波。研究了一些比较常见的安全漏洞,自我感觉还蛮OK。于是用公司的一个现成系统进行了测试,得到的结果,emmmmm,完全看不懂,开发们又很忙,看着这些扫描结果头很大啊~~~那不如整理整理这两天所学的理论知识吧。
下载地址见云盘链接:https://pan.baidu.com/s/1gcaIk7mWyCtYcM2gNmWYwQ 密码:rg41
官方文档说明(中文滴)链接:https://pan.baidu.com/s/1CizSWAylEbJ_5xfZDnpvWA 密码:3wkp
Appscan是Web端安全测试工具,它只关心应用层的安全问题,也就是说产品开发好后才可以进入测试,相对来说,测试介入的时间偏晚。
工作原理
对web应用进行安全攻击来检查网站是否存在安全漏洞。攻击对象:每一个页面的每一个参数
确定入口url,通过这个入口url,利用爬虫技术,找到整个网站的所有url链接和页面参数,这时候所有的攻击对象已经确定;对页面参数挨个遍历扫描库中的“测试用例”,实际就是利用工具模拟黑客进行攻击,如实际结果与预期结果一致则判断为存在安全隐患。
真正实践中,"测试"阶段会频繁显示站点内的新链接和更多潜在安全风险。因此,完成"探索"和" 测试"的第一个"阶段"后,AppScan 将自动开始一个新的"阶段",以处理新的信息。
整个过程分为“扫描配置-探索-测试-扫描-结果分析”
工作模式
延伸出3种工作模式:完全扫描、仅探索、仅测试
仅探索:只找出所有的url和参数,暂时不进行测试;了解被测网站的结构及范围
仅测试:对之前探索出的参数执行“测试用例”,不对新发现的页面进行测试
全面扫描:探索+测试
相关配置
- 过滤冗余页面:
Url的地址一致,只是参数的值不一致,这时候就只需要测试一个有代表性的url即可,可以利用正则表达式过滤掉;
因为会进行多轮测试,因此会测试到相同的页面,所以需要设置最大冗余页面
- 扫描策略:
在进行安全测试之前,要清楚的知道自己关注的是什么安全问题,针对性的测试,如果有明确的安全指标或者安全规则范围,那么就选择安全类型即可。例如该系统只关注SQL注入类的安全隐患,可以只选择测试SQL注入类的安全问题。
Appscan扫描影响因素
网站大小(页面个数、参数个数)
扫描策略的选择
扫描配置
相关疑问
在学习的过程中,存在的一些疑问罗列下,最终通过查阅资料解决。
怎么判断是否是一个安全漏洞?
Appscan会有一个扫描规则库,类似于一批“测试用例”,按照测试用例进行攻击,将实际结果与预期结果进行比对,如一致则认为是一个安全漏洞。
安全漏洞的存在
页面中与用户的交互越多,安全隐患越高。
安全漏洞类型
Sql注入
攻击者先学习SQL查询结构,知道结构后利用结构篡改原sql语句,实现免密码登录或者直接绕过登录。
Sql盲注
通过猜测的方式得到数据库名称、表、字段和密码等,攻击力更大
跨域脚本攻击(XSS攻击)
重点在于脚本,就是在写入参数的时候加上一段完整的js代码或者是引用一个js文件,让浏览器去识别并执行它,可以得到cookies等信息。
已解密的登录请求
Appscan识别了不是通过ssl发送的登录请求
SSL安全登录:安全套接字层。一种加密通讯协议,作用是数据加密和身份认证。当选择“SSL安全登录”后登录网站,用户名和密码会首先加密,然后通过SSL连接在 Internet 上传送,没有人能够读取或访问到该连接传送的数据。
解决办法:使用ssl协议登录;还有一种方式是,前端使用md5对传输的数据进行加密。
不充分账号封锁
登录错误次数未限制
解决办法:限制登录错误次数限制,避免蛮力攻击。
Xpath注入
和sql注入类似原理,只是语言不同而已
专有名词
脆弱性
能够被攻击者利用的弱点,可以直接理解成“漏洞”
实际用公司开发出来的系统跑完,显示的安全性问题是这样的,无头绪,看不懂~~~再接再厉~~~