XSS学习一

0x00 XSS介绍:

跨站脚本是一种经常出现在WEB应用程序中的计算机安全漏洞,是由于WEB应用程序对于用户输入过滤不严格而产生的,攻击者利用网站漏洞把恶意脚本代码注入到网页,当其他用户浏览网页时就会执行其中的恶意代码。

0x01 Session与cookie

这作为一个补充的知识,因为XSS很大程度上要利用cookie。

  1. session:存储在服务端的令牌。用于存储客户的会话或身份。session比cookie要安全,因为其存储在服务器端,客户是不能查看,修改的。session会在一定时间保存在服务器上面,但是当访问增多时就会占用服务器性能。
  2. cookie:存储在本地浏览器的令牌,客户可以查看自己的cookie,其他人也可以分析存放在本地的cookie,然后进行cookie欺骗。google浏览器cookie的位置:C:\Users[用户名]\AppData\Local\Google\Chrome\User Data\Default\Cache。cookie可以进行跨域,例如在www.baidu.com获取了一个cookie,在music.baidu.com这个域名下也可以读取这个cookie,也就是说同一个父域名下的子域名可以共用cookie。
  3. cookie和session都拥有有效期。

想深入了解XSS请先自学javascript

0x02 XSS的分类

  1. 反射型XSS:也称为非持久性、参数型跨站脚本。这类跨站是最常见的,主要用于将恶意脚本附加到URL地址参数中。反射型XSS的利用一般是攻击者通过特定的手法(比如电子邮件),诱使用户点击包含恶意代码的URL,当用户执行这些链接之后,恶意脚本就会在浏览器执行。他的特点是只会在用户单击时执行一次。下面使用DVWA进行一个小的演示。
    <>利用DVWA的反射XSS模块,实现一次简单的cookie盗用。<>
    1、首先先在远程的服务器上构造一个接收cookie的脚本test.php,内容如下:XSS学习一_第1张图片XSS学习一_第2张图片
    2、假设攻击者构造了如下的恶意攻击页面:
    XSS学习一_第3张图片
    整个表单的action属性其实就是恶意payload,只要受害者点击了提交,就会将cookie发送到远端的服务器。我们把这个恶意页面放到云端,这样可以使得更多受害者点击。
    XSS学习一_第4张图片
    3、受害者现在使用浏览器打开了自己的DVWA,并且成功登录,这样在浏览器中就会记录他的cookie值。
    XSS学习一_第5张图片
    现在诱使受害者在我们的恶意页面提交触发攻击脚本:
    XSS学习一_第6张图片
    当用户点击领取之后便触发了脚本。为了效果这里产生了跳转,实际攻击时可以采取更加隐蔽的方法。
    之后再查看远端接收cookie的文件,看是否成功获取到了cookie。
    在这里插入图片描述
    4、接下来就是利用cookie进行身份冒充。
    浏览器出了点bug,演示忽略。

  2. 存储型XSS:这类型的跨站脚本可能威胁服务器自身的安全,攻击者事先将恶意代码上传或者存储在漏洞服务器上面,只要受害者浏览包含恶意代码的页面就会执行恶意代码。
    将刚才的恶意脚本插入留言板中,之后所有访问的用户都会自动执行这段恶意代码。
    XSS学习一_第7张图片
    XSS学习一_第8张图片

  3. DOM XSS:下一篇博客再说。。。。

0x03 XSS的防御

1、目前已知的方法:

  • 开启php配置中的magic_quotes_gpc参数,这个参数会将一些特殊字符进行转义,导致脚本无法执行。
    XSS学习一_第9张图片
    可以看到但双引号被加了转义符。
  • 开启浏览器的xss-filter
  • 代码层面过滤,开启使用html转义函数

ps:xss博大精深,写出来的只是冰山半角,建议看《XSS跨站脚本攻击剖析与防御》这本书。

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