您当前的位置:首页 > 电脑百科 > 安全防护 > 数据安全

SQL注入获取数据的几种原理

时间:2019-12-10 13:06:27  来源:  作者:

什么是SQL注入呢。SQL注入就是WEB应用没对用户输入的数据进行限制和检查,导致恶意攻击者可以通过网页的显示情况不同甚至是直接显示数据而获取数据库数据的一种攻击方式。

首先看下回显注入,这个简单,这个SQL注入是由于浏览器没有对URL后面id的参数进行限制,我们通过联合查询这样的SQL语句就能查询到有哪些数据库并且直接显示在网页上,想要查询其他的数据,更改查询语句即可。

SQL注入获取数据的几种原理

 

现在我们来说下盲注,就是你不能从网页上直接获得数据,比如说我在本地搭建了一个网站,它的网页URL是这样的:

http://localhost/index.php?id=1,它的网页跟上图不一样,不直接显示你要查询的数据,只会显示两种不同的情况,我们把它认为是TRUE和FALSE,通过and判断?id=1 and 1=1 它是TRUE,?id=1 and 1=2 它是FALSE,也就是说and后面的数据是对的,就是TRUE,是错的,就是FALSE。当然实际不会直接显示TRUE和FALSE,而是两种不同的页面而已。

这个时候我们该怎么要获得我们要查询的数据呢,那就要利用ASCII,ASCII就是给每种英文字符和特殊符号的一种编码,比如A-65、a-97等,我们先看下面这样的URL:

http://localhost/index.php?id=1’ and ascii(substr((select database()),0,1))>97 --+

这个我从里向外解析下,select database() 这个查询数据库的语句;substr() 这是php的截取字符串函数,第一个参数是查询到的数据库,第二个参数0是索引,也就是从截取字符串的第一个字母开始向后截,第三个参数1就是只截取1个字符,也就是说substr()取到的数据时数据库名的第一个字母,而ascii()这个函数就是取这个字母的ASCII码值,然后与数值97比较。

首先我们是不知道数据库名的,如果这个库名的第一个字母是a,那么>、<97都显示FALSE,=97显示TRUE;数据库名第一个字母如果不是a,通过更改ASCII码值97,利用二分法可以减小步骤快一点也就是>97或<97,然后在取97区间的一半;同理判断数据库名其他的字母通过更改substr()第二个参数索引就行,查表名同理,修改substr()第一个参数里的select语句就行,通过这种方法我们就可以取得数据库中得信息了。。

这就是SQL注入盲注获取数据的原理,当然这样是很慢,写脚本交给机器跑就行,这也是我们平常为什么通过and 1=1 和 and 1=2 来判断SQL注入的原因。

现在我们再看一种SQL注入获取数据的方式:报错注入,这个漏洞影响CMS系统joomla,版本号为3.7.0,CVE编号为CVE-2017-8917。搭建环境一套是PHPstudy系统,这个系统集php、MySQLApache于一体的环境,将我们的joomla放到WWW目录,然后进入joomla主页完成安装即可,这个简单,不上图了,我们看一下sql注入存在的位置。

SQL注入获取数据的几种原理

 

这里我先解析一下报错注入获取数据的原理,我用的报错函数是updatexml(Doc,XPathstring,new_value),Doc是文档对象,new_value是用来替换XPathstring字符串的值,原理就是XPathstring字符串形式是:'html/body/h1',利用concat()组合出来的字符串不是XPath形式的字符串来产生报错从而执行congcat()函数里的SQL语句,这里的0x3a是:,这里用来concat()函数拼接的,你也可以换其他的,不用纠结,总的需要一个来作为拼接参数。

解析一下这个注入的缘由,这个组件的构造函数说明位于componentscom_fieldscontroller.php,这里我们看出要加载com_fields这个组件,需要两个且条件,即 view=fields&&layout=modal,即构造的URL:http://localhost/Joomla_3.7.0/index.php?option=com_fields&view=fields&layout=modal

SQL注入获取数据的几种原理

 

该组件的模型存在注入问题位于administratorcomponentscom_fieldsmodelsfields.php,在getListQuery函数里,getState()函数获取list的fullordering的键值,而这里没有对fullordering进行严格的过滤,就把它传给查询参数。

SQL注入获取数据的几种原理

 

而State状态这个参数会被View视图获取,位于administratorcomponentscom_fieldsviewsfieldsview.html.php页面,会作为display函数的一个参数,用于展示在网页上,这也是这个报错注入回显在网页上的原因。

SQL注入获取数据的几种原理

 

由此,最终的exp注入方式如下:

http://localhost/Joomla_3.7.0/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(1,concat(0x3a,(select%20database()),0x3a),1)



Tags:SQL注入   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
前言目标是一大学,在一次挖洞过程中遇到个sql注入,尝试进一步利用扩大危害,漏洞已报送平台进行了修复私信我获取网络安全学习资料 1.2000多本网络安全系列电子书 2.网络安全标...【详细内容】
2021-11-26  Tags: SQL注入  点击:(21)  评论:(0)  加入收藏
本人也是小白一枚,大佬请绕过,这个其实是六月份的时候做的,那时候想多点实战经验,就直接用谷歌搜索找了一些网站,这个是其中一个1、目标网站 2、发现有WAF防护 3、判断存在注入...【详细内容】
2021-10-19  Tags: SQL注入  点击:(52)  评论:(0)  加入收藏
(一)SQL注入。1.如何理解SQL注入? SQL注入是一种将SQL代码添加到输入参数中,传递到SQL服务器解析并执行的一种攻击手法。2.SQL注入是如何产生的? web开发人员无法保证所有的输入...【详细内容】
2021-09-17  Tags: SQL注入  点击:(47)  评论:(0)  加入收藏
一 前言本文将针对开发过程中依旧经常出现的SQL编码缺陷,讲解其背后原理及形成原因。并以几个常见漏洞存在形式,提醒技术同学注意相关问题。最后会根据原理,提供解决或缓解方案...【详细内容】
2021-09-17  Tags: SQL注入  点击:(67)  评论:(0)  加入收藏
前言本人ctf选手一名,在最近做练习时遇到了一些sql注入的题目,但是sql注入一直是我的弱项之一,所以写一篇总结记录一下最近学到的一些sql注入漏洞的利用。可回显注入联合注入在...【详细内容】
2021-08-26  Tags: SQL注入  点击:(60)  评论:(0)  加入收藏
前言最近挖edusrc的时候遇到有注入点但是有waf绕不过,头疼。 可以看到还是phpstudy建站的,太熟悉了这个,不知道这个什么waf各位师傅知道的可以评论一下,所以写这篇文章是供各位...【详细内容】
2021-08-13  Tags: SQL注入  点击:(66)  评论:(0)  加入收藏
1. 使用 Burpsuite: 1. Capture the request using burpsuite. 2. Send the request to burp scanner. 3. Proceed with active scan. 4. Once the scan is finished, l...【详细内容】
2021-08-04  Tags: SQL注入  点击:(74)  评论:(0)  加入收藏
0&times;00:前言对于MYSQL知识的一个初总结 0&times;01:正文 MYSQL数据库特性1.Mysql数据库默认不区分大小写,利用此特性可以进行大小写过正则匹配,举个简单的例子,有的题目中只...【详细内容】
2021-07-29  Tags: SQL注入  点击:(88)  评论:(0)  加入收藏
在本地搭建服务器,httpd-vhosts.conf 中设置本地绑定的域名: 其中,zzzphp为下载的zzzphp cms的内容。然后,本机上的zzzphp cms的目录结构为如下: 在按照要求安装好cms后,本地cms的...【详细内容】
2021-07-16  Tags: SQL注入  点击:(80)  评论:(0)  加入收藏
得到一个像原来老师一样督促你、关心你的人很难。。。---- 网易云热评一、常用命令及函数1、order by排序,获取数据有几个字段,后面小于等于字段数,都会返回结果,大于字段数返回...【详细内容】
2021-05-13  Tags: SQL注入  点击:(224)  评论:(0)  加入收藏
▌简易百科推荐
众所周知,Windows系统流氓软件众多,其中不乏出身大厂的产品。这些带有流氓性质的软件,很多都会偷偷扫描系统数据,读取用户文件,造成电脑卡顿拖慢不说,还严重侵害了个人隐私,造成巨...【详细内容】
2021-12-06  趣玩APPS    Tags:流氓软件   点击:(16)  评论:(0)  加入收藏
前言目标是一大学,在一次挖洞过程中遇到个sql注入,尝试进一步利用扩大危害,漏洞已报送平台进行了修复私信我获取网络安全学习资料 1.2000多本网络安全系列电子书 2.网络安全标...【详细内容】
2021-11-26  IT野涵    Tags:sql注入   点击:(21)  评论:(0)  加入收藏
互联网时代,不论是个人还是组织,都将数据视为一项重要的资产。为了便于存储、管理,企业常常会为各项数据建立一个数据库,如果没有做好安全风险防护,一旦数据库被攻占,企业将迎来很...【详细内容】
2021-10-28  快快网络   企鹅号  Tags:数据库   点击:(50)  评论:(0)  加入收藏
前言(可能思路狭隘,有缺有错,师傅们多带带)【查看资料】Author: 0ne本篇文章数据来源于18+省市级别HVV,90+单位失陷报告。(一部分是笔者的参与,一部分是薅的公司其他师傅的报告...【详细内容】
2021-10-28  IT野涵    Tags:缺口   点击:(46)  评论:(0)  加入收藏
本人也是小白一枚,大佬请绕过,这个其实是六月份的时候做的,那时候想多点实战经验,就直接用谷歌搜索找了一些网站,这个是其中一个1、目标网站 2、发现有WAF防护 3、判断存在注入...【详细内容】
2021-10-19    博客园  Tags:SQL注入   点击:(52)  评论:(0)  加入收藏
一 前言本文将针对开发过程中依旧经常出现的SQL编码缺陷,讲解其背后原理及形成原因。并以几个常见漏洞存在形式,提醒技术同学注意相关问题。最后会根据原理,提供解决或缓解方案...【详细内容】
2021-09-17  woaker    Tags:SQL注入漏洞   点击:(67)  评论:(0)  加入收藏
前言本人ctf选手一名,在最近做练习时遇到了一些sql注入的题目,但是sql注入一直是我的弱项之一,所以写一篇总结记录一下最近学到的一些sql注入漏洞的利用。可回显注入联合注入在...【详细内容】
2021-08-26  合天网安实验室    Tags:sql注入   点击:(60)  评论:(0)  加入收藏
“放纵自己的欲望是最大的祸害,窥探别人的隐私是最大的罪恶,不知自己的过失是最大的病痛”。 上文咱们知道了目前互联网的数据安全存在隐患,数据安全的问题,每天都在发生,只不过...【详细内容】
2021-08-13  小陶子矿工    Tags:IPFS   点击:(79)  评论:(0)  加入收藏
前言最近挖edusrc的时候遇到有注入点但是有waf绕不过,头疼。 可以看到还是phpstudy建站的,太熟悉了这个,不知道这个什么waf各位师傅知道的可以评论一下,所以写这篇文章是供各位...【详细内容】
2021-08-13  IT影子    Tags:sql注入   点击:(66)  评论:(0)  加入收藏
1. 使用 Burpsuite: 1. Capture the request using burpsuite. 2. Send the request to burp scanner. 3. Proceed with active scan. 4. Once the scan is finished, l...【详细内容】
2021-08-04  李志宽    Tags:SQL注入   点击:(74)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条