网站漏洞 CSRF+JSONP组合攻击详情



         六一儿童节快到了,最近出了太多太多的漏洞,像前几天被爆出的cve-2019-0708漏洞

,利用的是windows服务器远程桌面rdp协议进行的攻击,今天来给大家
送一个礼物是关于网

站方面的,jsonp漏洞可以导致csrf网站攻击。



很多人会把jsonp跟json当成是一个东西,但真实情况不是这样的,先来介绍一下什么是jsonp

,简单来讲就是一个可以解决网站跨域请求访问的一个语言,可以帮
助网站跨域的去请求参数

,使数据之间同步,很好的解决不同网站之间的通信问题
关于网站漏洞的JSONP劫持漏洞,

我们来详细的分析看下。
一般网站在设计功能过程加入jsonp实例代码,比如下面这一段,图1:
 

 
使用的是php语言开发的,很简单的一个第三方jsonp接口,返回用户名和密码,当get请求的时候

就会返回我们需要的值,如果我们对callback值进行修改的时候,
返回的值也会有所改变,那么这

里就可以被我们利用,修改成恶意的代码,来欺骗
用户点击,从而向服务器端里的json接口进行请

求,当用户输入账号密码等信息的
时候就已经不知不觉的提交到了攻击者的网站里,用户密码被泄

露。如下图:

 
JSONP漏洞应该算是属于csrf攻击,诱导用户点击并获取用户的账号密码等敏感信息,CSRF攻击

还远远不止光可以获取用户的账号密码,还是做其他攻击用途,我们
在日常的安全检测当中还遇到

过csrf防护使用了token动态值,使用token可以大大
的防止csrf攻击的发生,但是我们可以绕过该

token防护,具体该怎么绕过呢?

 
 
在网站的整个用户提交表单中我们发现有些token值被隐藏了,那么我们可以直接伪造代码,通过

jsonp的提交方式来获取整个表单的内容,并将其中的token值获取
出来,填充到我们构造的表单

中,完成csrf攻击。

 
 
网站漏洞修复建议:
 
对调用到的json文件以及接口进行安全限制,判断用户来路Referer,对所有的用户请求设置token

,统一值,对json格式的输出编码设置为utf8,对callbak回调参
数以及json的数据通信严格的把控

,jsonp请求与返回的值进行长度检查,对一些
特殊字符尤其csrf攻击字符进行过滤,比如*&#斜杠

等等的字符。
分享: