
誰もが美しく青いHabrahabrでXSSを探すために急いでいるのを見て、彼は運を試してみることにしました。 多くのコンテキストやベクターでは役に立たないPOST-s self-xssは、最も人気のあるブラウザー(chrome / safari / ieなど)でのフィルタリングから始まり、その使用と操作の複雑さで終わり、残りのパイオニアを残して他の何かを探しに行くことになりました立っています。
ナンバーワンを試みる
最初に、承認と登録を確認することが決定されました。
この投稿で見つかった「素晴らしい」XSSが数日遅れていたのを見逃しました(そして、検索の考えが少し早く来たらどうなるでしょうか?)。 私は、XSSを検索してテストするためのアブストラクトデバイスのファンではありません。Chromeに組み込まれている非常に便利な機能を好むため、curlのすべてのヘッダーをコピーしてコンソールから使用できます。

パラメータで遊んで何も見つけられなかった後、習慣から、間違ったパスの場合に302リダイレクトがどのように機能するかをチェックし、メインドメインとは完全に異なることが判明しました。
サーバーに送信することにより:
curl 'https://auth.habrahabr.ru//%22%3E%3Ch1%3Etest'
非常に興味深い回答が寄せられました。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title> !</title> </head> <body> <a href="http://habrahabr.ru/auth/"><h1>test/">http://habrahabr.ru/auth/"><h1>test/</a> </body> </html>
リクエストからわかるように、最初のuri挿入はフィルタリングされず、2番目のuri挿入はフィルタリングされているため、XSSは一見して表示されます。 しかし、通常のブラウザーを使用して攻撃を試み、約束されたXSSが表示されなかった後、私はより深く掘り下げることに決め、andなサーバーがスラッシュを最後に追加しただけでなく、サーバーがリダイレクトではなく404番目を表示したことを確認しました(Webサーバーのかなり奇妙なルール?)また、バグのjsが実行する時間がある前に
habrahabr.ru/auth/%xss%をスローします。 最初の問題は迅速かつ簡単に解決されました-行わなければならないことは、「?」を置くことだけでした。それで、他のすべてがGETパラメーターとして「ドロップ」されます。
curl 'https://auth.habrahabr.ru//%22%3E%3Ch1%3Etest?'
答えは次のようになりました。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title> !</title> </head> <body> <a href="http://habrahabr.ru/auth/"><h1>test?/">http://habrahabr.ru/auth/"><h1>test?/</a> </body> </html>
2番目の問題は解決できませんでした。 IE <8または同じcurlを使用する場合を除き、コードは頑固に実行する時間がありませんでした。
たとえば、メタリフレッシュを削除するために、悲しみを試していないだけです:
var mr = document.getElementById("meta-refresh"); mr.parentNode.removeChild(mr);
しかし、残念なことに、更新のゼロ時間は私にチャンスを残さず、そのような不死身は私に合わなかったので、私はさらなる検索に行きました。
試行番号2
最初のファイルの後、giveめずにサイトの他の部分で手を試すことを決めました。 魔法のような年齢のないGoogleを使用して、さまざまな企業の有料プロモーション会社の古いページと新しいページがいくつか見つかりました。 最新のプロモーションページはすべての攻撃に非常に真剣に抵抗し、出力は一部の場所で2回もエスケープされました。 Habrが普通の人間に登録を許可するさまざまな競争を思い出して、私は
habrahabr.ru/special/missに行き、登録時に特殊文字のニックネームを使用しようとしました。

登録を確認すると、待望のアラートが表示されました。

これは、ユーザーに表示されるブロック内に許可後に表示されるため、詳しく説明することはできませんでした。 もちろん、CSRFを介してユーザーを承認し(承認の形式でした)、それをXSSにリダイレクトできますが、これらは私たちの方法ではありません。
Cookieまたはその他の場所で自分のIDを見つけられなかったため、彼は最大のプロファイルIDをソートし始め、それを見つけました。

おそらく、これは管理を停止して報告する可能性があります。アクティブなXSSがあり、ブラウザフィルターは怖いものではありません...しかし...私はもっと欲しい!
Google Power
habrahabr active xss dork:
site:.habrahabr.ru/special inurl:register
Googleは約10以上の結果を生成しましたが、そのほとんどは
habrahabr.ru/special/panasonic/3dのように、ほとんどがほとんどかろうじて機能していましたが、部分的にカバーされてい
ました 。
登録しようとすると、残念なことに、ユーザー名のパネルが開かず、コメントが送信されませんでした...何も機能しませんでした。 ページのソースを見て、素晴らしいものを見るまで、何も機能しませんでした。

気配りのある人は、登録中にニックネームの先頭にすぐに「->」を追加し、完全に機能するWebサイトを取得します。

htmlの内容:

それから、私はあらゆる種類の特別なページを調べ、管理とこの記事のスクリーンショットを収集しました。
コメントのプロファイル出力のXSS:

まとめ
その結果、10を超えるアクティブなXSSが見つかりましたが(そのうち3つの異なる種類の真実がありました)、1つのパッシブなXSSの下で、100,500のギフト招待がメールに落ちました! おそらく、インデックスのないページをスキップしたか、これらのプロモーションの一部の場所でフィルタされていないデータ出力に気がつかなかったかもしれませんが、現時点ではすべてが管理者によって即座に修正されました。