XSS-跨站脚本攻击
靶场:
转自:http://flag0.com/2019/09/17/xss%E9%9D%B6%E5%9C%BA%E5%88%B7%E9%A2%98%E7%AC%94%E8%AE%B0/
反射型xss
发出带xss攻击代码的请求,作为输入提交到服务端,服务端响应后,在响应内容中出现xss攻击代码,最终被浏览器执行,整个过程像一次反射。
存储型xss
提交的xss攻击代码,会被存储的服务端,下次请求该页面时会被显示出来。
DOM型xss
攻击者提交的攻击代码并未显式的包含在web服务器的响应页面中,但会被页面中的js脚本以变量的形式来访问到,导致浏览器在渲染页面执行js脚本的过程中,通过DOM操作执行变量所代表的恶意脚本。
关于JavaScript
- JavaScript是一种客户端的脚本语言,是运行的浏览器中的
- 浏览器会自动运行网页中的JavaScript代码,并且JavaScript代码对于用户来说是透明的
- 网页中运行JavaScript的方式
- 引入外部js
1 | <script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"</script> |
使用超链接(javascript伪协议)
1
<a href="javascript:alert(111)"></a>
使用标签
1
<script>alert(1)</script>
使用事件方法
1
<img src=1 onerror=alert(1)>
网页可以通过事件与用户进行交互
浏览器中可以选择禁用JavaScript代码
html与js基础
1.在超链接执行js代码
1 | <a href="javascript:alert(1)">ccc</a> |
- javascript //js伪协议
2.通过事件属性执行js代码(通过属性事件执行时,可以加引号,也可以不加引号)
1 | <img src=1 onerror=alert(1)> |
常见事件
事件名称 | 类型 | 作用 |
---|---|---|
onerror | Window 事件属性 | 在错误发生时运行的脚本。 |
onload | Window 事件属性 | 页面加载结束以后运行脚本 |
onclick | Mouse 事件 | 元素上发生鼠标点击时触发。 |
onmouseover | Mouse 事件 | 当鼠标指针移动到元素上时触发。 |
oninput | From事件 | 当元素获得用户输入时运行的脚本。 |
xss.haozi.me靶场优质WP:https://mokyan.github.io/post/xsshaozime/