FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
sqlmap/tamper/ifnull2ifisnull.py at master · getcode2git/sqlmap · GitHub
getcode2git
/
sqlmap
Public
forked from
sqlmapproject/sqlmap
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
sqlmap
/
tamper
/
ifnull2ifisnull.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
63 lines (47 loc) · 1.59 KB
Breadcrumbs
sqlmap
/
tamper
/
ifnull2ifisnull.py
Copy path
File metadata and controls
63 lines (47 loc) · 1.59 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/usr/bin/env python
"""
Copyright (c) 2006-2015 sqlmap developers (http://sqlmap.org/)
See the file 'doc/COPYING' for copying permission
"""
from
lib
.
core
.
enums
import
PRIORITY
__priority__
=
PRIORITY
.
HIGHEST
def
dependencies
():
pass
def
tamper
(
payload
,
**
kwargs
):
"""
Replaces instances like 'IFNULL(A, B)' with 'IF(ISNULL(A), B, A)'
Requirement:
* MySQL
* SQLite (possibly)
* SAP MaxDB (possibly)
Tested against:
* MySQL 5.0 and 5.5
Notes:
* Useful to bypass very weak and bespoke web application firewalls
that filter the IFNULL() function
>>> tamper('IFNULL(1, 2)')
'IF(ISNULL(1),2,1)'
"""
if
payload
and
payload
.
find
(
"IFNULL"
)
>
-
1
:
while
payload
.
find
(
"IFNULL("
)
>
-
1
:
index
=
payload
.
find
(
"IFNULL("
)
depth
=
1
comma
,
end
=
None
,
None
for
i
in
xrange
(
index
+
len
(
"IFNULL("
),
len
(
payload
)):
if
depth
==
1
and
payload
[
i
]
==
','
:
comma
=
i
elif
depth
==
1
and
payload
[
i
]
==
')'
:
end
=
i
break
elif
payload
[
i
]
==
'('
:
depth
+=
1
elif
payload
[
i
]
==
')'
:
depth
-=
1
if
comma
and
end
:
_
=
payload
[
index
+
len
(
"IFNULL("
):
comma
]
__
=
payload
[
comma
+
1
:
end
].
lstrip
()
newVal
=
"IF(ISNULL(%s),%s,%s)"
%
(
_
,
__
,
_
)
payload
=
payload
[:
index
]
+
newVal
+
payload
[
end
+
1
:]
else
:
break
return
payload
Back
|
FazBrowse Home
|
New Git URL