Shikata Ga Nai

Private? There is no such things.

Blind Command Injection - It hurtsを訳してみた

Hello there, ('ω')ノ

 

ブラインドコマンドインジェクションを。

 

脆弱性:

 コマンドインジェクション

 RCE

 

記事:

 https://shahjerry33.medium.com/blind-command-injection-it-hurts-9f396c1f63f2


概要 :

コマンドインジェクションは、ホストオペレーティングシステム上で。

任意のコマンドを実行する攻撃の一種で。

コマンドインジェクションは、アプリケーションが安全でないユーザ提供データを。

システムシェルに渡すときに発生して。

入力検証が不十分だと、コマンドインジェクションが可能で。

 

一般的にコマンドインジェクションを見つけるのは難しいですが。

コマンドインジェクションをテストしているときに下記に気づいて。

多くのペイロードをテストしましたが、何も機能せず。

 GET parameter/?search=

 

Burp Suiteで応答を確認したところ。

「このオブジェクトはJavaScriptスペースにいくつかの%symbols%を格納して。

libsがそれらを読み取れるようにする」

と書かれていたので。

ブラインドコマンドインジェクションである可能性があると考えて。

tcpdumpを使用して調べることに。

 

この脆弱性を見つける方法:

1.ターゲットのWebサイトにアクセスして。

 いくつかの一般的なパラメータ(今回は、/?search=)を確認して。

 

2.パイプ演算子を使用してペイロードを注入しようとすると応答がなくて。

 通常の200OKで。

f:id:ThisIsOne:20210922131339p:plain

 

3.テストに多くのペイロードを使用した結果。

 ヌルバイト文字を使用したバイパスである1つだけが機能して。

 

f:id:ThisIsOne:20210922131359p:plain

 

4.それがブラインドコマンドインジェクションであることを知っていたので。

 kaliで、tcpdumpを開始することに。


f:id:ThisIsOne:20210922131418p:plain

 

下記からペイロードを使用できて。

https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Command%20Injection

 

f:id:ThisIsOne:20210922134812p:plain

 

動作したカスタムペイロードは、下記のとおりで。

 http://www.mytarget.com/?search=%00{.exec|ping <MyIP>

 

ブラインドコマンドインジェクションをチェックするには。

tcpdumpの代わりにwiresharkを使用することもできて。

 

コマンドインジェクションをテストするためのいくつかの一般的なパラメータ:

/?query=
/?email=
/?id=
/?username=
/?user=
/?to=
/?from=
/?search=
/?query=
/?q=
/?s=
/?shopId=
/?blogId=
/?phone=
/?mode=
/?next=
/?firstname=
/?lastname=
/?locale=
/?cmd=
/?sys=
/?system=

 

コマンドインジェクションの脆弱性を自動的に検出するための優れたツールがあって。

 https://github.com/commixproject/commix

 

f:id:ThisIsOne:20210922131451p:plain

 

Commixは、Anastasios Stasinopoulosによって作成された自動ツールで。

このツールを使用すると、特定の脆弱なパラメータまたはHTTPヘッダで。

コマンドインジェクションの脆弱性を簡単に見つけて悪用できて。

 

緩和策:

コマンドインジェクションを防ぐために、アプリケーション層コードから。

OSコマンドを呼び出さないように。

 

Best regards, (^^ゞ