Home | News | Hackgame | Books | Forum | Video | Search | Dorks | Download | Exploit | XSS | Gmaps | Links | RSS/API | $ su


Post Reply  Post Thread 
1 Votes - 4 Average   Guida XSS - 4a Parte - La soluzione alle xss
Author Message
Langy
Administrator
*******


Posts: 5.560
Group: Administrators
Joined: Sep 2007
Status: Offline
Reputation: 6
Post: #1
Guida XSS - 4a Parte - La soluzione alle xss

Guida XSS - 4a Parte - La soluzione alle xss - Come fixare una XSS

-------------------------------
Autore: Langy
Data: 19-02-2008
Copyright: http://www.googlebig.com

-------------------------------

Link utili:
http://www.gnucitizen.org/xssdb/application.htm (Attack Database)
http://www.xssed.com (Mirror Archive of Vulnerable Websites)
http://ha.ckers.org/xss.html (XSS Cheat sheet)
http://software.graflex.org/dexss/ (Removing JavaScript from HTML)

http://en.wikipedia.org/wiki/Cross-site_scripting

http://it.php.net/htmlentities
http://it2.php.net/htmlspecialchars
http://it2.php.net/strip_tags
-------------------------------

Per fixare il problema delle xss dobbiamo usare una delle 2 funzioni di php.

Querste funzioni non fanno altro che ripulire il codice HTML, ovvero i tag, per non far si' che questi vengano iniettati nel codice.

La funzione piu' utilizzata è htmlspecialchars() che tramuta tutti i caratteri < e > in &lt; e &gt;

Un'altra opzione è htmlentities() che sostituisce tutti i caratteri nelle corrispondenti entita'.

PHP Code:
<?
// questa pagina mostra un esempio 
// delle differenze di output tra le 2 funzioni

$input '<script>alert(1);</script>';

echo 
htmlspecialchars($input) . '<br />';
echo 
htmlentities($input);

?>


Un esempio di htmlentities()

PHP Code:
<?php
$str 
"A 'quote' is <b>bold</b>";

echo 
htmlentities($str);
echo 
htmlentities($strENT_QUOTES);
?>


Il primo visualizzera' --> A 'quote' is &lt;b&gt;bold&lt;/b&gt;
Il secondo --> A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;

Esempio di uso di htmlspecialchars()

PHP Code:
<?php
$new 
htmlspecialchars("<a href='test'>Test</a>"ENT_QUOTES);
echo 
$new;
?>

Questo visualizzera' --> &lt;a href='test'&gt;Test&lt;/a&gt;

La funzione strip_tags(), invece, elimina tutti gli elementi html, tranne alcuni elementi consentiti che bisogno specificare come ad esempio <i>, <b> o <p>.

Esempio di uso di strip_tags()

PHP Code:
<?php
$text 
'<p>Test paragraph.</p><!-- Comment --> Other text';
echo 
strip_tags($text);

echo 
"\n";
// allow <p>
echo strip_tags($text'<p>');
?>



Ora che sappiamo per lo meno che esistono queste funzioni gia' belle e pronte dobbiamo andarle ad applicare nel codice quando troviamo una xss sulla nostra web application.

Recentemente ho trovato una xss sul mio sito in una sezione dei video di GoogleBig che altro non e' che un plugin di Mybb, vi posto una porzione di codice per rendere l'idea di come ho dovuto applicare la funzione per far si' che nella ricerca dei video venissero filtrati i tag html.

Troviamo prima di tutto la pagina in questione: search.php

Ora andiamoci a cercare la porzione di codice che rende disponibile la ricerca, la query e l'output del risultato della query:

PHP Code:
function search($query$page)

{

    global 
$db$bgcolor2$bgcolor4$sitename$io_db$module_url$list_page_items$hm_index;

    
$option trim($option);

    
$query trim($query);

    
$query FixQuotes(nl2br(filter_text($query)));

    
$db->escape_string($query);

    
$db->escape_string($option);

        
alpha_search($query);
    ... 


In questo caso la variabile che passa i valori è $query quindi andiamo ad applicare la funzione htmlentities():

PHP Code:
    $query FixQuotes(nl2br(filter_text(htmlentities($query)))); 


Se avete problemi postate qui, oppure consultate i manuali di php su queste 3 funzioni che abbiamo visto:

http://it.php.net/htmlentities
http://it2.php.net/htmlspecialchars
http://it2.php.net/strip_tags

La seguente guida puo' essere utilizzata liberamente su qualsiasi sito includendo senza modifiche il copyright.

English Version: http://www.googlebig.com/forum/en-xss-gu...t-195.html


"There is no patch for human stupidity" - K. D. M.

This post was last modified: 29-02-2008 12:09 PM by Langy.

unknown browser unknown system
Browser e O.S.: 
19-02-2008 06:34 PM
Visit this user's website Find all posts by this user Quote this message in a reply
Post Reply  Post Thread 

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  Guida Completa alla vulnerabilita' XSS N3t.Sh4rk 6 246 25-03-2008 10:15 PM
Last Post: N3t.Sh4rk
  Guida XSS - 3a Parte - Modelli Js Langy 4 533 19-12-2007 09:07 PM
Last Post: Langy
  Guida XSS - 1a Parte Langy 14 1.160 25-11-2007 05:52 PM
Last Post: Langy
  Guida XSS - 2a Parte Langy 0 491 11-09-2007 09:38 AM
Last Post: Langy

View a Printable Version
Send this Thread to a Friend
Subscribe to this Thread | Add Thread to Favorites