内容
復習
建築
- PHP 5.2 / 5.3
- ロード期間(テープの自動ロードシャットダウン)
- メッセージのラッパー
- モバイルバージョンとフルバージョンの異なるコード
セキュリティ
- 特徴
- ログイン
- アンチCSRFトークン
- iframeを禁止
- コンテンツサーバーで無効にされたPOST
- 機能のバグ
- 検索で年齢を調べる
- 虫
- Xss
- 名前のないドキュメントをダウンロードする
- 閉じたアルバムからajax写真でアップロード(?)
- どこでもアンチCSRF
その他
復習
まず最初に、古くて興味深い記事をいくつか読んでください。
- よく似た2つの記事- [1] 、 [2]
- 少し異なる側面-spb-borodin.livejournal.com/596.html
firebugをオンにして、単にWeb開発者の側からサイトを見ると、内部に混乱があることがすぐにわかります(記事の最後に戻ります)、ディスパッチャの不足(おそらく負荷を減らすため)、散らばったスタイルとjsファイル、はるかに。 しかし、一般的に-忙しい場所でnodejsを使用する単純なWebアプリケーションであり、残りは「標準」(「ハニー」とも言います)開発技術(未公開のデータベースを除く。バランサーの設定も破棄します)。
建築
- PHP 5.2 / 5.3
どのバックエンドに到達するかに応じて、アプリケーションを操作する過程で、さまざまなバージョンのphp(5.2 / 5.3)に出会います。 つまり これは、PHP 5.3の革新よりも、インタープリター自体のさまざまなバグの修正により、PHPバージョンが変更されている可能性が高いことを示唆しています。 ところで、スホシンはインストールされています - ロード期間(テープの自動ロードシャットダウン)
最も可能性が高いのは、負荷を調べてスクリプト構成を動的に調整するモニターが作成されていることです。 たとえば、夕方遅くに、テープの自動ロードがオフになります。これにより、数百万人のユーザーで、負荷を大幅に削減できます。 - メッセージのラッパー
メッセージに異なるコンテンツを追加する機能はかなり原始的ですが、これは本当かもしれません。 ビデオを追加すると、メッセージの送信は次のようになります。
act=a_send&al=1&chas=XXXXXXXXXXXXXX&from=box&media=video%3A-22558194_163667075&message=&title=&to_ids=6254003
つまり 添付ファイルのタイプ(ビデオ、オーディオ、マップなど)とその内部リンクが単純に示されています。 私は長い間この瞬間を掘り下げて、そこに何かを入れようとしました-それはうまくいきませんでした。
- モバイルバージョンとフルバージョンの異なるコード
これは明らかかもしれませんが、騒ぎはありません。 ほとんどの場合、コードの抽象度が低いため、メソッドを取得して別の(モバイルなど)インターフェースで呼び出すことができません。 これには確認があります。たとえば、さまざまな翻訳があります(ステータス「未婚」は、フルバージョンでは「シングル」、モバイル版では「未婚」として英語に翻訳されます。このチケットを書きました)。 しかし、これらは単なるテンプレートであり、間接的に異なるコードを指す他のポイントがあります(コードが切り捨てられて重複しているだけかもしれません)
セキュリティ
このセクションを開始する前に、ユージンカスペルスキーの投稿を参照しますが、一部のポイントはもはや関連しません-e-kaspersky.livejournal.com/70000.html
- 特徴
- ログイン
これは最初のポイントです。 承認は次のスキームに従って行われます-フォームのアクションは、httpsによってlogin.vk.comに実行され、そこで自身(https://login.vk.com)およびvk.com (remixsid)のCookieが設定されます。 「動作している」ドメインのCookieに問題がある場合(変更、最後のIPが一致しなかったなど)、login.vk.comへのリダイレクトが自動的に発生します。 そして、このブラウザで実際にパスワードが入力された場合、永続的なCookie(元のパスワードが入力されたときに設定された)があり、自動的にログインします。 そうでない場合(たとえば、Cookieが取り去られて別のIPから入力された場合)、アカウントに移動できません。 ちなみに、XSSが興奮していたことがわかりました。 実際、Cookieを削除しても何も得られません(もちろん、login.vk.comのXSSでない場合)。 最後のアクティブなセッションも記録されます-6ピース、「ライブ」と見なされます - アンチCSRFトークン
私は(私だけでなく、私も)この方法がCSRFに対する最良の保護であると信じています。 しかし、彼らがどのようにそれを美しく実装したか...最初の瞬間は標準であり、予測できないユーザー向けの一意のコードがあらゆるアクションに対して生成されます。 ただし、ここでのトークン機能は、アクションパラメーターに依存することです。 この場合、from_id、to_id、action_id、さらにいくつかのパラメーターがあります。 それらすべてからハッシュが取得され(おそらく独自の高速72ビットハッシュ関数)、ソルトが追加される可能性が最も高く(静的?)(最近では、from_idが明示的に渡されていません)、フォームに追加されています。 つまり 異なるパラメーターを持つ各アクション-異なるトークン。 - iframeを禁止
実際、主題。 サイトをiframeで表示することはできません。これは正しいです。 サイトがiframeに表示されないようにするには、さまざまな方法があります。 - コンテンツサーバーで無効にされたPOST
さまざまな理由から、サーバーを使用可能なメソッドに制限するのは事実です。 すべてのコンテンツサーバーでPOSTを無効にしました。
- ログイン
- 機能のバグ
- 検索で年齢を調べる
ちょっとしたトリック。 人の年齢がいっぱいになっているが、それを表示するように設定されていない場合は、検索で人を見つけて年齢を選択し始めると(フィルタで)見つけることができます。 おそらく、ハイパービアード機能のバグです。
- 検索で年齢を調べる
- 虫
- Xss
おそらく、それはすべて、私自身のためにXSSを見つけたいという事実から始まったのでしょう。 それはサイトのメインモジュールで見つかりました-検索。 ベクトルは次のようなものでした:
vk.com/search?c%5Bage_from%5D=alert(String.fromCharCode(88, 83, 83, 32, 101, 120, 97, 109, 112, 108, 101, 33))&c%5Bname%5D=1&c%5Bsection%5D=people
アラート画面
ソースコード
純粋な形式で年齢を検索するための数値は、パラメーターによってjs関数に代入されました。 ここで私が「キャッチ」した唯一の制限は、引用符を使用できないことです(それらは変換されました)。これは、文字列関数によって簡単にバイパスされます。 1〜2日で文字通り修正されました。 彼らには「報奨金」プログラムはありません。 それに応じて、彼らは言った-修正、チェック、それだけです。 PS Snifferは正常に実装されましたが、承認システムに関する最初の段落のために機能しませんでした。
- 名前のないドキュメントをダウンロードする
このバグと次のバグには、調査する十分な時間がありませんでした。 しかし、そのため、記事は常に延期されました。 ドキュメントをダウンロードするとき、彼はファイル拡張子を見て、ファイルを受け入れるかどうかを決めます(essno、htaccessをダウンロードして、拡張子によってファイルロールを再割り当てしようとしました)。 .modelファイルにバグがありました。スクリプトでは見逃していましたが、常に「404」です - 閉じたアルバムからajax写真でアップロード(?)
目的のドキュメントのajaxリクエストを作成することで、写真の完全な画像(ニュースフィードで気づいたと思います)を取得できます。この画像は、個人のプライバシー設定によって閉じられます。 たぶんここを掘る価値がある - どこでも反CSRFトークン
本当にそうです。 しかし、私が見つけた場所は重要ではありませんでした。
- Xss
その他
- 削除後もファイルは削除されません
とにかく多くのユーザーがこれを心配しています。 最初の記事を読むと、これについて2つのバージョンがあることがわかります。ハードドライブ上のデータの断片化とデータの整合性の監視の問題です。 2番目のポイントは本当に複雑です。 同じ写真を削除できますが、どこかで使用される可能性があります。 ドキュメントの使用例を使用してデータベース全体を分析するのは簡単ではありません。 しかし、大丈夫、ホットリンク。 しかし、ドキュメントはスクリプトを介したアクセスによってのみアクセスできますが、検証を追加することは可能ですが、削除後もドキュメントは利用可能なままです。 テクニカルサポートの答えは、「ドキュメントを削除しても、参照によりアクセス可能になる」というものでした。 - デフォルトではhttpsは有効になっていません
カスペルスキーからの手紙に戻る-今のところ、ブックマークをhttpからhttpsに強制的に変更することをお勧めします(まだ行っていない場合)。 mitmは非常にシンプルなので、rootを備えたAndroidスマートフォンであれば十分です。 Droidsheepがインストールされており、2、3のボタンをクリックするだけで、VK Cookieを解読するだけでなく(それだけでなく)、自動的にそれらのサイトに移動します。
ゴミ箱
- 控えめですが、 vk.com / config.phpは存在します:)一般的に、そのようなものはhtdocsに渡されます
- vk.com/admin.html
- vk.com/test.html
- vk.com//login.html
- vk.com/test.php
- vk.com//index.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000-PHP EGGS
- vk.com/.DS_Store-WTF ? マック?
そして、「ささいなことで」。 ベースがきれいになり始めます。 たとえば、通信でのユーザーとのメッセージの制限は大きいですが、すでにクリアされています。 他のさまざまな開発により、ノートブックにゴミが残りました。
おそらくどこかで私はリソースの仕事を理解するのを間違え、あなたは上記のポイントのいくつかについてより明確なアイデアを持っているか、自分で何かを勉強しました-コメントで聞いて議論したいです。