Bugku-web之成绩查询

今天是一道地地道道的sql注入题目,通过手动注入不仅可以加深对于sql语句的应用,也能够通过实战了解sql语句的运作,更好地体会到sql注入漏洞存在的潜在危害!!!ctf小白之旅继续前行!!!
一打开题目映入眼帘的是一个表单的输入查询,如果估计不错,应该是一道正宗的sql注入题目啦,首先根据题目提示进行表单的简单输入,输入1,2,3得到结果 。
其次,进行回显检验,输入1‘发现无回显,而输入1’#发生了回显,说明#的注释可能起到了作用,可以进行后续注入 。
第三,应用order by对表的列数进行猜测查询 。从2开始依次用order by语句进行检测,直至为5时无法回显,因此猜测表可能只有4列(输入 1‘ order by 5#无法回显) 。
第四,应用联合查询union确定查询语句中可以回显的位置 。通过输入-1‘ union1,2,3,4#进行测试,发现表单名变为1的成绩单,表单列依列回显为2,3,4 。可见,运用union查询语句可以进行数据库、用户名、数据表、列名设置值的查询,同时,后的第一个位置回显到表名上,后三个依次回显到列值 。(感觉这个表的四个列,依次表示姓名,数学,英语,中文)
第五,应用union联合查询依次查看数据库名、表名、列名以及列值 。
(1)-1’ union(),2,3,4#
(2)-1’ union1,2,3,() from . where =’skctf’ #
【Bugku-web之成绩查询】(3) -1’ union1,2,3,() from . where =‘fl4g’#
(4) -1’ union1,2,3,() from fl4g#
通过列值的查询最终收获了flag!!!