拿到题目后看提示,要自主访问两个页面
![](https://i-blog.csdnimg.cn/blog_migrate/0820c3772c454f50f09928797e02e383.png)
访问login.php后,是一个登录界面,直接测试注入类型
![](https://i-blog.csdnimg.cn/blog_migrate/5ab507cecfe6e41a85320c1741c34909.png)
第一件事还是输入常用账户名admin,密码随便输入
回显账号或者密码错误
![](https://i-blog.csdnimg.cn/blog_migrate/8100775ccae5da2b75babd6db27da708.png)
这种登录界面一般都是字符型注入,所以测试一下闭合符,没想到页面回显账号不存在
说明只有在账号为真时,回显账号或密码错误
如果账号错误,回显账号不存在
![](https://i-blog.csdnimg.cn/blog_migrate/09105a07912ae395ab3a9171e8796a31.png)
知道这一特性,我们就可以利用回显进行盲注
首先测试闭合符为单引号
![](https://i-blog.csdnimg.cn/blog_migrate/7008194b4cb69d41ced8d4e77990c536.png)
数据库名称长度测试为4
![](https://i-blog.csdnimg.cn/blog_migrate/3b3d54b24b5c235f1b68d944251343e2.png)
知道数据库长度后,我们就利用burp抓包进行爆破,按照顺序获得数据库名称
如果爆不出来,有很多429状态码的响应页时,可以考虑换网络或者降低爆破线程
![](https://i-blog.csdnimg.cn/blog_migrate/4b765aadd1a5345931f528336a3326dd.png)
测试出一共包含两个表,select被过滤掉了
但是居然没提示,我都检查了好几遍我注入的语句是否正确,最后还是看wp出来的
admin' and (SEleCt count(table_name)from information_schema.tables where table_schema=database())>1#
![](https://i-blog.csdnimg.cn/blog_migrate/dbec7af90f50ef458592c168900422d6.png)
看wp才知道可以降低难度,以后还是要先看源码信息
![](https://i-blog.csdnimg.cn/blog_migrate/813a3b2b46aecbd847afe9541a3f19a9.png)
测试第一张表的长度为4
admin' and (length((SeleCt table_name from information_schema.tables where table_schema = 'note' limit 0,1)))>1#
![](https://i-blog.csdnimg.cn/blog_migrate/ad978834c96812c83b9f08bbe560d271.png)
查询到第一个表名称
admin' and (substr((SeleCt table_name from information_schema.tables where table_schema = 'note' limit 0,1),1,1))>'a'#
![](https://i-blog.csdnimg.cn/blog_migrate/fae175cd75bd44382849b81402bfca39.png)
查询fl4g表中的字段名
![](https://i-blog.csdnimg.cn/blog_migrate/1002a07287c7995c1b03df3673a075f3.png)
因为爆破的数据较长,而且burp爆破模块我这里不知道咋自动排序,所以可以采取导出数据存储为excel排序输出,或者用一段python代码输出
![](https://i-blog.csdnimg.cn/blog_migrate/902b1228ccb1e923553fd7a357279686.png)