Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 02:10

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



XSS in BBCodes verhindern

Discussion on XSS in BBCodes verhindern within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 25
Join Date: Sep 2011
Posts: 5,536
Received Thanks: 1,266
XSS in BBCodes verhindern

Hey Leute,

ich bin aktuell ein wenig am verzweifeln, es geht um eine XSS in BBCodes.

Und zwar hat einer meiner User mich auf folgende Lücke hingewiesen:


Zum parsen der Codes nutze ich folgendes:


Ich habe nun echt einige Lösungen gefunden, aber die beruhen meist darauf Befehle einfach vorher raus zu filtern (Wo ich das Problem sehe das ich wohl kaum alle raus filtern kann) oder einfach folgende Zeichen raus filter:
Quote:
" ' < >
Das Problem ist, bei folgendem Code sind diese Zeichen gar nicht erst vorhanden:
Code:
[URL="javascript:alert(document.cookie);"]javascript:alert(document.cookie);[/URL]
Meine allgemein Idee wäre, irgendwie dem Browser zu sagen das ab dieser stelle kein Javascript geparsed werden soll, jedoch wüsste ich nicht das es so eine Möglichkeit gibt, und wenn, wie weit ist das ganze abwärts kompatibel?

Mir ist auch aufgefallen das bei epvp das bspw. ebenfalls einfach nicht ausgeführt wird:


Ich hoffe ihr könnte mir irgendwie weiter helfen.

Gruß,
Padrio (<(`-´)>)
IchVerabschiedeMich is offline  
Old 02/19/2015, 17:31   #2

 
xEncounter's Avatar
 
elite*gold: 22
Join Date: Nov 2009
Posts: 1,552
Received Thanks: 361
Quote:
Originally Posted by <(`-´)> View Post
Hey Leute,

ich bin aktuell ein wenig am verzweifeln, es geht um eine XSS in BBCodes.

Und zwar hat einer meiner User mich auf folgende Lücke hingewiesen:


Zum parsen der Codes nutze ich folgendes:


Ich habe nun echt einige Lösungen gefunden, aber die beruhen meist darauf Befehle einfach vorher raus zu filtern (Wo ich das Problem sehe das ich wohl kaum alle raus filtern kann) oder einfach folgende Zeichen raus filter:


Das Problem ist, bei folgendem Code sind diese Zeichen gar nicht erst vorhanden:
Code:
[URL="javascript:alert(document.cookie);"]javascript:alert(document.cookie);[/URL]
Meine allgemein Idee wäre, irgendwie dem Browser zu sagen das ab dieser stelle kein Javascript geparsed werden soll, jedoch wüsste ich nicht das es so eine Möglichkeit gibt, und wenn, wie weit ist das ganze abwärts kompatibel?

Mir ist auch aufgefallen das bei epvp das bspw. ebenfalls einfach nicht ausgeführt wird:


Ich hoffe ihr könnte mir irgendwie weiter helfen.

Gruß,
Padrio (<(`-´)>)
Das du dir die Cookies nicht anzeigen lassen kannst, ist ein Schutz vor Javascript. Durch den Cookie paramater httponly.

PHP Code:

$secure 
true;
    
// Damit wird verhindert, dass JavaScript auf die session id zugreifen kann.
    
$httponly true;
    
// Zwingt die Sessions nur Cookies zu benutzen.
    
if (ini_set('session.use_only_cookies'1) === FALSE) {
echo 
'Nope unsicher, stirb.';
        exit();
    }
    
// Holt Cookie-Parameter.
    
$cookieParams session_get_cookie_params();
    
session_set_cookie_params($cookieParams["lifetime"],
        
$cookieParams["path"], 
        
$cookieParams["domain"], 
        
$secure,
        
$httponly); 
xEncounter is offline  
Old 02/19/2015, 17:37   #3
 
elite*gold: 25
Join Date: Sep 2011
Posts: 5,536
Received Thanks: 1,266
Ich nutze Laravel als Famework, und werde grade ehrlich gesagt aus deinem Code nicht sehr viel schlauer.
Es geht nicht explizit um Cookies, sondern das ich im allgemeinen Cross-Site Scripting verhindern will.
IchVerabschiedeMich is offline  
Old 02/19/2015, 17:53   #4

 
xEncounter's Avatar
 
elite*gold: 22
Join Date: Nov 2009
Posts: 1,552
Received Thanks: 361
Quote:
Originally Posted by <(`-´)> View Post
Ich nutze Laravel als Famework, und werde grade ehrlich gesagt aus deinem Code nicht sehr viel schlauer.
Es geht nicht explizit um Cookies, sondern das ich im allgemeinen Cross-Site Scripting verhindern will.
Das trägt zum XSS SchutzBei. Im Falle, dass es dem Angreifer gelingt ist deine Session ID sicher.

Benutze bei jeder Benutzereingabe einen .

Gib den Input am besten immer mit htmlspecialchars() oder noch extremer htmlentities() aus, dann werden alle Zeichen escaped.
xEncounter is offline  
Old 02/19/2015, 18:04   #5
 
elite*gold: 25
Join Date: Sep 2011
Posts: 5,536
Received Thanks: 1,266
Liest du eigentlich überhaupt was ich schreibe?

Quote:
Originally Posted by xEncounter View Post
Das trägt zum XSS SchutzBei. Im Falle, dass es dem Angreifer gelingt ist deine Session ID sicher.
Gerne, schau ich mal wie genau man das jetzt in Laravel implementieren kann.

Quote:
Originally Posted by xEncounter View Post
Benutze bei jeder Benutzereingabe einen .
Mach ich bei Laravel über die Rules - keine Sorge; Ich bin nicht komplett bescheuert was das ganze Thema angeht.

Quote:
Originally Posted by xEncounter View Post
Gib den Input am besten immer mit htmlspecialchars() oder noch extremer htmlentities() aus, dann werden alle Zeichen escaped.
Escaped trotzdem nicht den obigen Code.
IchVerabschiedeMich is offline  
Old 02/20/2015, 07:59   #6
 
elite*gold: 0
Join Date: Feb 2015
Posts: 141
Received Thanks: 32
Also ich sehe bei

Code:
[URL="javascript:alert(document.cookie);"]javascript:alert(document.cookie);[/URL]
schon 2x das "
Asuna. is offline  
Old 02/20/2015, 09:58   #7
 
KoKsPfLaNzE's Avatar
 
elite*gold: 0
Join Date: Jan 2009
Posts: 731
Received Thanks: 233
du koenntest den bbcode parser nutzen, der faengt das meines wissens alles ab.



zf2 module
KoKsPfLaNzE is offline  
Thanks
1 User
Old 02/20/2015, 17:02   #8

 
xEncounter's Avatar
 
elite*gold: 22
Join Date: Nov 2009
Posts: 1,552
Received Thanks: 361
Quote:
Originally Posted by Asuna. View Post
Also ich sehe bei

Code:
[URL="javascript:alert(document.cookie);"]javascript:alert(document.cookie);[/URL]
schon 2x das "
Ich denke das liegt daran wie der den BBCode liest, wenn htmlspecialchars nicht escaped...
Quote:
Folgende Umwandlungen werden vorgenommen:

'&' (Ampersand/kaufmännisches Und) wird zu '&'.
'"' (doppeltes Anführungszeichen) wird zu '"', wenn ENT_NOQUOTES nicht gesetzt ist.
"'" (einfaches Anführungszeichen) wird nur zu '&#039;', wenn ENT_QUOTES gesetzt ist.
'<' (kleiner als) wird zu '<'
'>' (größer als) wird zu '>'
Anders kann ich mir das nicht erklären.
xEncounter is offline  
Old 02/20/2015, 17:35   #9
 
elite*gold: 25
Join Date: Sep 2011
Posts: 5,536
Received Thanks: 1,266
Quote:
Originally Posted by KoKsPfLaNzE View Post
du koenntest den bbcode parser nutzen, der faengt das meines wissens alles ab.



zf2 module
Was auch immer mir das zf2 module bringen soll
Ich erstell daraus demnächst ein Laravel Package und schau dann weiter obs funktioniert, danke schonmal
Hast ja anscheinend schonmal das ganze für Composer ported, danke dafür, werde ich als Grundlage nutzen.
IchVerabschiedeMich is offline  
Old 02/21/2015, 01:20   #10
 
KoKsPfLaNzE's Avatar
 
elite*gold: 0
Join Date: Jan 2009
Posts: 731
Received Thanks: 233
das zf2 module sollte als bsp dienen, wusste net ob das bei laravel irgendwie verwenden kannst.
KoKsPfLaNzE is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
[Suggestion] Markdown als Alternative zu BBCodes
06/02/2014 - Suggestions & Feedback - 8 Replies
Ich fände es mal schön,wenn Markdown Support hinzugefügt würde. Markdown ermöglicht es anstatt BBCodes und Bildern einen Thread/Post übersichtlich zu erstellen. Wie ist eure Meinung darüber
BBCodes for dummies
10/16/2013 - CO2 PServer Guides & Releases - 6 Replies
im not after reputation or thanks or anything, im just sick of people who can't use BBCodes for a full list and definition HERE if you still can't understand here is more simple explanation BBCodes are like html tags, you start it as '' and end it with '' without the quotes, and add the value (which is the text you want to edit or link or picture or anything) between them this text is align to left by default
BBcodes und so nä!
07/08/2007 - Main - 3 Replies
Hallo familie!1 kann mal mir wer sagen wie das mit den animierten bildern in der signatur geht? zb das mit dem roflvator und so das is rattengeil, will Ich aber nich kopieren is ja gemein! währe Net wenn ihr mich aufkären könnt sufu hat nix ergeben!! text2schild.php?smilienummer=1&text=Hab euch lieb!1' border='0' alt='Hab euch lieb!1' />



All times are GMT +2. The time now is 02:10.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.