what you don't know can hurt you
Home Files News &[SERVICES_TAB]About Contact Add New

Blocking Common Web Attacks

Blocking Common Web Attacks
Posted Jan 4, 2010
Authored by Sora

Whitepaper called Blocking Common Web Attacks.

tags | paper, web
SHA-256 | 259e9e275105cef9d8e57da54d438055f0988b9ee4e47b8a4f896b378bf02608

Blocking Common Web Attacks

Change Mirror Download
>-------------------------------------------------------<
_________
/ _____/ ________________ http://greyhathackers.wordpress.com/
\_____ \ / _ \_ __ \__ \
/ ( <_> ) | \// __ \_
/_______ /\____/|__| (____ / presents . . .
\/ ^-^ \/
>-------------------------------------------------------<

[ INFORMATION ]

Title: Blocking Common Web Attacks
Author: Sora
Contact: vhr95zw [at] hotmail [dot] com
Website: http://greyhathackers.wordpress.com/

[ END OF INFORMATION ]
>-------------------------------------------------------<

[ TABLE OF CONTENTS ]

0x00: Introduction
0x01: SQL Injection
\_ 0x01a: Login Form Bypassing
\_ 0x01b: UNION SQL Injection
0x02: Cross Site Scripting
\_ 0x02a: Cross Site Request Forgery
0x03: File Inclusion
\_ 0x03a: Remote File Inclusion and Remote Code Execution
0x04: Conclusion, credits, and greetz

[ TABLE OF CONTENTS END ]
>-------------------------------------------------------<

0x00: Introduction

This article will tell you about five types of common web attacks, which are used
in most types of defacements or dumps of databases. The five exploits
listed above are SQL injection, XSS, RCE, RFI, and LFI. Most of the time, it is
poor programming of the PHP code that allows the hacker to get through.

>-------------------------------------------------------<

0x01: SQL Injection

\_ 0x01a: LOGIN FORM BYPASSING

Here is an example of the vulnerable code that we can bypass very easily:

index.html file:
<form action="login.php" method="POST" />
<p>Password: <input type="text" name="pass" /><br />
<input type="submit" value="Authenticate" /></p>
</form>

login.php file:
<?php
// EXAMPLE CODE
$execute = "SELECT * from database WHERE password = '{$_POST['pass'])";
$result = mysql_query($execute);
?>

We can simply bypass this by using ' or '1=1', which will execute "password = ''or '1=1'';".

Alternatively, the user can also delete the database by executing "' drop table database; --".

[+] PREVENTION:

Use mysql_real_escape_string in your php code.

Example:
<?php
$badword = "' OR 1 '";
$badword = mysql_real_escape_string($badword);
$message = "SELECT * from database WHERE password = "'$badword'";
echo "Blocked " . $message . ";
?>

\_ 0x01b: UNION SQL Injection

UNION SQL injection is when the user uses the UNION command. The user checks for the vulnerability by
adding a tick to the end of a ".php?id=" file. If it comes back with a MySQL error, the site is most likely
vulnerable to UNION SQL injection. They proceed to use ORDER BY to find the columns, and at the end, they use
the UNION ALL SELECT command. An example is shown below.

http://www.site.com/website.php?id=1'
You have an error in your SQL syntax near '' at line 1 SELECT SUM(quantity) as type FROM orders where (status='completed' OR status='confirmed' OR status='pending') AND user_id=1'

http://www.site.com/website.php?id=1 ORDER BY 1-- <-- No error.
http://www.site.com/website.php?id=1 ORDER BY 2-- <-- Two columns, and it comes back with an error! This means that there is one column.
http://www.site.com/website.php?id=-1 UNION SELECT ALL version()-- <-- Selects the all the columns and executes the version() command on the only column.

[+] SOLUTION:

Add something like below to prevent UNION SQL injection.

$evil = "(delete)|(update)|(union)|(insert)|(drop)|(http)|(--)|(/*)|(select)";
$patch = eregi_replace($evil, "", $patch);

>-------------------------------------------------------<

0x02: Cross Site Scripting

Cross site scripting is a type of vulnerability used by hackers to inject code into vulnerable web pages.
If a site is vulnerable to cross site scripting, most likely users will try to inject the site with malicious javascript or try to
scam users by creating a form where users have to type their information in. Two types of XSS (cross site scripting) are persistent XSS
and non-persistent XSS.

Example:
http://www.site.com/search.php?q=">

[+] SOLUTION (javascript) (Thank you, Microsoft!):

function RemoveBad(strTemp) {
strTemp = strTemp.replace(/\<|\>|\"|\'|\%|\;|\(|\)|\&|\+|\-/g,"");
return strTemp;
}

>-------------------------------------------------------<

0x03: File Inclusion

\_ 0x03a: Remote File Inclusion/Local File Inclusion, and Remote Code Execution

Remote File Inclusion allows a hacker to include a remote file through a script (usually PHP). This code is mostly patched on websites, but some websites are still
vulnerable to the vulnerability. RFI usually leads to remote code execution or javascript execution.

Example of the vulnerable code:
<?php
include($_GET['page']);
?>

Exploiting it would be something like this:
http://www.site.com/page.php?page=../../../../../etc/passwd or
http://www.site.com/page.php?page=http://www.site.com/evil.txt?

[+] SOLUTION:
Validate the input.
$page = $_GET['page'];
$allowed = array('index.php', 'games.php' 'ip.php');
$iplogger = ('ip.php');
if (in_array $page, $pages)) {
include $page {
else
{
include $iplogger
die("IP logged.");
}

For remote code execution, the site would have to have a php executing command. You would patch this by about doing the same thing.

>-------------------------------------------------------<

0x04: Conclusion, credits, and greetz.

This pretty much sums up my tutorial about basic web protection. Hopefully your site isn't vulnerable to these types of attacks!

Credits:
Microsoft (XSS patch)

Greetz:
# Bw0mp # Popc0rn # Revelation # Max Mafiotu # T3eS # Timeb0mb # [H]aruhiSuzumiya # Xermes #


Have any questions? Send me a mail or add me on MSN: vhr95zw [at] hotmail [dot] com
<c> 2010 - http://greyhathackers.wordpress.com - Sora

Login or Register to add favorites

File Archive:

April 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Apr 1st
    10 Files
  • 2
    Apr 2nd
    26 Files
  • 3
    Apr 3rd
    40 Files
  • 4
    Apr 4th
    6 Files
  • 5
    Apr 5th
    26 Files
  • 6
    Apr 6th
    0 Files
  • 7
    Apr 7th
    0 Files
  • 8
    Apr 8th
    22 Files
  • 9
    Apr 9th
    14 Files
  • 10
    Apr 10th
    10 Files
  • 11
    Apr 11th
    13 Files
  • 12
    Apr 12th
    14 Files
  • 13
    Apr 13th
    0 Files
  • 14
    Apr 14th
    0 Files
  • 15
    Apr 15th
    30 Files
  • 16
    Apr 16th
    10 Files
  • 17
    Apr 17th
    22 Files
  • 18
    Apr 18th
    0 Files
  • 19
    Apr 19th
    0 Files
  • 20
    Apr 20th
    0 Files
  • 21
    Apr 21st
    0 Files
  • 22
    Apr 22nd
    0 Files
  • 23
    Apr 23rd
    0 Files
  • 24
    Apr 24th
    0 Files
  • 25
    Apr 25th
    0 Files
  • 26
    Apr 26th
    0 Files
  • 27
    Apr 27th
    0 Files
  • 28
    Apr 28th
    0 Files
  • 29
    Apr 29th
    0 Files
  • 30
    Apr 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close