目次
個人センターの個人データにファイルアップロードポイントがあります
バックグラウンドユーザーの個人データの中には、ファイルアップロードポイントがあります
NiushopCMS 侵入テスト
サイトホーム
メッセージを収集する
IP情報を取得してWebサイト情報を取得します
ポート 22 は高いリスクにさらされていることが判明
Yujian スキャンポート情報
上記のポート情報を確認します。
nmapスキャン情報
スキャンされたポート情報:
スキャンディレクトリ
ステータスコード 200:
追加のディレクトリ情報:
弱いパスワードの爆発
情報を収集したところ、ポート 22 が開いていることがわかりました。リスクが高いため、弱いパスワードのブラスティングを試してください。
接続に失敗しました。パスワードが脆弱でない可能性があることを示しています
弱いパスワードを使用してデータベースを爆破してみます
またチェックアウトされていないため、弱いパスワードがない可能性があります
バックグラウンドでログインしてみます。
アカウントのパスワードを入力し、ブラスト用のパケットをキャプチャしてみ てください。最初にアカウント管理者の使用を試み、ブラスト用のスナイパーモードを選択して、ブラストが成功したかどうかを確認してください。
パケットをキャプチャしてデータを取得し、Intruder モジュールに送信して、スナイパー モードを選択します。
パスワード辞書を選択して爆発させます
観察により長さに応じて判断する
パスワードは: admin123456
ログインに成功しました バックグラウンド アカウント: 管理者 パスワード: admin123456
新しい管理者ユーザーを追加できます。
ファイルアップロードの脆弱性
個人センターの個人データにファイルアップロードポイントがあります
ファイルのアップロード ポイントを見つける
アップロードを試行し、パケットを取得してデータ情報を取得し、ファイルが正常にアップロードされ、アップロードされたファイルのパスを確認します
画像をアップロードするパスを見つける
アップロードに成功しました。確認してください
ファイルのアップロード ポイントにアクセスし、php ステートメントが解析され、トロイの木馬ファイルが正常に作成されたことを確認して、アクセスして php ステートメントを実行してみます。
Godzilla を使用して接続し、サーバー権限を正常に取得します
バックグラウンドユーザーの個人データの中には、ファイルアップロードポイントがあります
画像をアップロードし、パケットをキャプチャしてデータ情報を変更し、php ステートメントを画像に挿入してから、パッケージをリリースしてアップロードが成功したことを確認してください。
対応するアップロード パスにアクセスして、解析されているかどうかを確認します。
正常に解析されました。php ステートメントを 1 文のトロイの木馬に置き換えるか、1 文の php を使用してファイルを生成し、トロイの木馬に書き込みます。例として、 1 文の PHP でファイルを生成し、それをトロイの木馬に書き込みます。同じ原則が一文のトロイの木馬にも当てはまります
アップロードされたファイルのサフィックスを変更し、PHP トロイの木馬ステートメントを画像に挿入して、パッケージに含めます。
正常にアップロードされました。解析されたかどうかを確認します
対応するアップロードリンクにアクセスしてください
先ほど挿入した文で、生成されたトロイの木馬ファイルが正常に生成され、解析できることを確認します。
アントソードまたはゴジラを使用して接続します
接続は成功しました。追加するだけです
背景記事管理所にファイルアップロードポイントもあります
試行手順は上記と同様 で、一文のトロイの木馬でもよいし、ファイルを生成してトロイの木馬に書き込む一文でもよい。
アクセスしたらphp文を入力すると解析されます
接続するサードパーティ製ツール Ant Sword
接続に成功しました
サーバー権限を正常に取得しました:
その他、ファイルのアップロードポイントは他にもあります。この方法を順番に試してみてください。(同様に、同じアイデアと方法をアップロードして検証することができます)
ビジネスロジックの脆弱性
任意に商品を購入し、パッケージをキャプチャし、データパッケージ内の(数量情報)数値情報を変更します
パケットをキャプチャする
パケットを置くだけです。次のパケットも同様です。num を -1 に変更します。
連続する 2 つのデータ パケットを変更し、数値を -1 に変更してから、パケットを解放します (数値は任意の数を選択できます。変更の前にマイナス記号を追加するだけです)。
袋を置き続けると、支払いが0元になります。
このメソッドが実行されたことが判明すると、在庫不足のインターフェイスがポップアップ表示されます。数量を再度変更して、0.000001 に変更して再試行してみます。
ランダムに製品を選択してみましょう:
クリックして購入:
データ パケットを取得し、データ パケット情報を変更します。
購入数量を変更する
パケットを入れて、2 番目のパケットをもう一度観察してください。
もう一度見直す
梱包するだけです。
支払いインターフェイスが表示されます。
注文の支払いが完了しました:
メンバー センターにアクセスして注文を表示します。
0元ショッピングが実現できます。
また、クーポンの繰り返し使用にはビジネス ロジックの抜け穴があり、支払いインターフェイスで注文が送信された後、データ パケットを取得するためにパケットがキャプチャされ、そのデータ パケットが複数回送信され、返品は正常な操作となります。個人インターフェイスに移動して、注文、クーポンが繰り返し使用されたかどうか、および成功したかどうかを確認します。
XSS
相互作用がある場合は、xss があるかどうかを順番に確認してみることができます
Webサイトの記事管理を裏で行っている
保存を試行した後、ポップアップが表示されないことを確認します。
エフェクトをプレビューし、ポップアップ ウィンドウを見つけます
記事の中央にポップアップウィンドウが表示されます。
同様にCookie情報を取得します
Cookie情報の取得に成功しました
XSS プラットフォームを使用して情報を検出し、ログインをバイパスすることができます。
この悪意のあるステートメントのコードをそこに挿入します
作成したインターフェースにアクセスします
プラットフォームは情報を記録します
展開して情報コンテンツを表示します
拡張情報:
上記のURL情報とCookie情報を保存し、Hackbarを使用してログインを回避します。
フォアグラウンドに戻り、先ほどの URL と Cookie 情報を使用して、ログインをバイパスしてみます。
正常にバイパスされました:
正常にバイパスされ、バックグラウンド管理インターフェイスに入りました。
検証テストを確認したところ、次のことがわかりました。
基本設定ではテスト後も XSS が残っています
フロントデスクはポップアップウィンドウの変化を観察します
テスト後、この型は XSS に格納されていることがわかりました。
他の場所へのジャンプもポップアップ表示されます。
他にもインタラクティブな場所はありますが、同じように抜け穴もありますので、何度も試してみてください。
SQLインジェクション
検証の結果、フォアグラウンドで SQL インジェクションが行われていることが判明しました
注入ポイント:
パケットをキャプチャしてデータを取得し、sqlmap ディレクトリの txt ファイルに保存します。
sqlmap ツールを使用して次を実行します。
テスト後、sqlmap がデータベースを使い果たすことはなく、データベースを爆発させることもできません。
同じ位置に、価格などの SQL インジェクションもあります。
注入ポイントにエラーがあります:
sqlmap ツールを使用して、再度実行してみます。
ブール型の注入:
python sqlmap.py -r test.txt --technique=B --batch
正常に実行されました:
正常に注入できるメソッドとペイロードがなくなる
噴射タイプとペイロード:
爆数据库
python sqlmap.py -r test.txt --technique=B --batch --dbs
対応する Web サイトのデータベースを見つけて、テーブルを展開します。
次に、データテーブルを分解します。
爆数据表
python sqlmap.py -r test.txt --technique=B --batch -D niushop_b2c --tables
待機すると、データ テーブルの情報が表示されます。
データベース内のデータテーブル情報は以下のようになり、正常に展開されました。
データテーブルの数が多いことがわかります。
観察を通じて、必要なものが見つかりました。重要なデータ テーブルの 推測は、sys_user が データ テーブル内のフィールドを展開し、列情報を取得することです。
尝试爆破
python sqlmap.py -r test.txt --technique=B --batch -D niushop_b2c -T sys_user_admin --columns
sys_user_admin データ テーブル:
表にリストされている情報は正常に公開されました
観察しても、欲しい情報はありません。引き続き他のデータテーブルを展開します。
sys_users データ テーブル:
获取数据表当中的列的信息:
python sqlmap.py -r test.txt --technique=B --batch -D niushop_b2c -T sys_user --columns
結果は以下のようになります。
より機密性の高いデータ情報、ユーザー名とパスワードが存在することが観察されています。
上記の情報を取得した後、フィールド情報を展開し続けます。
尝试爆破列的信息,爆破字段,获取重要的信息用户名和密码
python sqlmap.py -r test.txt --technique=B --batch -D niushop_b2c -T sys_user -C user_name,user_password --dump
データ情報の一部:
データのパスワードが MD5 で暗号化されていると推測し、MD5 を使用して復号化を試み、ランダムに 1 つを見つけて試してみます。
引き続きバーストデータ情報を待ちます。
ユーザーとパスワードの詳細情報を表示する
管理者情報を観察し、復号化します。
管理者ユーザーとパスワード情報を取得する
ブラストは成功し、ユーザーとパスワード情報は正常に取得されました。
データベースの爆破は成功しました!
検証後、バックグラウンドに SQL インジェクション ポイントがあることがわかります。
データベース管理のクエリインターフェイス設定
エラーメッセージが表示される
パケットをキャプチャしてデータパケットを取得し、それをsqlmapのディレクトリに置き、sqlmapを使用して実行します
sqlmap 実行データ:
データベースのバースト python sqlmap.py -r test.txt --batch --dbs
待った後:
sqlmap ツールを使い切ることはできません。ただし、SQL インジェクションがあるので、他のインジェクション方法を試すこともできます。
バックグラウンドでのユーザーの SQL インジェクション ポイントもあります。
注射してみる
注入後、エラーが報告されます。
データ パケットを取得し、sqlmap のディレクトリ下のテキスト ファイルに保存します。
sqlmap ツールを使用してデータを実行します。
インジェクションステートメントとデータベースが不足しました
データベースのバースト python sqlmap.py -r test.txt --batch --dbs
現在のデータベースを確認する python sqlmap.py -r test.txt --batch --dbs --current-db
データベース内のデータテーブルを展開します python sqlmap.py -r test.txt --batch --dbs -D niushop_b2c --tables
必要な最も重要なデータシートを見つけて、そこに含まれる情報を取得します
予備的な判断としては、このテーブルは 次のテーブルの列情報を爆破するということです python sqlmap.py -r test.txt --batch --dbs -D niushop_b2c -T niushop_b2c --columns
最も必要な列、ユーザー名とユーザーパスワードに関する情報を見つけます。 Blast ユーザー名とユーザーパスワード python sqlmap.py -r test.txt --batch --dbs -D niushop_b2c -T sys_user -C user_name,user_password --dump
一部のユーザー情報:
MD5暗号化されたパスワードを解析することで、復号するパスワードをランダムに見つけます
デコードに成功しました。
データが sqlmap から使い果たされた後、一部のパスワードがデコードされたことが観察されました。暗号化された括弧内はデコードされた情報です。
内容は参考および学習のみを目的としています。
記事が不適切な場合は批判・修正大歓迎です!