Shikata Ga Nai

Private? There is no such things.

WebGOATでSQL Injection (mitigation)⑧を演習してみた

Hello there, ('ω')ノ

 

ORDER BYフィールドを介してSQLインジェクションを実行してとのことで。

webgoat-prdサーバのIPアドレスを見つけて。

完全なIPアドレスは時間がかかるので、最後の部分はxxx.130.219.202ということで。

SQLインジェクションに対して脆弱ではないと。

 

まずは動作検証から。

すべてのボタンを押したり、ソートをしなおしたりと。

 

f:id:ThisIsOne:20200728104735p:plain

 

Burp Suiteのリクエストのパラメータを変更してみるとエラーが返ってきて。

エラー情報から下記がわかって。

 列名:id、hostname、ip、ma​​c、status、description

 テーブル名:servers

したがって、下記のSQL文が実行できればよいのですが、そういうわけにもいかず。

 select ip from servers where hostname='webgoat-prd'

 

f:id:ThisIsOne:20200728104641p:plain

 

現実的に実行できるパラメータは下記のようになって。

IPアドレスを1桁ずつ確認することになりますが。

case when (substring((select ip from servers where hostname='webgoat-prd'),1,1)=1 then id else hostname end

 

さらにBurp Suiteで送信するには、URLエンコードに変換する必要があって。

等号とスペースをトランスコードする必要があり。

column=(case+when+(substring((select+ip+from+servers+where+hostname%3d'webgoat-prd'),1,1)%3d1)+then+hostname+else+id+end)

 

上記を実行するとhostnameでソートされたのでIPアドレスの先頭1桁目は、1が正解で。

 

f:id:ThisIsOne:20200728110245p:plain

 

下記を実行するとidでソートされたのでIPアドレスの先頭1桁目は、2ではなく。

column=(case+when+(substring((select+ip+from+servers+where+hostname%3d'webgoat-prd'),1,1)%3d2)+then+hostname+else+id+end)

 

f:id:ThisIsOne:20200728110510p:plain

 

こんな感じで地味に確認していくのもありですが。

Intruder機能を使用することに。

 

f:id:ThisIsOne:20200728110948p:plain

 

変更したい箇所を追加するとマーキングされて。

攻撃タイプは、Cluster bombを選択して。

 

f:id:ThisIsOne:20200728111624p:plain

 

1番目のペイロードは、IPアドレスの桁目を1,2,3で設定して。

 

f:id:ThisIsOne:20200728111821p:plain

 

2番目のペイロードは、IPアドレスの数値を0~9で設定して。

 

f:id:ThisIsOne:20200728111901p:plain

 

レスポンスのソートからIPアドレスの先頭2桁目は、0が正解で。

 

f:id:ThisIsOne:20200728112638p:plain

 

レスポンスのソートからIPアドレスの先頭2桁目は、4が正解で。

 

f:id:ThisIsOne:20200728112819p:plain

 

ただ、確認するデータ量が多いと時間もかかるので。

Optionsタブでレスポンスのデータを表示させる方法もありかと。

 

f:id:ThisIsOne:20200728115409p:plain

 

レスポンスデータをソートすることで一つ一つ確認する必要もなく。

 

f:id:ThisIsOne:20200728115525p:plain

 

よって、下記のIPアドレスを入力するとクリアできた。

 104.130.219.202

 

f:id:ThisIsOne:20200728113038p:plain

 

Best regards, (^^ゞ