Benutzername    Passwort    Autologin    
  Passwort vergessen       Registrieren  
beeForum Foren-übersicht » hal9000 » mod support
Neues Thema eröffnen   Neue Antwort erstellen Hervorhebung entfernen


Snippet: Knuffel-Fix gegen Hacking attempts
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
boris



Beiträge: 10136

Titel: Snippet: Knuffel-Fix gegen Hacking attempts
Verfasst am: Mo, 29 Okt 2007, 22:52
Beitrag
Antworten mit Zitat

Bei Knuffel kann man extrem einfach bescheißen: einfach im Quelltext die Werte für "id" und "check" nachkucken, sich dann eine "score" ausdenken und ratzfatz führt man die Rangliste an.

knuffel.php?id=173&score=206&check=716665

Hier die Abhilfe:

- beim Abschicken des Ergebnisses wird zunächst per AJAX eine Datei aufgerufen, die in der Datenbank die tatsächlich erreichten Punkte hinterlegt - allerdings nur, wenn die aufrufende Datei auch die knuffel.php ist (sonst könnte man ja einfach vor dem Hacken einfach die Speicher-Datei aufrufen und hätte dasselbe Ergebnis)

- beim tatsächlichen Speichern der Punktzahl wird verglichen, ob die übergebende Punktzahl mit der vorher gespeicherten übereinstimmt - wenn nicht: hacking attempt !


Zunächst die Tabelle erweitern:

Code:
ALTER TABLE `phpbb_knuffel` ADD `prescore` SMALLINT( 3 ) NOT NULL AFTER `name`;

Und jetzt die Änderungen in den Dateien:

Code:
#
#-----[ OPEN ]------------------------------------------
#
knuffel.php

#
#-----[ FIND ]------------------------------------------
#
   if ( $row['checker'] != $submitcheck ) {
      die("Hacking attempt");
      }

#
#-----[ AFTER, ADD ]------------------------------------------
#
   if ( $row['prescore'] != $submitscore ) {
      die("Hacking attempt");
      }

#
#-----[ OPEN ]------------------------------------------
#
knuffel/script/d6.js

#
#-----[ FIND ]------------------------------------------
#
function Submit() {
   var url;
   if (sum <= 0) {
      url = 'knuffel.php';
   }
   else {
      url = 'knuffel.php?id='+id+'&score='+sum+'&check='+control;
   }
   top.location = url;
}

#
#-----[ REPLACE WITH ]------------------------------------------
#
var http = createRequestObject();

function Submit() {
   if (sum > 0) {
      http.open('get', 'knuffel/save.php?id='+id+'&score='+sum);
      http.onreadystatechange = handleResponse;
      http.send(null);
   }
}

function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

function handleResponse() {
    if(http.readyState == 4){
      top.location = 'knuffel.php?id='+id+'&score='+sum+'&check='+control;
   }
}

#
#-----[ CREATE FILE ]------------------------------------------
#
# Dateiname: knuffel/save.php
<?
   $str_knuffel = "[DEINFPADZUR]knuffel.php"; // PFAD ANPASSEN !!

   if ((!empty($_REQUEST['id'])) && (!empty($_REQUEST['score'])))
   {
      // phpBB
      define('IN_PHPBB', 1);
      $phpbb_root_path = "../";
      require($phpbb_root_path.'extension.inc');
      include($phpbb_root_path.'common.'.$phpEx);
      $userdata = session_pagestart($user_ip, PAGE_KNUFFEL);
      init_userprefs($userdata);

      if ($userdata['user_id'] == $_REQUEST['id'])
      {
         if ( $_SERVER['HTTP_REFERER'] == $str_knuffel )
         {
            $prequery = "UPDATE " . KNUFFEL_TABLE . " SET prescore = '" . $_REQUEST['score'] . "' WHERE user = '" . $_REQUEST['id'] . "'";
         }
         else
         {
            $prequery = "UPDATE " . KNUFFEL_TABLE . " SET prescore = 0 WHERE user = '" . $_REQUEST['id'] . "'";
         }

         $result = $db->sql_query($prequery);
      }
   }
?>

Bei mir läufts damit - bisher keine Idee, wie man noch hacken könnte.


____________
beehave - home of humbug ... [we can't afford to be neutral]

Nach oben
Private Nachricht senden Website dieses Benutzers besuchen Rang:godmode methusalem 3. platz professioneller Sportangler Profi-Winzer (7x Hamm) Arcade-Meister, Rang 16 rainbow-cup
svenfranzisko



Beiträge: 777

Titel: (Kein Titel)
Verfasst am: Di, 30 Okt 2007, 13:27
Beitrag
Antworten mit Zitat

Danke!
Haste dem Entwickler schon bescheid gesagt?


____________
Wer andern eine Bratwurst brät, hat ein Bratwurstbratgerät
http://spackonauten.de

Nach oben
Private Nachricht senden Website dieses Benutzers besuchen Rang:superaddict methusalem Sportangler, 1. Bundesliga Profi-Trinker (3x Hamm)
boris



Beiträge: 10136

Titel: (Kein Titel)
Verfasst am: Di, 30 Okt 2007, 13:28
Beitrag
Antworten mit Zitat

svenfranzisko @ Di, 30 Okt 2007, 12:27 gab folgendes von sich:
Haste dem Entwickler schon bescheid gesagt?

Nope, mach ich mal eben ...


____________
beehave - home of humbug ... [we can't afford to be neutral]

Nach oben
Private Nachricht senden Website dieses Benutzers besuchen Rang:godmode methusalem 3. platz professioneller Sportangler Profi-Winzer (7x Hamm) Arcade-Meister, Rang 16 rainbow-cup
boris



Beiträge: 10136

Titel: (Kein Titel)
Verfasst am: Do, 01 Nov 2007, 22:04
Beitrag
Antworten mit Zitat

Hier die Antwort:

Zitat:
Hi,

danke für die Mail, das "Problem" ist mir seit Anfang klar... Wink

Ich habe diesen rudimentären Sicherheitscheck nur eingebaut, um es dem Standard-User, der noch nicht mal weiss, was Quelltext ist, das cheaten zu erschweren.
Deine Snipplets beziehen sich auf Knuffel 1, was ich immer nur als "1. Versuch" betrachtet habe...
Inzwischen gibt es Knuffel v2, wo ich das Problem des Cheatens etwas anders angehe. Da es aber beim Beta-Test bei 1 von 100 Usern noch Probleme gab, ist dort bislang noch der alte Code integriert, inzwischen bin ich aber dazu gekommen, es nochmal zu überarbeiten und im nächsten oder übernächsten Update wird die neue Cheat-Protection enthalten sein (läuft dann über Session-Variablen).

Trotzdem Danke!

Gruss

Mike

Neue Version ziehe ich mir gleich und passe die dann hier ein.


____________
beehave - home of humbug ... [we can't afford to be neutral]

Nach oben
Private Nachricht senden Website dieses Benutzers besuchen Rang:godmode methusalem 3. platz professioneller Sportangler Profi-Winzer (7x Hamm) Arcade-Meister, Rang 16 rainbow-cup
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    beeForum Foren-übersicht » hal9000 » mod support Seite 1 von 1
Gehe zu:  



ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge John Updike - Gegen Ende der Zeit boris kühnes mittelscharfer 0 Mi, 04 Okt 2017, 22:56 Letzten Beitrag anzeigen
Keine neuen Beiträge Knuffel Statistik Mai 2017 Pfeife laufmasche 0 Do, 01 Jun 2017, 00:00 Letzten Beitrag anzeigen
Keine neuen Beiträge Knuffel Statistik Februar 2017 Pfeife laufmasche 0 Mi, 01 März 2017, 01:00 Letzten Beitrag anzeigen
Keine neuen Beiträge Knuffel Statistik September 2016 Pfeife laufmasche 0 Sa, 01 Okt 2016, 00:00 Letzten Beitrag anzeigen
Keine neuen Beiträge Knuffel Statistik April 2016 Pfeife laufmasche 0 So, 01 Mai 2016, 00:00 Letzten Beitrag anzeigen


Schreiben: nein. Antworten: nein. Bearbeiten: nein. Löschen: nein. Umfragen: nein.
phpBB © phpBB Group | impressum