Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c9ab8ae

Browse files
committed
Bug fix to properly identify if current user is DBA (--is-dba) on MySQL
1 parent 2506086 commit c9ab8ae

2 files changed

Lines changed: 8 additions & 2 deletions

File tree

plugins/generic/enumeration.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,13 @@ def isDba(self):
129129
infoMsg = "testing if current user is DBA"
130130
logger.info(infoMsg)
131131

132-
query = agent.forgeCaseStatement(queries[kb.dbms].is_dba.query)
132+
if kb.dbms == DBMS.MYSQL:
133+
self.getCurrentUser()
134+
query = queries[kb.dbms].is_dba.query % kb.data.currentUser.split("@")[0]
135+
else:
136+
query = queries[kb.dbms].is_dba.query
137+
138+
query = agent.forgeCaseStatement(query)
133139

134140
kb.data.isDba = inject.getValue(query, unpack=False, charsetType=1)
135141

xml/queries.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
<banner query="VERSION()"/>
2929
<current_user query="CURRENT_USER()"/>
3030
<current_db query="DATABASE()"/>
31-
<is_dba query="(SELECT super_priv FROM mysql.user WHERE user=(SUBSTRING_INDEX(CURRENT_USER(), '@', 1)) LIMIT 0, 1)='Y'"/>
31+
<is_dba query="(SELECT super_priv FROM mysql.user WHERE user='%s' LIMIT 0, 1)='Y'"/>
3232
<check_udf query="(SELECT name FROM mysql.func WHERE name='%s' LIMIT 0, 1)='%s'"/>
3333
<users>
3434
<inband query="SELECT grantee FROM information_schema.USER_PRIVILEGES ORDER BY 1" query2="SELECT user FROM mysql.user ORDER BY 1"/>

0 commit comments

Comments
 (0)