反射型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信息,
或者读取用户浏览器信息等,为我们进一步深入攻击做铺垫。

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的浏览器做控制并进一步利用漏洞控制

浙公网安备 33010602011771号