Hubros脆弱性ファインダー

それは夕方でした、何もありませんでした...それは行商人を驚かせることに決められました。 しかし、どのように? 有名なサイトでの脆弱性の一般的な検索は、誰にとっても興味深いものではなくなりました。 さて、ファンタジーをオンにします...結局、ユーザーもサイトを持っています! 耐久性を早急にチェックしてください!



それがすべて起こった方法:



行動計画を立てる必要がありました。 原則として、できるだけ多くのユーザーのページを解析してから、サイトのページを解析する方法がすべてでした。 次に、すべてをスキャナーに置きます。 そのようなもの...



どのように機能しますか?



ポイント1:スパースページ。

すべてがそれほど単純なわけではないので、... / usersページに必要な数のユーザーはいません。 再帰的にユーザーを通過し、そこにいるサブスクライバーから他のユーザーを取得することが決定されました。



好きなpythonが発見され、想像力が含まれ、これが書かれています:

import urllib2, re start = " " """    ,        """ page = urllib2.urlopen("http://habrahabr.ru/users/"+start+"/subscription/followers/").read() names = re.findall('<div class="username"><a href="/users/(.*?)/">(.*?)</a></div>', page) """  , ,    ,        """ def going(names): for name in names: page = urllib2.urlopen("http://habrahabr.ru/users/"+name[0]+"/subscription/followers/").read() names = re.findall('<div class="username"><a href="/users/(.*?)/">(.*?)</a></div>', page) """       """ base = open('habrs.txt', 'a') writed = 0 for item in names: base.write(item[0]+"\r\n") writed = writed + 1 print 'Saved habrs\'s: '+str(writed) going(names) going(names)
      
      







しばらく作業した後、十分な数のハラ人間がまばらになりました(約10k)。 これらの人々のほとんどが自分自身を繰り返していることは明らかです...だから何をすべきか?



ポイント2:ユニーク

考えて、私はパイソンを出荷することは不公平になると決めました。 したがって、phpのarray_uniqueのアイデアが頭に浮かびました。 考え-完了。



スクリプト全体は、ファイルを開いて閉じることで構成されますが、1つの関数での一意化です。

 <?php $arr = file_get_contents("habrs.txt"); $arr = explode("\r\n", $arr); $arr = array_unique($arr); $string = ""; foreach($arr as $name){ $string = $string.$name."\r\n"; } file_put_contents("habrs2.txt", $string); ?>
      
      







すべてがコンソールから起動され、すべてが正常に機能しました。

それは2k個のユニークなキャラクターより少し少ないことが判明しました...だから今、あなたは彼らのサイトに行き、見つける必要があります。



ポイント3:サイトの検索

再び私はpythonを手に入れ、これを書きました。 すべてが非常に簡単です。ファイルを1行ずつ調べ、ユーザーページに移動し、サイトを探します。 私たちはファイルの中に隠します。



 import urllib2, re sites = "" users = file("habrs2.txt") for user in users: user = re.split("\r\n", user)[0] page = urllib2.urlopen("http://habrahabr.ru/users/"+user+"/").read() site = re.findall('<a href="(.*?)" class="url icon" target="_blank">(.*?)</a>',page) if len(site) > 0: for site, fake in site: sites += site+"\r\n" with open("sites.txt", "a") as f: f.write(sites)
      
      







サイトはまともな量であることが判明し、繰り返されなかった場合、消化できない外観になりました。

それらをきれいにする必要があります...



ポイント4:きれいなウェブサイト



phpではpreg_matchを使用します。



 <?php $arr = file_get_contents("sites.txt"); $arr = explode("\r\n", $arr); $string = ""; foreach($arr as $name){ if (preg_match('/http:\/\/([^\/]+)\//i', $name, $matches)) { $name = $matches[1]; } elseif (preg_match('/^http:\/\/([^\/]+)$/i', $name, $matches)) { $name = $matches[1]; } $string = $string.$name."\r\n"; } file_put_contents("sites2.txt", $string); ?>
      
      







良いリストを取得します、ala:

yandex.ru

google.com

yahoo.com



これをすべてスキャナーに固定し、答えを取得し、ファイルに隠す必要があります...



ポイント5:スキャナーで飛行する



コンソールを操作するためのマイクロプログラムがpythonで作成されました。

このスクリプトは本番環境(仮想マシンのBackTrack r3)で記述されたため、私はメモリから書き込みます。そして、膨大な数の脆弱性の幸福な発見の後、このすべてが保存せずに閉じられたので(意味ではvirtualka)、スクリプト自体は保存されませんでした...

ポイントは、nikto.pl pearlスクリプトを60秒間実行し、この時間に間に合うようにサイトの名前を付けてファイルに書き込むことです(さらに処理しやすくするため)。

 import os, time sites = file("sites2.txt") for site in sites: os.system("perl nikto.pl -h "+site+" | tee "+site+".txt") os.system("pidof perl | tee perlID.txt") time.sleep(60) pid = file("perlID.txt")[0] os.system("taskkill "+pid)
      
      







site.txtの形式のファイルでこのスキャナーを使用した後、すぐに発見された脆弱性が検出されました(60秒以内)。



ポイント6:デブリーフィング



しばらく仕事をした後(夜に向けて)、どのような穴があったのかを見ることにしました...

habrasocietyはこの問題ではかなり古いものであるため(ある意味では情報セキュリティ)、一部のレポートには目を楽しませてくれるプラスがありませんでした...



しかし、300のサイトから「漏れやすい」サイトが見つかりました。



脆弱性の評価



1)。 すべての種類の開いているフォルダーおよびファイルへのアクセスが許可されていません。 (40〜サイト)

2)。 さまざまなSQLおよびXSSの場所。 (20〜サイト)

3)。 危険な情報交換プロトコル、非パスワードmemcached、および管理者のあらゆる種類の穴(ファイルへのアクセスのチェック、または空のパスワード=フルパスワードはありません)。 (10〜サイト)

4)。 フランクエラー(または欠陥)。 管理パネルのパスワードの欠如(スクリプトは最大12個のファイルを宣誓し、そこに何が面白いかを確認するために送信されました)。 (2サイト)

5)。 エラーは1回のコピーで発生しましたが、見落とし(私は思う)のために、rootログインでパスワードなし(デフォルト設定)でphpmyadminに直接アクセスしました。 このサイトでこれ以上の脆弱性は発見されなかったため、これは単なる見落としだと思います。



すべてのユーザー、すべてのサイト、すべての可能性のすべての機能がチェックされたわけではありません!



この投稿が誰かに役立つことを願っています(一部の管理者は突然彼のサイトで何かをチェックします)。

脆弱なサイト管理者に通知されます。 あなたの頭の中で前向きな考えを願っています!



All Articles