攻防世界 WEB NewsCenter

  前几天才发现攻防世界这个平台,真是相见恨晚,正愁没地方检验自己大学四年学安全的学习成果,于是沉浸于寻找flag,大概一天一到两题的进度(解完两题就学别的去了,尽管如此也挺慢的了)在解题的同时也总结了安全的方方面面,各种工具和用法、各种漏洞的判断和利用.....最近终于磕磕绊绊做完了web的新手练习,怀着兴奋又紧张的心情进了高手进阶,扑面而来就是两页题,选了1分里名字最直白的一个——NewsCenter

  题目只有一个搜索框,下面显示搜索结果,最先考虑的就是sql注入,先简单构造sd' or '1=1,果然返回了所有新闻(7条)查看网页源码,发现这里是post方式,可以考虑使用sqlmap。

  但是如此形式的sql漏洞应该还有别的方法,毕竟这一看就没有任何过滤验证,也没有提前预编译,是最基础的sql漏洞了,在这里尝试手工构造语句,看看能不能获得什么信息。

  在学校学习时,老师给的方法就是单引号、1、2等尝试,然后基本就可以用union联合查询得到很多信息。union就是两个结果的去重合集,但的前提是要列数一致,所以先把数据的列数尝试出来。

  构造输入为:sd' union select 1,2 #sd' union select 1,2 ,3# (第一个  ‘  闭合后台命令的第一个  ’    ,#注释掉后台的第二个  '    )只有1,2,3时才正确返回,说明数据格式为3列。

  接下来要利用INFORMATION_SCHEMA来得到所有表名,命令很多种,这里就这么构造:

sd'  union select 1,2,table_name from information_schema.tables #   前面的1,2,就完全是凑列数的,得到一大串表名,耐下心来找,发现最后有一个secret_table数据库,按照攻防世界“此地无银三百两”的提示习惯,目标就是他,没跑儿了!

  接下来就是要利用information_schema.columns的结构来获得secret表的信息了,根据一位大牛的文章,我们要得到的信息也就只有column_name了,或者再加上colume_type查看数据类型。那么构造:

sd'  union select 1,column_type,column_name from information_schema.columns where table_name='secret_table' #

  里面果然有flag,那么就直接:

sd'  union select 1,2,fl4g from secret_table #

得到flag。

  总结一下吧,这道题是难度很低的sql注入题,网页有回显不用盲注,也没过滤不用考虑绕过,属于给小白增加自信的题目——作为小白的我现在是满满的成就感!

    

猜你喜欢

转载自www.cnblogs.com/AnEKiller/p/11573847.html