SQL注入实验学习笔记

发表于:2020-10-19 15:16 作者: 合天 阅读数(390人)

实操靶场地址:SQL注入实验一

根据指导书我们要先在实验机进入这个网址http://10.1.1.11:81

1.png

进入之后会看到三个实例。

2.png

实例一

根据指导书的提示来做这一题。后面两个实例也要看这个指导书。

3.png

先判断是否存在注入

方法一 在参数后面加上单引号,比如:

http://xxx/abc.php?id=1

如果页面返回错误,则存在 Sql 注入。 原因是无论字符型还是整型都会因为单引号个数不匹配而报错。当然还有可能加了’,和没加是一样的,这也有可能是注入。因为当把错误提示关闭时,它是不会在页面显示的。

方法二

构造 and 1 = 1 和 and 1 = 2

如果两个页面显示不一样,那么就说明存在注入了。

这里使用的是方法二。

4.png

5.png

两次显示不一样,存在注入。

猜测字段数

在后面加一个 %23或–+把后面的注释掉

使用order by 来对数据进行排序,我们可以从1开始测试或者使用均分法先从一个大的数据测,然后再分半。

先用5能出现数据

http://10.1.1.11:81/sqli/example1.php?name=root’ order by 5%23

6.png

接着用6试一下

http://10.1.1.11:81/sqli/example1.php?name=root’ order by 6%23

7.png

此时已经出错所以有5个字段

使用union联合注入,union 的作用是将两个 sql 语句进行联合,union 前后的两个 sql 语句的选择列数要相同才可以。

8.png

猜字段内容

9.png

实例二

这个实例的操作步骤和第一个实例的差不多,就是不能用空格,至于为什么不能用空格,可以看一下指导书

0.png

虽然说是少用空格但是出现空格就会报错,但在判断是否注入的时候不出现空格是可以的

11.png

12.png

在猜测字段数的时候以为把空格去掉就可以但其实是错的,因为之前没怎么做过sql注入的题目,所以就在网上搜索了一下怎样绕过空格。

有两个解决方法

13.png

我是用的第一种方法。接下来的步骤和实验一的一样

猜测字段数

这个也是5个字段

14.png

15.png

猜字段内容

16.png

实例三

实例三和实例二的操作方法完全相同。

看是否存在注入

17.png

18.png

猜测字段数

这里也是5

20190921145544815.png

222.png

333.png

猜测字段内容

20.png