
今日、LightShotのインスタントスクリーンショットのサービスの「脆弱性」に出会いました。
それはすべて、私が別のスクリーンショットをアップロードし、ハブに関する
最近の記事を思い出したという事実から始まりました。ユーザーデータは総当たりでリンクによってマージされました。
URLの1文字を変更しようとして、他の人のスクリーンショットが親切に渡されました。
始めるために、
http://prntscr.com/1npf9nのようなリンクを生成するマスクを
見つけようとしました。いくつかの実験の後、私はマスクが
prntscr.com/1 [a-z0-9]の形式である可能性が最も高いことに気付きました(数字1が4〜5個のランダムな文字から来た後)
また、
http://prntscr.com/loginと
http://prntscr.com/adminのリンクも試してみました。これらのスクリーンショットも見ました。
ほとんどの場合、アルゴリズムがわずかに書き直され、現在のリンク生成アルゴリズムは、すべての組み合わせを使い果たして、リンク長が7文字に増加するか、マスクがprntscr.com/2[a-z0–9]になるように設計されています。
その過程で、サービスの1つの機能を発見しました。サーバーに画像を保存するのではなく、
imgur.comおよび
imageshack.usの APIを介して
アップロードします。
私は好奇心に悩まされました:「すべてのスクリーンショットをダウンロードすることは可能ですか?」
そして、小さなスクリプトを書くことにしました。 最初はPythonで書きたいと思っていましたが、作業中のラップトップにはインストールされませんでしたが、DenwerとPHPが手に入りました。
急いで5分で書かれた私のコードのために私を蹴らないでください。 彼はかなり働いています。
<?php set_time_limit(0);
ブラウザで実行した結果(ご覧のとおり、生成されたランダムリンクの〜95%がスクリーンショットを提供します)

その結果、たくさんのスクリーンショットをアップロードしました。その中には、個人の写真、コードのスクリーンショット、その他多くの興味深いものがあります。
UPD 2018: lightshotで発生した変更を考慮してスクリプトを修正しました。 今では再び動作します。