什么是XSS?
XSS,全称Cross Site script ing,即 跨站脚本攻击 ,从某种意义上来讲也是一种注入攻击,具体指攻击者在页面中注入恶意的脚本代码,当受害者访问该页面时,恶意代码会在其浏览器上执行,需要强调的是,XSS不仅仅限于JavaScript,还包括flash等其它 脚本语言 。根据恶意代码是否存储在服务器中,XSS可以分为存储型的XSS与反射型的XSS。
什么是反射型XSS攻击,在这里分四个安全级别的代码进行说明:
1、低安全级别
//服务器端代码:
if(isset($_GET[‘username’])){
//todo业务代码
echo’Hello’.$_GET[‘username’];
}
上面代码直接使用了$_GET[‘username’]参数,并没有做任何的过滤与检查,存在明显的xss漏洞。
漏洞利用 :
输入后,成功弹窗。
2、中等安全级别
//服务器端代码
if(isset($_GET[‘username’])){
//todo业务代码
$username=str_replace(‘,会成功弹框。
输入,也会成功弹框。
3、高安全级别
//服务器端代码
if(isset($_GET[‘username’])){
//todo业务代码
$name=preg_replace(‘/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i’,”,$_GET[‘username’]);
echo”Hello${username}”;
}
上面的代码同样使用黑名单过滤输入, 使用正则表达式 函数对相关黑名单字符进行替换空,这种防御机制虽然可以有效过滤掉2中两种漏洞利用,但仍然可以进行攻击。
漏洞利用 :
虽然无法使用