实操靶场地址:SQL注入实验一
根据指导书我们要先在实验机进入这个网址http://10.1.1.11:81
进入之后会看到三个实例。
实例一
根据指导书的提示来做这一题。后面两个实例也要看这个指导书。
先判断是否存在注入
方法一 在参数后面加上单引号,比如:
如果页面返回错误,则存在 Sql 注入。 原因是无论字符型还是整型都会因为单引号个数不匹配而报错。当然还有可能加了’,和没加是一样的,这也有可能是注入。因为当把错误提示关闭时,它是不会在页面显示的。
方法二
构造 and 1 = 1 和 and 1 = 2
如果两个页面显示不一样,那么就说明存在注入了。
这里使用的是方法二。
两次显示不一样,存在注入。
猜测字段数
在后面加一个 %23或–+把后面的注释掉
使用order by 来对数据进行排序,我们可以从1开始测试或者使用均分法先从一个大的数据测,然后再分半。
先用5能出现数据
http://10.1.1.11:81/sqli/example1.php?name=root’ order by 5%23
接着用6试一下
http://10.1.1.11:81/sqli/example1.php?name=root’ order by 6%23
此时已经出错所以有5个字段
使用union联合注入,union 的作用是将两个 sql 语句进行联合,union 前后的两个 sql 语句的选择列数要相同才可以。
猜字段内容
实例二
这个实例的操作步骤和第一个实例的差不多,就是不能用空格,至于为什么不能用空格,可以看一下指导书
虽然说是少用空格但是出现空格就会报错,但在判断是否注入的时候不出现空格是可以的
在猜测字段数的时候以为把空格去掉就可以但其实是错的,因为之前没怎么做过sql注入的题目,所以就在网上搜索了一下怎样绕过空格。
有两个解决方法
我是用的第一种方法。接下来的步骤和实验一的一样
猜测字段数
这个也是5个字段
猜字段内容
实例三
实例三和实例二的操作方法完全相同。
看是否存在注入
猜测字段数
这里也是5
猜测字段内容