当前位置: 代码迷 >> 综合 >> 【GXYCTF2019】BabySQLi wp
  详细解决方案

【GXYCTF2019】BabySQLi wp

热度:43   发布时间:2024-02-23 17:20:12.0

打开容器后发现,只是一个登录页面
在这里插入图片描述
这种登录一般都是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