对xss的介绍以及概述

何为XSS
首先,xss(Cross Site Scripting)是为了不和css(Cascading Style Sheets)缩写混淆而缩写为xss,直接翻译过来就是跨站脚本。
跨站脚本攻击是常见的前端web攻击。攻击者通过在页面中插入精心构造的恶意JavaScript脚本。引诱用户去点击构造的js恶意代码。当受害者去点击这些恶意代码后,游览器会去解析执行恶意的js代码。从而导致窃取用户身份/钓鱼/传播恶意代码等危害。很常见的一个xss攻击就是弹窗。

XSS的分类
反射型
储存型
DOM型

漏洞原理

反射型

反射型XSS也叫非持久型XSS,最常见的是Payload是构造在网址的某个GET参数的值里。
攻击者在URL中构造,将恶意链接发送给目标用户。当用户访问该链接时候,会向服务器发起一个GET请求来提交带有恶意代码的链接。后端服务器在没有对接受到的数据进行严格的过滤处理。完全对其信任从而导致出现xss漏洞出现。

<?php 
$xss = $_GET['xss'];
echo $xss;

?>

传入的参数xss未经过过滤关键字以及编码处理就去执行传入的数据。
因此,可以构造http://127.0.0.1/xss/xss.php?xss=恶意代码。从而导致反射型xss发生。
这个过程如下:
前端触发->后端处理->数据返回前端->游览器渲染解析
即浏览器 -> 后端 -> 浏览器。

在这里插入图片描述

储存型

储存型XSS也叫持久性xss.
常见的就是在博客留言板、反馈投诉、论坛评论、将恶意代码和正文都存入服务器的数据库。每次访问都会触发恶意代码。攻击者在与数据库交互的地方插入恶意js代码。后端服务器未经过滤编码等处理就将恶意代码储存在数据库当中。当受害者点击这些交互的页面时,服务器回去数据库中调取恶意的代码。从而导致储存型xss漏洞。

<span style="font-size:18px;"><meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>  
<html>  
<head>  
<title>储存型XSS</title>  
</head>  
<body>  
<h2>留言信箱<h2>  
<br>
<form action="xsscc.php" method="post">  
留言内容:<textarea id='Mid' name="desc"></textarea>  
<br>  
<br>  
联系方式:<input type="text" name="phone"/><br> 
<br>
<input type="submit" value="submit" onclick='loction="XssStorage.php"'/>  
</form>  
<?php  
if(isset($_POST['phone'])&&isset($_POST['desc'])){  
$log=fopen("sql.txt","a");  
fwrite($log,$_POST['phone']."\r\n");  
fwrite($log,$_POST['desc']."\r\n");  
fclose($log);  
}  
  
if(file_exists("sql.txt"))  
{  
$read= fopen("sql.txt",'r');  
while(!feof($read))  
{  
echo fgets($read)."</br>";  
}  
fclose($read);  
}  
?>  
</body>  
</html></span>  

通过POST的方式提交留言内容(desc)以及联系方式(phone),然后将提交的内容以及联系方式保持在sql.txt文件当中,当再次访问该脚本位置时候,再去读取sql.txt文件,并且将其输出。输入输出都未进行严格的过滤以及编码处理。从而导致xss漏洞。通过保存文件到sql.txt来模拟保存在数据库的方式。这部分的内容其实就是将POST提交的内容插入到数据库中。

这个过程如下:
前端与数据库交互的页面插入恶意的代码->后端服务器处理->恶意代码保存在数据库中->后端服务器读取数据库的内容->数据库读取内容->返回数据到前端->游览器渲染解析
浏览器 -> 后端 -> 数据库 -> 后端 -> 浏览器。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

储存型

DOM型其实是一种特殊的反射型XSS 。在网站页面中有许多页面的元素,当页面到达浏览器时浏览器会为页面创建一个顶级的Document object文档对象,接着生成各个子文档对象,每个页面元素对应一个文档对象,每个文档对象包含属性、方法和事件。然后游览器在渲染成可看的界面。可以通过JS脚本对文档对象进行编辑从而修改页面的元素。也就是说,客户端的脚本程序可以通过DOM来动态修改页面内容,从客户端获取DOM中的数据并在本地执行。基于这个特性,就可以利用JS脚本来实现XSS漏洞的利用。
在这里插入图片描述

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>domxss</title>
</head>
<script>
    eval(location.hash.substr(1))
</script>
<body>
    
</body>
</html>

触发#alert(123)
触发代码eval(location.hash.substr(1))

整个攻击过程是:
前端插入恶意代码->游览器解析

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值