ual
获得系统信息
?
防控方法:开启DBFW的风险评估union评测,以及系统表的评测
?
3)利用条件语句
?
攻击方法一:基于时间
?
对于oracle来说,可以使用sleep,或者UTL_HTTP、HTTPURITYPE向一个死的IP地址发送一个HTTP请求来实现相同的效果。如果指定一个不存在监听者的IP地址,那么下列查询将一直等待连接知道超时:
?
selectutl_http.request(‘http://10.0.0.1’)from dual
select HTTPURITYPE(‘http://10.0.0.1’).getclob()from dual
?
?
攻击方法二:基于字符串转换
?
对于传入参数是字符串的,可以用char函数转化其中一个字符,根基返回的结果可以实现SQL注入。
?
例如:
?
select * from productswhere brand=’ac’+char(108+(case when system_user=’sa’ then else 0 end))+’e’
防控方法:将char作为暴力破解函数。
?
4)提权行为
?
在Oracle中,通过Web应用的SQL注入来提升权限非常困难。大多数权限提升方法均需要PL/SQL注入,而这种注入很少见。如果找到一种PL/SQL注入漏洞,可以通过注入PL/SQL代码来提升权限或在
数据库服务器上启动操作。
?
不需要PL/SQL注入的例子是:使用在Oracle的mod_plSQL
组件中发现的一个漏洞。
?
防控方法:使用访问控制或者风险评估,加入用户权限控制或高危操作
?
除了上述几种常见的SQL注入行为之外,DBFW内置可防护的SQL注入攻击行为还包括:窃取hash口令、利用操作
系统攻击等。并且可以根据:风险级别、告警通知、SQL命令、命令特征、风险函数、表达式、类型、操作人、操作等几项元素自定义SQL注入防护规则。