专家深入解析跨站请求伪造漏洞(上)
2008-12-25 13:44:09 来源:WEB开发网http://example.com/send_email.htm?to=carol%40example.com&subject=hi+Carol&msg=test
这里会出现CSRF攻击,原因是send_email.htm会把收到的数据悉数提取,然后发电子邮件。它没有对自compose.htm页面的表单中的数据进行检验。因此,攻击者只要设法让用户向send_email.htm发送一个请求,那么send_email.htm这个页面就会引起example.com发送一封电子邮件,要紧的是,该邮件是以该用户名义发送的,并且包含的是攻击者任意选择的任何数据,这样攻击者就成功地进行了一次CSRF攻击。
为了利用这个弱点,攻击者需要强迫用户的浏览器向send_email.htm发送一个请求来完成一些邪恶的动作。我们假定用户浏览了一个为攻击者所控制的站点,并且目标站点没有采取针对CSRF攻击的防御措施。具体地说,攻击者需要伪造一个跨站请求,该请求的发源地是从他的站点,目的地为example.com,中间会路过受害者的浏览器。令人遗憾的是,HTML为制造这种请求提供了多种方式。例如,浏览器遇到标签时,任何被设置为src属性的URI都会被加载,即使那个URI不是一幅图像。攻击者可以用以下代码创建一个页面:
{img src="http://example.com/send_email.htm?to=mallory%40example.com&subject=Hi&msg=My+email+address+has+been+stolen"}
当用户访问这个页面时,一个请求被发送到send_email.htm,然后,将有一封来自该用户的电子邮件被发送给Mallory。这个例子跟后面将要介绍的纽约时报站点上发现的漏洞几乎完全一致。
要想成功发动CSRF攻击,攻击者只要能够引起用户的浏览器在另一个站点上执行一个非本意的动作即可,当然前提是用户必须有执行该动作的权限。CSRF攻击能获取跟用户一样大的权限,即任何用户可以执行的动作,攻击者利用CSRF攻击也能完成。所以,站点赋予用户的权限越大,受到CSRF攻击的可能性就越高,CSRF攻击带来的后果也越严重。
- ››解析更新后的各种功能(1.8)
- ››解析Windows XP注册表的常用设置
- ››解析赚钱新思路 地方站长认清形势自力更生
- ››解析医院网站营销的成功运营策略
- ››深入理解Android消息处理系统——Looper、Handler...
- ››深入理解SET NAMES和mysql(i)_set_charset的区别
- ››深入理解Mysql字符集设置
- ››深入浅出实战攻防恶意PDF文档
- ››深入剖析防火墙策略的执行过程:ISA2006系列之六
- ››解析Windows密码安全问题(第三部分)
- ››深入JavaScript与.NET Framework中的日期时间(3)...
- ››深入JavaScript与.NET Framework中的日期时间(2)...
更多精彩
赞助商链接