2 3 4 5 6 7 8 9 10 11 12

反射型XSS(攻)

非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。

反射型XSS大多数是用来盗取用户的Cookie信息。

在黑盒测试中,这种类型比较容易通过漏洞扫描器直接发现,我们只需要按照扫描结果进行相应的验证就可以了。

相对的在白盒审计中, 我们首先要寻找带参数的输出函数,接下来通过输出内容回溯到输入参数,观察是否过滤即可。

echo()函数实例

<html>
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>XSS</title> 
</head> 
<body> 
<form action="" method="get"> 
<input type="text" name="input">     
<input type="submit"> 
</form> 
<br> 
<?php 
$XssReflex = $_GET['input'];
echo 'output:<br>'.$XssReflex;
#变量 $XssReflex 获取 get 方式传递的变量名为 input 的变量值(值为一个字符串),然后直接通过echo()函数输出,注意这中间并未对用户输入进行任何过滤。
?> 
</body> 
</html> 

打开Firefox输入url:localhost/codeaudit/xss/XssReflex.php

当我们input参数输入 1 ,页面返回 1 :

只要输入正常,都可以正常的输出。

但我们输出JavaScript代码时,此时输出就会执行其代码,输出一些其它的东西

输入<script>alert('xss')</script>

可以看到浏览器成功弹窗,说明我们输出的JavaScript代码成功被执行了。

这就是最基本的反射型的XSS漏洞,这种漏洞数据流向是: 前端-->后端-->前端 .

此时查看网页html代码:

可以发现HTML中的代码增加了,通过它我们知道输入javascript代码
是可以被执行的,当我们输入一些其他函数.
比如`document.cookie`就可以成功盗取用户的cookie信息,
或者读取用户浏览器信息等,为我们进一步深入攻击做铺垫。

img

Alice经常浏览某个网站,此网站为Bob所拥有。Bob的站点需要Alice使用用户名/密码进行登录,并存储了Alice敏感信息(比如银行帐户信息)。

Tom 发现 Bob的站点存在反射性的XSS漏洞。

Tom 利用Bob网站的反射型XSS漏洞编写了一个exp,做成链接的形式,并利用各种手段诱使Alice点击。

Alice在登录到Bob的站点后,浏览了 Tom 提供的恶意链接。

嵌入到恶意链接中的恶意脚本在Alice的浏览器中执行。
此脚本盗窃敏感信息(cookie、帐号信息等信息)。
然后在Alice完全不知情的情况下将这些信息发送给 Tom。

Tom利用获取到的cookie就可以以Alice的身份登录Bob的站点,如果脚本的功更强大的话,Tom 还可以对Alice的浏览器做控制并进一步利用漏洞控制

笔记来源: 跨站脚本漏洞(XSS)基础讲解 - 简书 (jianshu.com)

posted @ 2021-11-06 10:27  MrDevil  阅读(555)  评论(0)    收藏  举报