1-Web安全——XSS跨站脚本漏洞

参考资料:

《Web安全深度剖析》

《Web安全攻防:渗透测试实战指南》

《XSS跨站脚本漏洞精讲/原理/绕过/防御》

《PHP网站漏洞挖掘从入门到精通》

 

目录

 

1. XSS漏洞原理解析

2. XSS攻击类型

3. 反射型XSS

4. 分析反射型XSS

5. 存储型XSS

6. 分析存储型XSS

7. DOM型XSS

8. 分析DOM型XSS


 

1. XSS漏洞原理解析

XSS跨站脚本攻击(Cross Site Scripting,简称为XSS)是一种针对web网站安全的漏洞攻击技术,恶意攻击者利用网站程序对用户输入过滤不足,在网站中插入对用户有影响的恶意脚本代码(通常是js或html等脚本代码),当用户使用浏览器打开浏览该网页时,恶意代码就会在用户浏览器上执行,从而盗取用户cookie,黑掉网页,导航到恶意网站。

看起来XSS漏洞主要是攻击用户,属于客户端攻击,跟网站服务器的安全并没有直接关系,但是别忘了web网站的管理后台的用户也属于被攻击的用户之一,而管理员用户往往拥有很高的管理权限,可以对网站的后台数据库进行操作。这意味着XSS漏洞可以通过管理员作为“跳板”来达到攻击服务器的目的。

 

2. XSS攻击类型

XSS攻击主要有三种:

  1. 反射型XSS
  2. 存储型XSS
  3. DOM型XSS

以上几种XSS攻击中,存储型XSS的危害是最大的,要高于反射型和DOM型。

 

 

3. 反射型XSS

其实XSS漏洞大致可分为两种类型:持久型和非持久型,反射型XSS就属于非持久型XSS,具有一次性攻击。

 

反射型XSS攻击:恶意攻击者通过电子邮件或站内信等方式欺骗诱导用户点击包含XSS代码的恶意URL链接,当用户访问该链接时服务器就会接收到目标用户请求并处理,然后服务器会把带有XSS代码的数据发送给用户的浏览器,浏览器解析了这段XSS代码后就会触发XSS漏洞。

 

反射型XSS代码通常是存在于URL中,攻击者需要通过欺骗或加密形式将存在恶意代码的连接发送给用户,只有在用户点击后才能触发反射型XSS攻击。

 

4. 分析反射型XSS

最常见的反射型XSS就是web网站的搜索框,来看一个简单的反射型XSS漏洞,测试网址为:http://www.test1.com/search.php ,输入php进行搜索:

1-Web安全——XSS跨站脚本漏洞_第1张图片

在搜索框正常里正常输入php搜索,后台会把所有跟php相关的留言展示出来。

 

在搜索栏中输入: ,页面返回结果如下:

1-Web安全——XSS跨站脚本漏洞_第2张图片

浏览器并没有搜索出对应的内容,而是把输入的这段代码当做JS脚本执行了,JS函数alert执行在浏览器弹窗。

 

 

分析反射型XSS漏洞代码,search.php文件内容:

getAll($sql_comment);

        require "./view/search.html";
    }else{
        echo "搜索信息为空!操作失败";
        header("Refresh:3;url=index.php");
    }
}

 

search.html页面:

1-Web安全——XSS跨站脚本漏洞_第3张图片

search.php文件中的PHP代码通过GET获取search参数中的值,然后通过echo函数输出到html页面中,而,点击留言提交后,当前页面显示了一个弹窗。

 

页面中的留言只显示了一部分,通过查看当前页面元素发现浏览器在解析html页面时,只将留言中的this a test一部分作为普通文本数据进行输出了,

当点击“选择”按钮时,就会执行,然后回车,页面弹窗说明是存在DOM型XSS的。

 

你可能感兴趣的:(网络安全)