SQLI-LABS(Less-8)

Less-8(GET-Blind-Boolean Based-Single Quotes)

打开 Less-8页面,可以看到页面中间有一句 Please input the ID as parameter with numeric value,那么先使用 ID这个参数通过 GET方式传入一个数值。

SQLI-LABS(Less-8)

确定注入点

注入语句: ?id=1。可以看出没有回显查询结果。

SQLI-LABS(Less-8)

接着试一下 ?id=1',发现出错了,但是并不回显错误。

SQLI-LABS(Less-8)

根据本关的名字知道SQL语句使用 单引号闭合。尝试使用单引号闭合注释看是否成功,注入语句: ?id=1' --+

SQLI-LABS(Less-8)

接着使用注入语句 ?id=1' and 1=1 --+?id=1' and 1=2 --+确定是否存在注入点:

SQLI-LABS(Less-8)

发现前一条注入语句正常,后一条注入语句报错,由此表明此处确实存在注入点。对于前端页面只能显示成功与失败的情况,可以考虑使用布尔型盲注。

确定数据库名

注入语句: ?id=1' and length((select database()))>5 --+length()函数会返回括号内的字符串长度,例如 length('abc')返回3,表示字符串长度为3,这样上述语句就变成了查询当前数据表是否存在id为1并且当前数据库名长度是否大于5,而我们知道当前数据库存在id为1的用户,那么整个注入语句就可以直接用来判断当前数据库名的长度是否大于5。

SQLI-LABS(Less-8)

从上图中可以看出数据库名的长度是大于5的,接着判断是否当前数据库名是否小于10,使用: ?id=1' and length((select database()))<10 --+< code>,&#x901A;&#x8FC7;&#x8FD9;&#x79CD;&#x65B9;&#x5F0F;&#x6700;&#x7EC8;&#x53EF;&#x4EE5;&#x5F97;&#x51FA;&#xFF0C;&#x5F53;&#x524D;&#x6570;&#x636E;&#x5E93;&#x540D;&#x957F;&#x5EA6;&#x4E3A;8&#x3002;<br><img src="https://img2022.cnblogs.com/blog/1417438/202209/1417438-20220907201854271-1628312370.png"><!--10-->

下一步判断数据库名是什么,使用注入语句: ?id=1' and substring((select database()),1,1)<'z' --+< code>&#x5224;&#x65AD;&#x5F53;&#x524D;&#x6570;&#x636E;&#x5E93;&#x540D;&#x7684;&#x7B2C;&#x4E00;&#x4E2A;&#x5B57;&#x7B26;&#x662F;&#x5426;&#x5C0F;&#x4E8E;<code>z</code>&#xFF0C;&#x63A5;&#x7740;&#x901A;&#x8FC7;&#x4E8C;&#x5206;&#x6CD5;&#x4E0D;&#x65AD;&#x731C;&#x89E3;&#xFF0C;&#x5F97;&#x51FA;&#x5F53;&#x524D;&#x6570;&#x636E;&#x5E93;&#x540D;&#x7B2C;&#x4E00;&#x4E2A;&#x5B57;&#x7B26;&#x4E3A;<code>s</code>&#xFF0C;&#x901A;&#x8FC7;&#x6B64;&#x65B9;&#x6CD5;&#x6700;&#x7EC8;&#x53EF;&#x4EE5;&#x731C;&#x89E3;&#x51FA;&#x5F53;&#x524D;&#x6570;&#x636E;&#x5E93;&#x540D;&#x3002;&#x63A5;&#x4E0B;&#x6765;&#x7684;&#x8868;&#x540D;&#x3001;&#x5217;&#x540D;&#x3001;&#x7528;&#x6237;&#x540D;&#x3001;&#x5BC6;&#x7801;&#x90FD;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x6B64;&#x65B9;&#x6CD5;&#x731C;&#x89E3;&#x5F97;&#x51FA;&#x3002;&#x5176;&#x4E2D;&#x4F7F;&#x7528;&#x5230;&#x7684;&#x6CE8;&#x5165;&#x8BED;&#x53E5;&#x53EF;&#x4EE5;&#x53C2;&#x8003;<a href="https://www.cnblogs.com/Timesi/p/16655744.html" rel="noopener">Less-1</a>&#x3002;<!--'z'-->

Original: https://www.cnblogs.com/Timesi/p/16667036.html
Author: 顾北清
Title: SQLI-LABS(Less-8)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578207/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • ADO.NET学习

    ADO.NET五大常用对象 一,SqlConnection(连接对象) 1,配置文件 2,看个例子吧 二,Command对象 执行查SQL查询方法或者PROC返回一个数据库表格, …

    Linux 2023年6月7日
    082
  • Linux下使用压力测试工具stress

    首先解压安装包到/usr/local/src/下 mv stress-1.0.4.tar.gz /usr/local/src​tar -zxf stress-1.0.4.tar.g…

    Linux 2023年6月13日
    089
  • USB转双串口产品设计-RS232串口

    基于USB转2路串口芯片CH342,可以为各类主机扩展出2个独立的串口。CH342芯片支持使用操作系统内置的CDC串口驱动,也支持使用厂商提供的VCP串口驱动程序,可支持Windo…

    Linux 2023年6月7日
    095
  • shell运算符

    算术运算符 下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20: 运算符说明举例 + 加法 expr $a + $b 结果为 30。 – 减法 ex…

    Linux 2023年5月27日
    076
  • jmeter beanshell 从文件中获取随机参数

    loadruner 参数化有个功能,可以设置在脚本每次出现参数时,自动更换参数值。在做jmeter自动化测试过程中,同一个请求中出现多个参数值,如一个接口可以添加n个信息的请求 […

    Linux 2023年5月28日
    0214
  • 分区表、文件系统等计算机基础知识

    开机固件 BIOS UEFI 特别老的BIOS不支持GPT分区 目前已取代BIOS 分区表类型 MBR GPT 1.不支持2TB以上的硬盘2.主分区不能超过4个3.可以通过建立扩展…

    Linux 2023年6月7日
    0101
  • 宝塔配置vnc+wine实现Q群机器人

    图形界面必备 X Window System yum -y groupinstall "X Window System" 安装epel源 yum -y inst…

    Linux 2023年5月27日
    0100
  • MySQL日志管理之通用日志和慢查询日志

    MySQL的通用日志: 用来记录对数据库的通用操作,包括错误的sql语句等信息。 通用日志可以保存在:file(默认值)或 table(mysql.general_log表) my…

    Linux 2023年6月7日
    0128
  • Xshell Win10不能直接拖文件进行文件传输解决办法

    centos安装了 lrzsz后, xshell还是无法直接从win10中拖文件 到centos。 需要修改win10的注册表。 见: https://blog.csdn.net/…

    Linux 2023年5月28日
    092
  • shell脚本执行错误:#!/bin/bash: No such file or directory

    1、问题描述: 执行.sh脚本时控制台报错 : #!/bin/bash: No such file or directory 2、解决办法: cat -A 文件路径 会发现第一行有…

    Linux 2023年5月28日
    0256
  • redisson中的看门狗机制总结

    1:普通的Redis分布式锁的缺陷我们在网上看到的redis分布式锁的工具方法,大都满足互斥、防止死锁的特性,有些工具方法会满足可重入特性。如果只满足上述3种特性会有哪些隐患呢?r…

    Linux 2023年5月28日
    0134
  • 什么是进程

    进程:是指计算机中已运行的程序。进程本身不是基本的运行单位,而是线程的容器。程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。 进程是程序动态…

    Linux 2023年6月7日
    0110
  • MySQL启动报:[ERROR] The server quit without updating PID file

    修改配置后 MySQL启动不了,报错: 看见这个不要惊慌,先把刚才修改的配置注释掉,看是不是配置有误!大部分是手误造成。 如果不行,再尝试一下方法: 解决方法 : 给予权限,执行 …

    Linux 2023年6月13日
    081
  • Ansible Playbook概览

    Ansible playbook 执行需要三步路执行: 1.编写playbook 2.定义主机清单文件 3.设置运行环境,写入配置文件 1.编写playbook Playbook使…

    Linux 2023年6月6日
    081
  • Xshell的快捷键【转】

    删除ctrl + d 删除光标所在位置上的字符相当于VIM里x或者dlctrl + h 删除光标所在位置前的字符相当于VIM里hx或者dhctrl + k 删除光标后面所有字符相当…

    Linux 2023年5月28日
    092
  • Shell中$0、$?、$!、$$、$*、$#、$@

    1. $$Shell本身的PID(ProcessID) 2. $!Shell最后运行的后台Process的PID 3. $?最后运行的命令的结束代码(返回值) 4. $-使用Set…

    Linux 2023年5月28日
    091
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球