在我的burp suite测试期间,即使在使用预准备语句后,该工具也会报告一些SQL注入漏洞
例如:
SELECT address, state, status, plan, remarks, FROM archive
LEFT OUTER JOIN site_mappings ON site_dn = mrbts AND
siteid = id where ((UPPER(technology) like
UPPER(?)))
ps.setString(1, "%" +value+ "%");
以下是该工具使用的几个SQL注入字符串
1. '%2b(select*from(select(sleep(20)))a)%2b'
2. '
3. "
我有过滤功能白色列出值并提高SQLException以防止注入。
Pattern pattern = Pattern.compile("['\"*$]");
Matcher matcher = pattern.matcher(value);
if (matcher.find()) {
throw new SQLException("Invalid filter value");
}
它不适用于'%2b(select*from(select(sleep(20)))a)%2b'
。
问题详情:
在参数中提交了有效负载'+(select*from(select(sleep(20)))a)+
'。应用程序花了20011毫秒来响应请求,而原始请求的响应时间为24毫秒,表明注入的SQL命令导致了时间延迟。
如何创建正则表达式以防止SQL注入?