
“我们换下思路,不再去偷这个cookie了,相反,我们在我们的Beauty.com中构造一个领奖页面,里边包含一个连接,让用户去点击,例如:”
恭喜你获得了iPhone X一台,快来 <a href=www.icbc.com.cn/transfer?toBankId=黑客三兄弟的账户&money=金额>领取吧!</a>
“当然,” 老二补充道,“我们得事先知道icbc.com.cn的转账操作的url和参数名称。如果这个用户恰好登录了icbc.com, 那他的cookie还在, 当他禁不住诱惑,点了这个链接后,一个转账操作就神不知鬼不觉的发生了。”
(注:为了方便展示,本文举了一个非常简单的案例,银行实际的转账操作要远远比文章描述安全得多。)
“那要是用户就是不点击呢?”
“你忘了我们XSS中使用过的img了吗, 也可以应用到这里来啊,创建一个看不见的图片:”
<img src=www.icbc.com.cn/transfer?toAccountID=黑客三兄弟的账户&money=金额>
“只要他打开了这个页面,不用点击任何东西,就会发生转账操作。” 老二再次祭出了img大法。
“怪不得现在有很多邮箱默认不显示邮件中的图片呢!”老三说,那要是人家icbc.com.cn的转账操作需要form表单,是POST操作呢?”
“那也不怕啊,我们可以把这个表单创建起来,放到一个不可见的iframe中,用户只要一访问,就用Java自动提交。” 老大对这种办法驾轻就熟。
“总之,只要这个用户在访问icbc.com.cn的时候, 访问了我们的网站,就极有可能中招,我们这种方式,只是利用了一下合法的Cookie,在服务器看来,我们发出的请求,那就是一次合法的请求啊,哈哈!” 老二很得意。
“老二,你这叫跨站请求伪造啊,Cross Site Request Forgery(CSRF),这个缩写应该不会重复了吧!” 老大做了总结。
用了CSRF, 三兄弟果然获利颇丰,但是人类也很快也意识到了这一点,应对手段马上就来了,步骤特别简单:
1. 用户在icbc.com.cn转账,显示转账的form,除了常用的字段之外,额外添加一个token :
这个token是icbc.com服务器端生成的,是一个随机的数字。
2. 用户的转账数据发送的服务器端, icbc.com就会检查从浏览器发过来的数据中有没有token,并且这个token的值是不是和服务器端保存的相等,如果相等,就继续执行转账操作,如果不相等,那这次POST请求肯定是伪造的。
老三愁眉苦脸地对大家说:“这个token是服务器端生成的,我们无法伪造的,CSRF的手段也不行了。”
老大安慰道:“钱哪有那么容易就好挣的? 我们还是想想办法,多利用XSS漏洞吧,如果可以注入Java, 就可以读取Token,为所欲为了。 ”
老二说:“大哥,Web端的油水越来越少,我们也得与时俱进,扩展下业务啊,黑客三兄弟向服务器端进军吧!”
“二弟所言极是,下周我们再讨论吧。”
(完)
●本文编号525,以后想阅读这篇文章直接输入525即可
'>
“我们换下思路,不再去偷这个cookie了,相反,我们在我们的Beauty.com中构造一个领奖页面,里边包含一个连接,让用户去点击,例如:”
恭喜你获得了iPhone X一台,快来 <a href=www.icbc.com.cn/transfer?toBankId=黑客三兄弟的账户&money=金额>领取吧!</a>
“当然,” 老二补充道,“我们得事先知道icbc.com.cn的转账操作的url和参数名称。如果这个用户恰好登录了icbc.com, 那他的cookie还在, 当他禁不住诱惑,点了这个链接后,一个转账操作就神不知鬼不觉的发生了。”
(注:为了方便展示,本文举了一个非常简单的案例,银行实际的转账操作要远远比文章描述安全得多。)
“那要是用户就是不点击呢?”
“你忘了我们XSS中使用过的img了吗, 也可以应用到这里来啊,创建一个看不见的图片:”
<img src=www.icbc.com.cn/transfer?toAccountID=黑客三兄弟的账户&money=金额>
“只要他打开了这个页面,不用点击任何东西,就会发生转账操作。” 老二再次祭出了img大法。
“怪不得现在有很多邮箱默认不显示邮件中的图片呢!”老三说,那要是人家icbc.com.cn的转账操作需要form表单,是POST操作呢?”
“那也不怕啊,我们可以把这个表单创建起来,放到一个不可见的iframe中,用户只要一访问,就用Java自动提交。” 老大对这种办法驾轻就熟。
“总之,只要这个用户在访问icbc.com.cn的时候, 访问了我们的网站,就极有可能中招,我们这种方式,只是利用了一下合法的Cookie,在服务器看来,我们发出的请求,那就是一次合法的请求啊,哈哈!” 老二很得意。
“老二,你这叫跨站请求伪造啊,Cross Site Request Forgery(CSRF),这个缩写应该不会重复了吧!” 老大做了总结。
用了CSRF, 三兄弟果然获利颇丰,但是人类也很快也意识到了这一点,应对手段马上就来了,步骤特别简单:
1. 用户在icbc.com.cn转账,显示转账的form,除了常用的字段之外,额外添加一个token :
这个token是icbc.com服务器端生成的,是一个随机的数字。
2. 用户的转账数据发送的服务器端, icbc.com就会检查从浏览器发过来的数据中有没有token,并且这个token的值是不是和服务器端保存的相等,如果相等,就继续执行转账操作,如果不相等,那这次POST请求肯定是伪造的。
老三愁眉苦脸地对大家说:“这个token是服务器端生成的,我们无法伪造的,CSRF的手段也不行了。”
老大安慰道:“钱哪有那么容易就好挣的? 我们还是想想办法,多利用XSS漏洞吧,如果可以注入Java, 就可以读取Token,为所欲为了。 ”
老二说:“大哥,Web端的油水越来越少,我们也得与时俱进,扩展下业务啊,黑客三兄弟向服务器端进军吧!”
“二弟所言极是,下周我们再讨论吧。”
(完)
●本文编号525,以后想阅读这篇文章直接输入525即可
...