CTF SQL 注入题解(字符长度限制下的手工注入)

今天没事打打 CTF,本以为遇到 SQL 注入的题就丢 sqlmap 就行了,于是看到了下面这个图:

ctf-show.pngctf-show.png

实际上,sqlmap 在字符长度限制下的表现是这样的:

  1. 上限 ≥ 60 字符:正常直接上 sqlmap-r post.txt --level 2 --risk 2,可以完整探测、脱库。
  2. 上限 20‑50 字符sqlmap 可以用来确认漏洞,但是盲注 payload 容易超限,部分功能失效。
  3. 上限 ≤ 20 字符(像 web196 只有 16)sqlmap 基本无法正常工作,只能手工注入。

这道题就只能手工注入了。观察他的表达式,过滤空格,构造 payload:username=1;select(2)&password=2

注入效果如下图所示:

ctf-show.pngctf-show.png