天天看点

网站的SQL注入实战

sql注入是黑客常用的手段之一,最近装了kali系统,所以体会了一把sql注入的感觉,有点体会记录如下:
           

首先我们来看一下如何判断一个网站是可以进行sql注入:

为了把问题说明清楚,以下以HTTP://xxx.xxx.xxx/abc.asp?p=YY为例进行分析,YY可能是整型,也有可能是字符串。

1.整型参数的判断:

    当输入的参数YY为整型时,通常abc.asp中SQL语句原貌大致如下:select * from 表名 where 字段=YY,所以可以用以下步骤测试SQL注入是否存在。

    ①HTTP://xxx.xxx.xxx/abc.asp?p=YY’(附加一个单引号),此时abc.ASP中的SQL语句变成了select * from 表名 where 字段=YY’,abc.asp运行异常;

    ②HTTP://xxx.xxx.xxx/abc.asp?p=YY and 1=1, abc.asp运行正常,而且与HTTP://xxx.xxx.xxx/abc.asp?p=YY运行结果相同;

    ③HTTP://xxx.xxx.xxx/abc.asp?p=YY and 1=2, abc.asp运行异常;

如果以上三步全面满足,abc.asp中一定存在SQL注入漏洞。

2、字符串型参数的判断:

    当输入的参数YY为字符串时,通常abc.asp中SQL语句原貌大致如下:select * from 表名 where 字段=’YY’,所以可以用以下步骤测试SQL注入是否存在。

    ①HTTP://xxx.xxx.xxx/abc.asp?p=YY’(附加一个单引号),此时abc.ASP中的SQL语句变成了select * from 表名 where 字段=YY’,abc.asp运行异常;

  ②HTTP://xxx.xxx.xxx/abc.asp?p=YY&nb … 39;1’=’1’, abc.asp运行正常,而且与HTTP://xxx.xxx.xxx/abc.asp?p=YY运行结果相同;

    ③HTTP://xxx.xxx.xxx/abc.asp?p=YY&nb … 39;1’=’2’, abc.asp运行异常;

如果以上三步全面满足,abc.asp中一定存在SQL注入漏洞。

注入过程:

打开sqlmap,先把url丢给sqlmap去跑,命令:

网站的SQL注入实战

结果:

网站的SQL注入实战

从图中我们可以看出,这个注入点提交的类型是get型,数据库为Microsoft Access,系统是Windows,接下来我们试试列出它的数据库。执行如下命令:

结果:提示Access数据库不能建库,要使用 –tables参数

网站的SQL注入实战

所以我们改变命令:

结果如下:

网站的SQL注入实战

最后跑出来了:

网站的SQL注入实战

继续阅读