Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 06:13

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

Advertisement



Tipps Sicherheit?

Discussion on Tipps Sicherheit? within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
Cc_Cc_Cc's Avatar
 
elite*gold: 0
Join Date: Mar 2011
Posts: 417
Received Thanks: 17
Tipps Sicherheit?

Tag,

war grad auf meiner HP und hab folgendes entdeckt.

Es waren über 500 Kommentare in einem Post und in anderen Post hat jeder ein Kommentar mit der Zeichenkette "1". Keiner macht sich aus Spaß die Mühe sich vorm PC hinzusetzen und überall ne 1 reinzukommentieren.

Ebensfalls habe ich entdeckt, dass einer etwas "kommentiert" hat von der Beitrag_id 127100. Kann ja nicht sein, da es nur bei mir maximal 50-100 Beiträge gibt. Wie konnte er jetzt dahin kommen? Und wie schafft es einer 4x hintereinander was gleiches zu Kommentieren in der gleichen Zeit. Hat jemand Ahnung was da passiert ist & wie man sowas fixxen kann und was ich eventuell beachten sollte?


Paar Bilder:

ID 127100

Datum (4x Hintereinander gleicher Eintrag)

Eventuell noch mein Code falls jemand rüberschauen möchte:

Falls einer ein Angriff austesten möchte:
Cc_Cc_Cc is offline  
Old 03/21/2018, 13:51   #2
dotCom
 
Devsome's Avatar
 
elite*gold: 9842
The Black Market: 107/0/0
Join Date: Mar 2009
Posts: 16,847
Received Thanks: 4,676
Wenn man diesen Code in die PowerShell kopiert, kann man Beiträge bei dir posten.
Code:
Invoke-WebRequest -Uri "http://test.liscon.bplaced.net/beta.php" -Method "POST" -Headers @{"Cookie"="PHPSESSID=440f08e98c7e27bdc7aab019013450a8"; "Origin"="http://test.liscon.bplaced.net"; "Accept-Encoding"="gzip, deflate"; "Accept-Language"="de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"; "User-Agent"="Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.33 Safari/537.36"; "Content-Type"="multipart/form-data; boundary=----WebKitFormBoundaryloEIoAiBEjWq7pnj"; "Accept"="*/*"; "Referer"="http://test.liscon.bplaced.net/beta.php"; "X-Requested-With"="XMLHttpRequest"} -Body ([System.Text.Encoding]::UTF8.GetBytes("------WebKitFormBoundaryloEIoAiBEjWq7pnj$([char]13)$([char]10)Content-Disposition: form-data; name=`"post`"$([char]13)$([char]10)$([char]13)$([char]10)kek$([char]13)$([char]10)------WebKitFormBoundaryloEIoAiBEjWq7pnj$([char]13)$([char]10)Content-Disposition: form-data; name=`"send_post`"$([char]13)$([char]10)$([char]13)$([char]10)Posten$([char]13)$([char]10)------WebKitFormBoundaryloEIoAiBEjWq7pnj--$([char]13)$([char]10)"))
Ich würde ein Token hinzufügen. Damit kannst du schon mal ein bisschen mehr Sicherheit holen.
Devsome is offline  
Thanks
1 User
Old 03/21/2018, 16:01   #3


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Wie Devsome bereits erwähnt hat würde ein CRSF-Token schon einmal ein Stückweit helfen, jedoch würde ich gegen Spam einfach ein Captcha einbauen.
Alternativ (oder auch zusätzlich) könntest du einbauen das ein Benutzer jede x Stunden nur 3 Kommentare schreiben kann (ob das sinn macht in deiner Anwendung musst du wissen, habe diese mir nicht angeschaut).

Dein Problem das die Id so hoch ist, ist auch logisch, da du die aus POST holst, somit kann jeder reinschreiben was er will..
Wofür ist die Id den da ?

Aus deiner SQL-Query werde ich nicht ganz schlau wieso das soviel ist/was du damit bezwecken willst.

Mit Curl geht es übrings noch leichter:
Quote:
curl -d "post=DEIN_TEXT&send_post=posten" -X POST
False is offline  
Old 03/21/2018, 16:13   #4
 
Cc_Cc_Cc's Avatar
 
elite*gold: 0
Join Date: Mar 2011
Posts: 417
Received Thanks: 17
Quote:
Originally Posted by .ƒaℓsє. View Post
Wie Devsome bereits erwähnt hat würde ein CRSF-Token schon einmal ein Stückweit helfen, jedoch würde ich gegen Spam einfach ein Captcha einbauen.
Alternativ (oder auch zusätzlich) könntest du einbauen das ein Benutzer jede x Stunden nur 3 Kommentare schreiben kann (ob das sinn macht in deiner Anwendung musst du wissen, habe diese mir nicht angeschaut).

Dein Problem das die Id so hoch ist, ist auch logisch, da du die aus POST holst, somit kann jeder reinschreiben was er will..
Wofür ist die Id den da ?

Aus deiner SQL-Query werde ich nicht ganz schlau wieso das soviel ist/was du damit bezwecken willst.
@False

Nehmen wir mal an ich habe ein Beitrag, den kann ich kommentieren. Jetzt muss ich ja wissen welchen Beitrag ich kommentiere. Deswegen ist ein Hidden-Feld post_id(p_id) da.

Also:
p_id, :u_id, :comment

Füge die post_id in die DB , damit ich weiß welchen Post ich kommentiere (wie eine Identifikation)
Füge User_id ein
Füge Kommentar ein.

Wie hättest du denn sowas gemacht, wenn du ein Kommentar posten willst? Anders gehts glaub ich doch nicht da man ja wissen muss in welchem Beitrag der Kommentar sich befindet.

€: kann jemand nochmal testen ob es klappt, hab grad ein Token eingefügt, und weiß nicht wo ich diese Zeilen einfügen kann von:
Quote:
curl -d "post=DEIN_TEXT&send_post=posten" -X POST
Cc_Cc_Cc is offline  
Old 03/21/2018, 16:16   #5


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Quote:
Originally Posted by Cc_Cc_Cc View Post
@False

Nehmen wir mal an ich habe ein Beitrag. Den kann ich kommentieren. Jetzt muss ich ja wissen welchen Beitrag ich kommentiere. Deswegen ist ein Hidden-Feld post_id(p_id) da.

Also:
p_id, :u_id, :comment

Füge die post_id in die DB , damit ich weiß welchen Post ich kommentiere (wie eine Identifikation)
Füge User_id ein
Füge Kommentar ein.

Wie hättest du denn sowas gemacht, wenn du ein Kommentar posten willst? Anders gehts glaub ich doch nicht da man ja wissen muss in welchem Beitrag der Kommentar sich befindet.
Informiere dich mal über foreign keys, wenn du diesen hast ist es nicht möglich irgendeine Id zu nutzen.
Somit kann nur eine passende (die existiert) genommen werden, je nachdem was deine Anwendung alles hat solltest du dennoch prüfen ob der User dort posten darf(da die Id dennoch geändert werden kann zu einer die existiert).
False is offline  
Old 03/21/2018, 16:19   #6
dotCom
 
Devsome's Avatar
 
elite*gold: 9842
The Black Market: 107/0/0
Join Date: Mar 2009
Posts: 16,847
Received Thanks: 4,676
Kannst doch immer noch Prüfen und die Tabellen mit foreign keys versehen.
Gibt es die p_id (postid?) bei dem Insert oder ist diese frei erfunden?

So kannst du auch schon mal die hohen Zahlen in der Tabelle verhindern, die halt nicht existieren.
Devsome is offline  
Old 03/21/2018, 16:21   #7
 
Cc_Cc_Cc's Avatar
 
elite*gold: 0
Join Date: Mar 2011
Posts: 417
Received Thanks: 17
Nice, noch nie davon gehört. Werde mich direkt mal Informieren. Aber sollte ich noch etwas beachten. Ihr habt mir schonmal geholfen vor CSXF zu schützen. Habt ihr noch ne Lücke entdeckt?
Cc_Cc_Cc is offline  
Old 03/21/2018, 16:23   #8


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Quote:
Originally Posted by Cc_Cc_Cc View Post
Nice, noch nie davon gehört. Werde mich direkt mal Informieren. Aber sollte ich noch etwas beachten. Ihr habt mir schonmal geholfen vor CSXF zu schützen. Habt ihr noch ne Lücke entdeckt?
Sollten es per CURL noch einmal testen, klappt aktuell nicht (Wobei ich auf der Seite selber auch nichts posten kann).
Ich denke du meinst CSRF, solltest du nicht wissen wofür der Token da ist => Lies dich ein!
False is offline  
Old 03/21/2018, 17:38   #9
 
Cc_Cc_Cc's Avatar
 
elite*gold: 0
Join Date: Mar 2011
Posts: 417
Received Thanks: 17
Quote:
Originally Posted by .ƒaℓsє. View Post
Sollten es per CURL noch einmal testen, klappt aktuell nicht (Wobei ich auf der Seite selber auch nichts posten kann).
Ich denke du meinst CSRF, solltest du nicht wissen wofür der Token da ist => Lies dich ein!
Hab mir das alles durchgelesen und getestet. Der Zeigt mir sozusagen ganze Zeit Exit an bzw er führt mein Code nicht aus. Hab es genau so eingeführt wie im Link oben vom Devsome.

Cc_Cc_Cc is offline  
Old 03/21/2018, 17:48   #10
dotCom
 
Devsome's Avatar
 
elite*gold: 9842
The Black Market: 107/0/0
Join Date: Mar 2009
Posts: 16,847
Received Thanks: 4,676
Wenn man logisch denkt, sieht man das
Code:
 $_SESSION['csfr_token'] = uniqid('', true);
vor
Code:
if($_POST['post_token'] !== $_SESSION['csfr_token']) {
aufgerufen wird.
Da kann der post_token auch nicht mehr gleich csrf_token sein.

Mach $_SESSION['csfr_token'] = uniqid('', true); einfach nach deiner Abfrage, aber so das der User dennoch einen hat wenn er nicht die POST ausführt.
Devsome is offline  
Old 03/21/2018, 18:55   #11
 
Cc_Cc_Cc's Avatar
 
elite*gold: 0
Join Date: Mar 2011
Posts: 417
Received Thanks: 17
Hab es grad die ganze Zeit ausprobiert, ebenfalls das Bsp auch was eigentlich wesentlich das gleiche ist:

nichts funktoniert, bin einfach zu bescheuert um es richtig zu machen. Kann es jemand für bezahlung kurz machen?
Cc_Cc_Cc is offline  
Reply


Similar Threads Similar Threads
***Sportwetten-Tipps-Fussball-Tipps-Tennis-Tipps***Wie Richtig Geld Machen?
12/06/2013 - Trading - 47 Replies
Sportwetten Erfolg mit unseren Sportwetten Strategie Tipps für Anfänger und Profis 1 Natrox TippPaket 9.90€ 1 Natrox Monats Paket 49,90 Euro



All times are GMT +1. The time now is 06:13.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

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