Thursday, 6 November 2014

開心網 (kaixin001.com) OAuth 2.0 Covert Redirect 系統漏洞

Covert Redirect: http://tetraph.com/covert_redirect/Covert Redirect Related to OAuth 2.0 and OpenID:http://tetraph.com/covert_redirect/oauth2_openid_covert_redirect.html





Kaixin 的 OAuth 2.0 系統可能遭到攻擊。更確切地說, Kaixin 對 OAuth 2.0 系統的 parameter “&redirect_uri“ 驗證不夠充分。可以用來構造對 Kaixin 的 URL跳轉 攻擊。

與此同時,這個漏洞可以用下面的參數來收集第三方 App 和 用戶 的敏感信息(敏感信息包含在 HTTP header裏),

"&response_type"=sensitive_info,token,code...

"&scope"=get_user_info,email...

它也增加了對第三方網站 URL跳轉 攻擊的成功率。

漏洞地點 "/authorize?",參數"&redirect_uri", e.g.

http://api.kaixin001.com /oauth2/authorize?client_id=232383298458c9b3c19540c63bc4cb0d& response_type=code&redirect_uri=http://store.tv.sohu.com/web /login.do?bru=http://tetraph.com/essayjeans/seasons/祭春.html [1]







同意三方 App 前:

當壹個已經登錄的 Kaixin 用戶點擊上面的 URL ([1]), 對話框會詢問他是否接受第三方 App 接收他的信息。如果同意,他會被跳轉到 參數 "&redirect_uri" 的 URL。

如果沒有登錄的Kaixin 用戶點擊 URL ([1]), 他登錄後會發生同樣的事情。

同意三方 App 後:

已經登錄的 Kaixin 用戶 不會再被詢問是否接受 三方 App。當他點擊 URL ([1]) 時,他會被直接跳轉到攻擊者控制的頁面。

如果 Kaixin 用戶沒有登錄,攻擊依然可以在要求他登錄的Kaixin的對話框被確認後完成(這個過程不會提示任何和三方 App 有關的內容)。





(1) Kaixin 壹般會允許屬於已被驗證過得三方 App domain 的所有 URLs。 然而,這些 URLs 可以被操控。比如,參數 "&redirect_uri" 是被三方 App 設置的,但攻擊者可以修改此參數的值。

因此,Kaixin 用戶意識不到他會被先從 Kaixin 跳轉到第三方 App 的網頁,然後從此網頁跳轉到有害的網頁。這與從 Kaixin 直接跳轉到有害網頁是壹樣的。

因為 Kaixin 的 OAuth 2.0 客戶很多,這樣的攻擊可以很常見。

在同意三方 App 之前,Kaixin 的 OAuth 2.0 讓用戶更容易相信被跳轉的頁面是安全的。這增加了三方 App 被 URL跳轉 攻擊的成功率。

同意三方 App 後, 攻擊者可以完全繞過 Kaixin 的 URL跳轉 驗證系統。







(2) 用了壹個頁面進行了測試, 頁面是 "http://tetraph.com/essayjeans/seasons/祭春.html". 我們可以假定它是有害的,並且含有收集三方 App 和用戶敏感信息的 code。

下面是壹個有漏洞的三方 domain:

sohu.com

這個 domain 有漏洞的 URL:

http://store.tv.sohu.com/web/login.do?bru=http://tetraph.com/essayjeans/seasons/祭春.html

Kaixin 與 sohu.com 有關的有漏洞的 URL:

http://api.kaixin001.com/oauth2/authorize?client_id=232383298458c9b3c19540c63bc4cb0d&response_type=code&redirect_uri=http://passport.sohu.com

POC:

http://api.kaixin001.com /oauth2/authorize?client_id=232383298458c9b3c19540c63bc4cb0d& response_type=code&redirect_uri=http://store.tv.sohu.com/web /login.do?bru=http://tetraph.com/essayjeans/seasons/祭春.html



測試是基於Windows 7 的 IE (9.0.15) 和 Ubuntu (12.04) 的 Firefox (26.0)。













發現者:
王晶, 數學與物理學院, 南陽理工大學, 新加坡
http://www.tetraph.com/wangjing/








參考資料:
http://tetraph.com/covert_redirect/

兩款互聯網登錄系統曝出重大漏洞 短期內或無法修復 (Covert Redirect)

兩款互聯網登錄系統曝出重大漏洞 短期內或無法修復 (Covert Redirect)





1 安全漏洞

繼OpenSSL漏洞後,開源安全軟件再曝安全漏洞。新加坡南洋理工大學安全研究人員,物理和數學科學學院博士生王晶(Wang Jing )發現,Oauth 2.0, OpenID 授權接口的網站存隱蔽重定向漏洞、英文名為“Covert Redirect”。[1-2] 


























2 入侵技術

攻擊者創建壹個使用真實站點地址的彈出式登錄窗口——而不是使用壹個假的域名——以引誘上網者輸入他們的個人信息。[2]







3 漏洞危害

黑客可利用該漏洞給釣魚網站“變裝”,用知名大型網站鏈接引誘用戶登錄釣魚網站,壹旦用戶訪問釣魚網站並成功登陸授權,黑客即可讀取其在網站上存儲的私密信息。[1]

騰 訊,阿裏巴巴,QQ、新浪微博、淘寶網,支付寶,網易,PayPal, eBay, Amazon, Facebook、Google, LinkedIn, Yahoo, VK.com, Microsoft,  Mail.ru, Github, WordPress 等國內外大量知名網站受影響。[1]



鑒 於OAuth和OpenID被廣泛用於各大公司——如微軟、Facebook、Google、以及 LinkedIn——Wang表示他已經向這些公司已經了匯報。Wang聲稱,微軟已經給出了答復,調查並證實該問題出在第三方系統,而不是該公司的自有 站點。Facebook也表示,“短期內仍無法完成完成這兩個問題的修復工作,只得迫使每個應用程序平臺采用白名單”。至於Google,預計該公司會追 蹤OpenID的問題;而LinkedIn則聲稱它將很快在博客中說明這壹問題。[2]







4 背景知識


Oauth是 壹個被廣泛應用的開放登陸協議,允許用戶讓第三方應用訪問該用戶在某壹網站上存儲的私密的信息(如照片,視頻,聯系人列表),而無需將用戶名和密碼提供給 第三方應用。這次曝出的漏洞,可將Oauth2.0的使用方(第三方網站)的回跳域名劫持到惡意網站去,黑客利用XSS漏洞攻擊就能隨意操作被授權的賬 號,讀取用戶的隱私信息。像騰訊、新浪微博等社交網站壹般對登陸回調地址沒有任何限制,極易遭黑客利用。[1]

(基於百度百科)








參考資料,
http://tetraph.com/covert_redirect/

Friday, 22 February 2013

桃花源记 - 陶渊明乱世中的憧憬(东晋)

















【原文】
晋太元中[1],武陵人捕鱼为业[2],缘溪行[3],忘路之远近。忽逢桃花林,夹岸数百步[4],中无杂树,芳草鲜美,落英缤纷[5];渔人甚异之。复前行,欲穷其林。
林 尽水源,便得一山。山有小口,仿佛若有光;便舍船从口入。初极狭,才通人[6],复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田美池桑竹之属;阡陌交 通[7],鸡犬相闻。其中往来种作,男女衣着,悉如外人[8];黄发垂髫[9],髫怡然自乐。见渔人,乃大惊;问所从来,具答之。便要还家[10],设酒 杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境[11],不复出焉;遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一 一为具言所闻,皆叹惋。余人各复延至其家[12],皆出酒食。停数日,辞去,此中人语云:“不足为外人道也。”
既出,得其船,便扶向路[13],处处志之[14]。及郡下[15],诣太守说如此[16]。太守即遣人随其往,寻向所志,遂迷不复得路。南阳刘子骥[17],高尚士也,闻之,欣然规往[18]。未果,寻病终[19]。后遂无问津者[20]。
——选自中华书局排印本《陶渊明集》


【译文】
东晋太元年间,有一个武陵人以捕鱼为业,一天他沿着溪流划船前行,竟然忘掉了路的远近。忽然遇到一片桃花林,夹着溪水两岸有数百步之长,其中没有其他树木,地上的芳草鲜嫩优美,遍地是掉落的桃花瓣;渔人觉得十分惊奇。又继续向前走,想走完这片桃花林。
桃 花林的尽头就是溪水的发源地,走到那里便发现有一座山。山有一个小的洞口,洞口好象有亮光;渔人就离开小船从洞口进去。刚进去时洞很狭窄,仅能容得一个人 通过;又朝前走了几十步,突然开阔明亮起来。里面土地平坦开阔,房屋排列整齐,有肥沃的田地,美丽的池塘及桑树、翠竹一类东西;田间道路交错相通,彼此可 以听到鸡鸣狗叫的声音。桃花源中的人往来、耕种、劳作,以及男女穿的衣服,都同外面的人一模一样;老老少少都很安适快乐。他们看到渔人以后,大为惊异;问 他从什么地方来,渔人全都作了回答。他们就邀请渔人到家里去,备酒杀鸡热情款待。村民听说来了这样一个人,都来探问外界消息。他们说自己的祖先为了躲避秦 时的战乱,带领妻子小孩和同乡人来到这个与外界隔绝的地方,从此以后不再出去;于是就跟外界隔绝了。又问渔人现在是什么朝代,他们竟不知道有汉朝,更不要 说魏朝和晋朝了。渔人就详尽地讲了自己所知道的事情,他们都十分感叹。其他的人也都邀请渔人到自己家里,拿出酒食来款待。住了几天,渔人要告辞回去,桃花 源中的人对他说:“这里的事不必对外人讲。”
渔人出来以后,找到他的船,就沿着老路回去,一处处都做了标记。到了郡城,就往见太守说了自己 进入桃花源的经过。太守立即派人跟随渔人前去,寻找先前所做的标记,结果竟然迷失方向没有能够找到原来的道路。南阳的刘子骥,是个高尚的隐士,听到这件事 情,就高兴地计划前去探访。但没有能够实现,不久就生病死了。以后就再也没有去寻找的人了。


【注释】
[1] 太元:东晋孝武帝(司马曜)年号(376—396)。这里年代是假托的。[2]武陵:郡名。郡治在今湖南省常德县。[3]缘:沿着。[4]夹岸:两岸。 [5]落英:落花。[6]才通人:仅能供一个人通过。[7]阡陌(qiān mò千莫):田间小路。南北叫阡,东西叫陌。[8]外人:指桃花源外的人。[9]黄发:指老人。老年人发白转黄,故以代称。垂髫(tiáo条):指儿童。 儿童垂发为饰。[10]要:同邀,请。[11]邑人:同乡人。绝境:指与外界隔绝的地方。[12]延:邀请。[13]扶:沿着。向路:旧路,指来时的路。 [14]志:标记。[15]郡下:指武陵郡治所在地。[16]诣(yì义):往见。太守:郡的行政长官。[17]南阳:郡名。郡治在今河南省南阳市。刘子 骥:名诣之,隐士,好游山水(见《晋书·隐逸传》)。[18]规:计划。[19]寻:不久。[20]问津:问路。指探访。津;渡口


【题解】
这 是一篇虚构的用来寄托作者社会理想的作品。它描绘了一幅没有战乱、自给自足、鸡犬之声相闻、老幼怡然自得的世外桃源的图景。尽管这样的社会在当时根本不可 能存在,但从中透露了作者对现实社会的不满和否定,也在一定程度上反映了当时广大农民的愿望。全文叙述委婉曲折,层次分明,语言质朴自然,写景明丽如画, 虽幻似真,虽虚似实,用艺术的手法展示了一幅古代东方“乌托邦”的图景。



Monday, 2 April 2012

劝学(节选)- 荀况 (战国哲学)



















【原文】
君子曰(1):学不可以已。青,取之于蓝,而青于蓝;冰,水为之,而寒于水。木直中绳,輮以为轮(2),其曲中规;虽有槁暴,不复挺者,輮使之然 也。故木受绳则直,金就砺则利,君子博学而日参省乎已,则知明而行无过矣(3)。
吾尝终日而思矣,不如须臾之所学也;吾尝跂而望矣(4),不如登高之博见也。登高而招,臂非加长也,而见者远。顺风而呼,声非加疾也,而闻者彰。假舆马者(5),非利足也,而致千里;假舟楫者(6),非能水也,而绝江河。君子生非异也(7),善假于物也。
积 土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步(8),无以至千里;不积小流,无以成江海。骐骥一跃,不能十步;驽 马十驾(9),功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。螾无爪牙之利(10),筋骨之强,上食埃土,下饮黄泉,用心一也。蟹六跪而二螯 (11),非蛇蟺之穴无可寄托者(12),用心躁也。
选自上海古籍出版社影印本《二十二子·荀子》
 


 
【译文】
君 子说:学习决不可以停止。染料靛青是从蓝草中提炼取得的,但比蓝草更青;冰是水所结成,可是比水更寒冷。木材本是笔直而符合墨线要求的,但用火熏烤把木材 制作成车轮,它的曲度就符合了圆规的要求;即使把它晒干也不再重新挺直,这是火的熏烤使它变成这样的。所以木材经墨线量过,就能取直;金属放在磨刀石上磨 过,就能锋利;君子广泛地学习,每天对自己进行检查反省,就明白事理,行为也不会有过错了。
我曾经整天地冥思苦想,却不如学习片刻有收 获; 我曾经踮起脚跟眺望远方,却不如登上高处能看得更远。登上高处招手,胳臂并未加长,可是远处的人也能看见。顺着风向呼唤,声音并未加强,可是听的人却很清 楚。驾车骑马的人,并非腿脚特别强健,却能到达千里之外。乘坐船艇的人,并非都会游泳,却能横渡江河。君子的先天资质与一般人差异不大,可是聪明能干,这 是因为善于凭借和利用客观事物啊。
积土成为高山,风雨就从山里兴起;积水成为深渊,蛟龙就在渊中生长;积累善行养成美德,人就能情操高 尚, 智慧日增,也就具备了圣人的思想品质。所以不一步一步踏实地走,无法到达千里之外;不汇集细小的水流,不能成为江海。骏马跳一下,未必能超过十步远;劣马 拉车走上十天,也能走得很遥远,它的成功是因为不停地前进。雕刻一下就丢下,即使是朽木也刻不断;不停地雕刻下去,即便是金属石块也能刻成艺术品。蚯蚓并 无锋利的爪牙和强壮的筋骨,却能上吃地面的尘土,下饮地底的泉水,这是它用心专一的结果。螃蟹有六条腿和两只大螯,但如果不依靠蛇和黄鳝的洞穴竟然无处可 以寄居存身,这是因为它用心浮躁不专的缘故。(曹光甫)
 


 
【注 释】
(1) 君子:有学问有修养的人。 (2)輮(róu柔):木材加工的一种方法,即用火熏烤,使木材弯曲变形。 (3)知:同“智”。 (4)跂(qì气):踮起 脚跟。 (5)假:凭借,借助。 (6)楫(jí集):船桨。 (7)生:同“性”。天资,资质。 (8)跬(kuǐ傀)步:古人以跨出一脚为跬,再跨出 一脚为步。 (9)驾:马拉着车一天所走的路程为一驾。 (10)螾:同“蚓”。蚯蚓。 (11)跪:腿脚。螯(áo熬):节足动物 的第一对足,其末端 状如钳,用以取食兼防御。蟹有八条腿,“六跪”,疑有误。 (12)蟺(shàn善):同“鳝”。黄鳝。
 


 
【作者小传】
荀 况(约前310前238),战国后期赵国人。时人尊称为荀卿,汉时称为孙卿。年五十,始游学于齐国,曾在齐国首都临淄(今山东淄博市)的稷下学宫任祭酒。 因遭谗而适楚国,任兰陵(今山东苍山县)令。以后失官家居,著书立说,死后葬于兰陵。著名的学者韩非、李斯是他的学生。
荀子是一位儒学大 师,在吸收法家学说的同时发展了儒家思想。他尊王道,也称霸力;崇礼义,又讲法治;在“法先王”的同时,又主张“法后王”。孟子创“性善”论,强调养性; 荀子主“性恶”论,强调后天的学习。这些都说明他与嫡传的儒学有所不同。他还提出了人定胜天,反对宿命论,万物都循着自然规律运行变化等朴素唯物观点。
《荀子》一书今存三十二篇,除少数篇章外,大部分是他自己所写。他的文章擅长说理,组织严密,分析透辟。善于取譬,常用排比句增强议论的气势,语言富赡警炼,有很强的说服力和感染力。


 
 
【题 解】
《劝 学》篇是荀况的代表作之一。原文很长,这里节选了其中的三段。第一段着重论述学习的重要意义,它能使人“知明而行无过”,即提高思想认识和加强品德修养。 第二段写学习能使人增长才干,有了知识才能“善假于物”,比一般不学无术的人来得高明。第三段写正确的学习态度和方法应当是循序渐进,不断积累,持之以 恒,才能取得成效。全文围绕“学不可以已”的论题展开论述,层次井然。博喻和排比句式的大量运用,正反比照说理,逻辑严密,语言精警,在在体现了荀子说理 雄辩的特色。