csrf漏洞学习
啊猜猜👴这几天干啥去了
与话题无关的一个吐槽
吐槽一下效率极其拉跨的联想售后😓,以及1次 愉快 的售后体验
电脑出了点小问题,网上搜了下这种小问题大概80–100r,于是👴出去找联想售后,然后人家检查了一遍告诉👴,我们作为技术人员其实p也不会只会换主板,所以不管啥问题,你只需要掏区区380r换个主板就阔以修好了啦,而且如果不你不打算掏这冤枉钱而是想花80r去电器店修,那么你的联想保修就失效辣!我们可没有强迫你哦
我无可奈何,然后他告诉我主板到货大概要几天,留了我手机号就让我回去等了。由于没钱,所以没法出去玩,于是在宿舍摆了几天大烂😓。可气的是,售后说大概3天就到货了,结果拖来拖去硬是让👴等了6天🤬wnm….
第六天👴彻底不想等了,开始收拾行李离校,顺便去店里准备强行拿电脑+来个撕逼大战。当👴打开手机录音以便保存犯罪证据,走进店里正准备发作,售后小哥信誓旦旦告诉我下午就能到,👴最后信他一次,坐在店里等
然后等的过程中👴打开电脑奇迹的发现,这玩意它自己好了???!! 于是趁售后不在带电脑去楼下电器维修检查,人家瞅了瞅告诉我电脑接口没问题,可能只是进水,干了就好了….
然后这时候👴想了下: 那既然好了还花钱修什么电脑,这辣鸡服务让👴8爽地等了这么久,👴现在想一走了之了
但是👴又想发作一下,于是没直接跑路,而是选择回店里当面通知售后,于是发生了以下对话
1 |
|
啊当然上述情况都没有发生,我本打算这么说发作一波的,但实际上发生的是这样的
1 |
|
事后回想,莫名其妙干等6天啥也没干的我突然有种小丑的感觉
原理
啊那么p话少说,总之👴宝贵的假期时间就这么晃过去了,现在开始要重新更新啦
参考链接: 浅谈csrf
csrf,跨站请求伪造,利用社会成功学诱导用户点击构造的恶意链接,在用户8知情的情况下让用户对网站完成某些操作
比如csrf的工具CSRFTester,其原理就是访问1个页面,然后抓捕其html页面,然后自己修改它构造钓鱼界面,诱导用户点击
满足csrf,被钓鱼用户需要满足以下条件:
登录受信任网站A,并在本地生成Cookie
在不登出A的情况下,访问危险网站B
csrf防御
referer头
验证请求是否是用户自愿发起,可以通过检查referer头来判断,如果referer头是来自自己的网站,则可以信任,否则则可能是黑客的钓鱼网站
8过这个referer难道无法被篡改吗? 查了1下其实是可以的: “Referer 的值是由浏览器提供的,虽然 HTTP 协议上有明确的要求,但是每个浏览器对于 Referer 的具体实现可能有差别,并不能保证浏览器自身没有安全漏洞。使用验证 Referer 值的方法,就是把安全性都依赖于第三方(即浏览器)来保障”
于是对于一些浏览器,就有方法可以篡改cookie,比如IE(拒绝IE,从我做起)
添加token
抵御 CSRF,关键在于在请求中放入黑客所不能伪造的信息,且该信息不存于 cookie 之中
可以在 HTTP 请求中以参数的形式(get/post)加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这个 token,token 可以在用户登陆后产生并放于 session 之中
这样的缺点是1个网站里可接受请求的地方非常多,对每个请求都加token很麻烦且容易漏掉
还有1个问题是token可能被获取:
在 HTTP 头中自定义属性并验证
这种方法也是使用 token 并进行验证,不同的是,这里并不是把 token 以参数的形式置于HTTP请求中,而是放到 HTTP 头中自定义的属性里。通过 XMLHttpRequest 这个类,可以一次性给所有该类请求加上 csrftoken 这个 HTTP 头属性,并把 token 值放入其中
总之就是没啥缺点,但是十分麻烦
绕过
总结,感觉就像是盲猜一样,1个1个试
1.Refere为空条件下
空token
删除token参数或发送空token
不发送token也可以正常请求数据是因为这种逻辑错误在应用程序中非常常见:应用程序有时会在token存在的时候或者token参数不为空的时候检查token的有效性。这种情况下,如果一个请求不包含token或者token值为空,那么也是有可能绕过CSRF的防御的
1 |
|
用其他session
应用程序可能只是检查token是否合法,但是不检查token是否确实归属于当前用户。这种情况,那么你可以试试把自己的token贴在payload里
移除referer
可以试试往页面添加以下代码移除referer
1 |
|
正则表达绕过域名
也许referer检查是基于白名单的,那么就阔以正则表达式绕过,想办法在你的钓鱼网站域名里加白名单
在后面加域名 qq.com => qq.com.abc.com
将域名拼接 abc.qq.com => abc_qq.com
在前面或者在后面加字符 qq.com => abcqq.com / qq.com => qq.comabc.com / qq.com => abc.com/qq.com
配合xss使用
参考: 链接
更多还在学,靶场还在搭,有优先级更高的事要做,先挖个坑…