【合天网安实验室】SQL注入入门一

时间:2022-02-11 08:56:22

作者:tianjianbo@126.com

时间:2015年1月17日

实验平台:合天网安实验室.Web应用安全.SQL注入实验一

实验环境:Apache+PHP+Mysql

实验原理:

  1. SQL注入是一种将SQL代码插入或添加到应用的输入参数中的攻击,之后再将这些参数传递给后台的SQL服务器加以解析并执行。
  2. 传统的手工

(1)     判断是否有注入点

方法一:

在url后面加’ 从而让SQL语句出错,那么页面就会提示出错信息。这时候就可以判断从这里存在注入。当然还有可能加了’,和没加是一样的,这也有可能是注入。因为当把错误提示关闭时,它是不会在页面显示的。

方法二:

构造 and 1 = 1 和 and 1 = 2

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

(2)     理解字段数目

方法:

order by 数字K   /**意思是根据第K个字段的大小来排序, 比如如果只有3个字段, K = 4, 那么就会报错。所以通过这个可以知道有多少字段*/

(3)     使用联合查询获取信息

方法:

      使用union语句

实验步骤:

  1. 热身运动不设防:

关键代码:

【合天网安实验室】SQL注入入门一

目标:尝试进行sql注入,目标为得到数据库中的用户名与密码。

【合天网安实验室】SQL注入入门一

【合天网安实验室】SQL注入入门一

判断是否存在注入:

【合天网安实验室】SQL注入入门一

【合天网安实验室】SQL注入入门一

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

猜测字段数目:

其中,Mysql 的注释符有以下几种:

【合天网安实验室】SQL注入入门一【合天网安实验室】SQL注入入门一

目的是把后面的’ 注释掉

【合天网安实验室】SQL注入入门一【合天网安实验室】SQL注入入门一【合天网安实验室】SQL注入入门一

所以可知有5个字段。

【合天网安实验室】SQL注入入门一

猜字段内容:

【合天网安实验室】SQL注入入门一

注意:

(1)        union 两边的select 语句必须具有相同数量的列,列也必须拥有相似的数据类型,同时,每条select语句中列的顺序必须相同。

(2)        %23 是 # 的16位url编码。