sql-lib闯关秘籍之11-20关

下面开始11-20关,之前不会的关卡可以参考我这篇文章: sql-lib闯关秘籍之1-10关

不管是第几关,我们的最终目标是获得用户密码,从而获取最高权限!

以下的学习过程中如果遇到那里不会的或者不清楚的地方,欢迎大家留言,我将尽力帮助大家~

11到21关的提交方式全是post型的,我这里使用burpsuit抓包软件,也可以用hackbar选中的post,下面的实验我们穿插的使用(用hackbar的时候我们的注释符号用#,不用--+,因为--+会出错)

第十一关

 从这一关开始,我们就进入到了POST注入的世界了。在接下来的几关中我们将陆续介绍关于POST注入的方法以及技巧。

post是一种数据提交方式,它主要是指数据从客户端提交到服务器端

首先我们发现他是单引号字符型注入

 判断他有几个显示位,看来是两个

 接下来我们使用联合查询语句 union select来进行爆破,使用 union select的时候要注意,输入的uname必须是一个不存在的,否则将会输出不出来

 

 首先获取数据库使用者名称权限,版本

 获取我们要爆的数据库名

 获得该数据库中的表名

 获得列名,因为我们没有指定数据库,所以他把所有数据库里面的users表的列名全都列出来,加上and table_schema=database()就可以指定该数据库,注意users旁边要加引号,不加会出错

 获得用户名密码

 第十二关

和第十一关一样,就是把单引号闭合换成双引号变形闭合就可以啦  ‘---->”)

 

第十三关

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

获得数据库名

 

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

 

 第十四关

和第十三关基本一样就是把单引号变形变成双引号,过程不再赘述,最后获得用户名和密码(我这只截图了一种方法,共有三种方法)

 

 第十五关

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

 获取用户名密码

 第十六关

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

 时间盲注获得用户名

 布尔盲注获得密码(不是说时间盲注和布尔盲注组合才能得出,我是为了证明两种方法都可以解题)

 还有一种更快的方法,我们大费周章就是为了获得用户名密码。这种方法又叫做万能密码,就是我们即使不输入密码,用户名只要写成admin“)#这样的形式就可以进去

 第十七关

这关有点意思啦,我上来先用万能密码尝试发现不能,经过单引号,双引号以及变形,我发现不管怎么样都没有得出我们想要的结果

后来通过查网页和看php文件,我发现这关对username做了很严格的过滤,对各种引号括号进行了转义,判断。但是它没有对password进行过滤,所有我们来对password进行爆破

我不经意间发现,这一关好像对密码没有进行验证,只要你用户名对,密码是什么他都可以进去

 这关我试了试好像不能进行布尔盲注和时间盲注,可以试试报错型注入

使用updatexml(),它和extractvaule()是亲兄弟、

获取版本(可有可无,就是为了验证这个方法是否可行)

 获得库名

获得表名

 

 获得列名

 获取字段(额。。。这里出现了问题,查询了很多资料也没有解决)总是出现这个错误You can't specify target table 'users' for update in FROM clause

 对于这个问题,网上有说套双层select的,我试了下可以啦

 第十八关

这关是基于报错注入,上一关没有对password进行过滤,这关就进行过滤了,那怎么办呢?这关我们就要用burp抓包神器了(注意把浏览器设置成代理模式,抓包的网站不要用localhost,因为我试了试发现不能)

 

 我们先输入一个admin,admin,发送到repeater,这样咱们就不用在浏览器上一直输入了,简单快捷,哈哈哈哈哈

 

我们把这句话换成我们想要的查询语句就可以了(使用extractvalue进行)和第12关的语句基本一样

 

 获得数据库名

 

 

 获得数据库表

 

 获得数据库列名

 

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

 

 第十九关

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

获得库名(又是重复性动作了,和上一关一样,我就不截图那么多了)

 

 获得用户名密码

 

 第二十关

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

 

 在这里进行注入

 

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

 

 

获得数据库名

 

 

 

 获得表名,获得列名,获得用户名密码,和第一关的payload一样,不再演示了

11-20关结束

 

该文章有参考了以下的网页:

sqli-lab教程——1-35通关Writeup

SQL注入靶场sqli-labs 1-65关全部通关教程

sqli-labs (less11-less14)

sqli-labs ————less -11(POST注入)

重闯Sqli-labs关卡第三天(11-15关)

posted @   泷十三  阅读(1085)  评论(0编辑  收藏  举报
编辑推荐:
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
阅读排行:
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· 赶AI大潮:在VSCode中使用DeepSeek及近百种模型的极简方法
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
点击右上角即可分享
微信分享提示