6
8

More than 1 year has passed since last update.

【悪用ダメ】XVWAちゃんにサイバー攻撃を仕掛けてみる(OS Command Injection編)

Last updated at Posted at 2021-10-06

初めに

どうも、クソ雑魚のなんちゃてエンジニアです。

本記事は前回紹介した総受けサイト「XVWA」に対してOSコマンドインジェクションを仕掛けてみたときのことをまとめてみようと思う。
今回はXVWAちゃんに攻撃を仕掛けるのでKaliを使用しなくてもOSコマンドインジェクションはできちゃいます。

さて、XVWAちゃんは一体どんな反応を見せるのか...乞うご期待...

※前回の記事は以下になります。

※悪用するのはやめてください。あくまで社会への貢献のためにこれらの技術を使用してください。法に触れるので。

目次

  • OSコマンドインジェクションとは?
  • ツール紹介
    • BurpSuite
    • FoxyProxy
  • 環境構築
  • OSコマンドインジェクション実践
  • まとめ

OSコマンドインジェクションとは?

IPAさんの記事を参考にすると以下のように説明されている。

ウェブアプリケーションによっては、外部からの攻撃により、ウェブサーバのOSコマンドを不正に実行されてしまう問題を持つものがあります。このような問題を「OSコマンド・インジェクションの脆弱性」と呼び、問題を悪用した攻撃手法を、「OSコマンド・インジェクション攻撃」と呼びます。
https://www.ipa.go.jp/security/vuln/websecurity-HTML-1_2.html

要するに公開サーバに対してコマンド実行させる攻撃ってことだ!
わりかしコマンド打てちゃえば何でもできちゃうので、恐ろしい攻撃である。

ツール紹介

今回OSコマンドインジェクションをするために使用するツールを紹介する。

BurpSuite

image.png

このツールはWebサイトの脆弱性検査で使用するツールの1であるローカルプロキシになるツールです。
こいつをXVWAとブラウザの間に挟んで様々なHTTPリクエストをXVWWAちゃんに叩き込む。
※私はお金がないので「Burp Suite Community Edition」という無料版を使用します。

FoxyProxy

FireFoxブラウザの拡張機能で、簡単にプロキシ設定を行えるツールである。
※今回使用するブラウザはFireFoxです。

環境構築

BurpSuite初期設定

まずBurpSuiteをダウンロードしていく。以下のURLからダウンロードします。自身にあった環境のものを選択してください。
※私はWindowsです。

Kaliの場合はコマンドでsudo apt install burpsuite要れることが可能です。

インストールが完了したらBurpSuiteを立ち上げて、以下の手順で設定をしてください。

①「Temporary project」→「Use Burp defaults」の順に選択。

1.png

②「Proxy」タブをクリック→「Options」タブをクリック。

2.png

③上記図でいう「127.0.0.1:8080」を選択→「Edit」をクリック。

3.png

④「Bind to port」のポート番号を自身の好きなポートへ設定。
 ※8080でもいいですが、ここら辺のポートはよく使うので別ポートでもいいのかなと。
 ※私は「8081」にしました。
⑤「Proxy」タブをクリック→「Intercept」タブをクリック

11.png

⑥上記青いボタンの「Intercept is on」をクリックし、「Intercept is off」へ変更
 ※「Intercept is on」の設定だとローカルプロキシで通信を止めてしまう。

FoxyProxy初期設定

続いてFoxroxyをダウンロードしていく。
以下の手順でダウンロードし、設定をしてください。

①FireFoxのブラウザメニューから「アドオンとテーマ」を選択します。

4.png

②上記検索欄「アドオンを探す」から「FoxyProxy」を検索する。
③「FoxyProxy Standard」をクリックし、「+ Firefoxへ追加」をクリック。

5.png

④ダウンロード後、右上に表示されるFoxyProxy Standardのアイコンをクリック
⑤「Options」を選択。
⑥「Add」を選択。

6.png

⑦下記に表示される「Title」に名前を記載し、右側の星マークに各種設定値を入力。「Save」する。
 ※私の環境では「localhost」と「8081」を設定。

7.png

※設定後は以下のように「Title」で設定した名前を冠ったアイコンが表示されます。

⑧「http://127.0.0.1:<設定したPort番号>」へアクセス。
 ※私の場合はPort番号は「8081」です。

9.png

⑨上記ページの「CA Certificate」をクリック、証明書をダウンロード。

続いて、ダウンロードした証明書を読み込んでいきます。
⑩FireFoxのブラウザメニューから「設定」を選択します。
⑪「プライバシーとセキュリティ」えおクリックし、下部の「証明書」項目の「証明書の表示」をクリック

10.png

⑫「インポート」をクリックし、ダウンロードした証明書を選択。
 これでサーバ証明書がダウンロードできたのでWarningが出ないはず。

OSコマンドインジェクション実践

さて、お待ちかねのOSコマンドインジェクションの時間だ。
XVWAへアクセスしていくのだが、今回は前項で設定したFireFoxからBurpSuiteを通してアクセスしていく。

まずXVWAサイトの「Attack」欄の「OS Command Injection」をクリックしてみよう。以下のページが表示されるはずだ。
12.png

上記ページの入力ホームにIPを打ち込むとそのIPへPingを打っているような表示がされるとおもうので、やってみよう!
※以下図はローカル環境に別のホストを立ててそこへPingしている様子である。

12.png

このことから以下のようなコマンドを打っている可能性が考えられる。

ping -c 3 <IPアドレス>

今回は以下のように「echo」コマンドを渡してインジェクションをしてみようと思う。

ping -c 3 <IPアドレス>; echo FUCKYOU

ここで登場するのがBurpSuiteさんだ。
「Proxy」タブの「HTTP history」タブを見てみよう。

13.png

このようにGETメソッドを飛ばした履歴があるはずだ。その履歴を右クリックし、「Send to Repeator」をクリックしよう。
続いてオレンジ色に光っている(はず)「Repeator」タブをクリックしてみたら、以下のようにRequestが見えるはずだ。

14.png

Requestの「target」クエリに注目しよう。ここに初めに試したIPが記載されているはずだ。
要するにこの「target」クエリにIPを入れてPingを実行するsystem関数あたりに渡していると考えられる。
じゃあこの「target」クエリに「echo」コマンドを渡してあげようじゃないか!
※このBurpSuiteのRequestに直接書き込めるので書いてみよう。

「target」クエリを書き換えて「Send」ボタンを押してみよう。
14.png

上記のようにクエリを書き換えて渡してあげると赤枠部分のように「FUCKYOU」が「echo」されているのがわかる。
ちなみにブラウザで見るとこんな感じである。
14.png

このように意図しないコマンドを打ち込めていることがわかる。
OSコマンドインジェクションの成功である。
怖い。。。

参考としてこのページのソースを見ると、クエリの値をそのままshell_exec関数に渡していることがわかる。
14.png

まとめ

第五回の投稿はいかがだったでしょうか?
XVWAちゃんにBurpSuiteを使った簡単なOSコマンドインジェクションの方法を紹介しました。
今回もセキュリティエンジニアの皆さんの助けになればなと思います。

 

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8