打开容器后发现,只是一个登录页面
这种登录一般都是admin为用户名,再随便输个密码,发现出现wrong pass打开源代码,发现一行注释
<!--MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5-->
先用base64解密一次,发现是乱码,再用base32,解出来出现两个等号,有base64的特征,再次用base64解密,发现
select * from user where username = '$name'
确定是利用联合注入或者堆叠注入,并且用注释符将后面的语句注释掉
然后发现网页有语句的过滤,包括or、order by,与此同时发现问题没有回显点,经过搜索发现mysql在查询不存在的数据时,会自动构建虚拟数据。
所以我们可以利用构建虚假数据,绕过用户审核。
首先利用admin,和123,构建一个虚假的用户
而后根据联合注入语句
1' union select 1,'admin','123'#
发现只显示wrong pass,至于为什么知道密码是经过md5加密过的,应该都是大佬的经验吧。算出123的MD5值
payload 1' union select 1,'admin','202cb962ac59075b964b07152d234b70'#
输入相应的密码后,网页中就出现了flag