appscan及问题分析--知识点及问题分析(CSRF)举例
拍摄于某路
appscan及问题分析--知识点及问题分析举例
1.基本知识点:安全组织
WASC 和OWASP。这两个组织在呼吁企业加强应用安全意识和指导企业开发安全的 Web 应用方面,起到了重要的作用。
1. Web Application Security Consortium(WASC),是一个由安全专家、行业顾问和诸多组织的代表组成的国际团体。WASC 组织的关键项目之一是“Web 安全威胁分类”,也就是将 Web 应用所受到的威胁、攻击进行说明并归纳成具有共同特征的分类。该项目的目的是针对 Web 应用的安全隐患,制定和推广行业标准术语。
2. Open Web Application Security Project(OWASP),该组织致力于发现和解决不安全 Web 应用的根本原因。它们最重要的项目之一是“Web 应用的十大安全隐患”,总结了目前 Web 应用最常受到的十种攻击手段,并且按照攻击发生的概率进行了排序。这个项目的目的是统一业界最关键的 Web 应用安全隐患,并且加强企业对 Web 应用安全的意识。
3. W3C (万维网联盟)最重要的工作是发展 Web 规范(称为推荐Recommendations),这些规范描述了 Web 的通信协议(比如 HTML 和 XHTML)和其他的构建模块。
每项 W3C 推荐的发展是通过由会员和受邀专家组成的工作组来完成的。工作组的经费来自公司和其他组织,并会创建一个工作草案,最后是一份提议推荐。一般来说,为了获得正式的批准,推荐都会被提交给 W3C 会员和主任。
2.实例讲解
安全问题分析实例讲解-CSRF
CSRF(跨站请求伪造):跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:
黑客盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的(因为是用你的正当名义发送请求的),但是却完成了黑客所做的非法操作。
经测试,漏洞问题存在vicenter中的https://192.168.24.191/imagelibrary/image/list页面,手动删除请求头中其余参数,仅保留主要参数的情况下,替换请求头中的Referer,依然可以正常发送和接收请求。
使用jmeter,修改请求头内容、修改referer的值为https://www.baidu.com发送http请求,可以得到相同的响应
响应内容
实际原理:
1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
3. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
5. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。
修复方式建议:
- 增加Http Referer验证
- 请求中添加token并验证
- Http头中自定义属性并验证
一般采用第二种方法,实例剖析:
“GET”、“POST”请求头中添加X-CSRF-TOKEN参数并验证。
服务器返回csrf_token,浏览器储存csrf_token到cookie中。在form或ajax中分别获取cookie中的csrf_token值,交互时带上此csrf_token值,若此值与服务器中的值一致则通过。
网站B中无此csrf_token值,所以不通过,从而防止CSRF攻击。
表单:在Form表单中添加隐藏字段csrf_token值
非表单:ajax获取数据时,Headers中添加X-CSRF-TOKEN。