SUCTF2018-MultiSQL
进去题目页面。

查看网页源代码发现有注册登录页面

随便注册一个用户,发现跳转到了/user/user.php

查看用户信息,发现有传参/user/user.php?id=2

在?id=后存在一个sql盲注,我们来尝试一下?id=2^(if(ascii(mid(user(),1,1))>0,0,1))判断存在注入,2异或0还是为2
经过fuzz测试后发现这里过滤了union,select ,&,|,过滤了select然后存在堆叠注入的可以使用预处理注入,尝试写入shell,因为过滤了select等字符,使用char()绕过,需要执行的语句
select ‘‘ into outfile ‘/var/www/html/favicon/shell.php’;
十进制ascii码绕过
使用脚本编程十进制:
1 | |
得到转十进制ascii码的结果:
1 | |
构造payload:
1 | |
这里使用了prepare预处理语句
进入shell页面node4.buuoj.cn/favicon/shell.php
然后post传参
1 | |
得到flag
十六进制编码绕过
也可以使用十六进制编码payload:
1 | |
payload:
1 | |
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。