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