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

Skip to content

Commit aa931ef

Browse files
committed
several MySQL fixes/enhancements pointed out by Anton Mogilin
1 parent 52f910f commit aa931ef

4 files changed

Lines changed: 10 additions & 10 deletions

File tree

doc/THANKS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ Enrico Milanese <[email protected]>
220220
for providing me with some ideas for the PHP backdoor
221221

222222
Anton Mogilin <[email protected]>
223-
for reporting a minor bug
223+
for reporting couple of bugs
224224

225225
Alejo Murillo Moya <[email protected]>
226226
for suggesting a feature

lib/parse/cmdline.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,10 @@ def cmdLineParser():
212212
help="Test for stacked queries (multiple "
213213
"statements) support")
214214

215+
techniques.add_option("--error-test", dest="errorTest",
216+
action="store_true", default=False,
217+
help="Test for error based SQL injection support (beta)")
218+
215219
techniques.add_option("--time-test", dest="timeTest",
216220
action="store_true", default=False,
217221
help="Test for time based blind SQL injection")
@@ -492,10 +496,6 @@ def cmdLineParser():
492496
parser.add_option("--profile", dest="profile", action="store_true",
493497
default=False, help=SUPPRESS_HELP)
494498

495-
parser.add_option("--error-test", dest="errorTest",
496-
action="store_true", default=False,
497-
help=SUPPRESS_HELP)
498-
499499
parser.add_option("--cpu-throttle", dest="cpuThrottle", type="int", default=10,
500500
help=SUPPRESS_HELP)
501501

lib/techniques/error/use.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def errorUse(expression):
5151
nulledCastedField = agent.nullAndCastField(fieldToCastStr)
5252

5353
if kb.dbms == "MySQL":
54-
nulledCastedField = nulledCastedField.replace("CHAR(10000)", "CHAR(255)") #fix for that 'Subquery returns more than 1 row'
54+
nulledCastedField = nulledCastedField.replace("AS CHAR)", "AS CHAR(255))") #fix for that 'Subquery returns more than 1 row'
5555

5656
expressionReplaced = expression.replace(fieldToCastStr, nulledCastedField, 1)
5757
expressionUnescaped = unescaper.unescape(expressionReplaced)

xml/queries.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<root>
44
<!-- MySQL -->
55
<dbms value="MySQL">
6-
<cast query="CAST(%s AS CHAR(10000))"/>
6+
<cast query="CAST(%s AS CHAR)"/>
77
<length query="LENGTH(%s)"/>
88
<isnull query="IFNULL(%s, ' ')"/>
99
<delimiter query=","/>
@@ -26,9 +26,9 @@
2626
<case query="SELECT (CASE WHEN (%s) THEN 1 ELSE 0 END)"/>
2727
<error query="%s (SELECT %s FROM(SELECT COUNT(*),CONCAT(%s,(%s),%s,FLOOR(RAND(0)*2))x FROM information_schema.tables GROUP BY x)a)"/>
2828
<inference query="AND ORD(MID((%s), %d, 1)) > %d"/>
29-
<banner query="SELECT VERSION()"/>
30-
<current_user query="SELECT CURRENT_USER()"/>
31-
<current_db query="SELECT DATABASE()"/>
29+
<banner query="VERSION()"/>
30+
<current_user query="CURRENT_USER()"/>
31+
<current_db query="DATABASE()"/>
3232
<is_dba query="(SELECT super_priv FROM mysql.user WHERE user=(SUBSTRING_INDEX(CURRENT_USER(), '@', 1)) LIMIT 0, 1)='Y'"/>
3333
<check_udf query="(SELECT name FROM mysql.func WHERE name='%s' LIMIT 0, 1)='%s'"/>
3434
<users>

0 commit comments

Comments
 (0)