Script-Injection in PHP-Webseite

Wir schauen uns ein wenig auf dem System um und finden im Web-Root (/var/www/html) eine Datei index.html, in der der Hacker eine Erpressungsmeldung hinterlassen hat. Man soll ihm ein Bitcoin überweisen. Allerdings fehlt die Bitcoin-Adresse. Weiterhin finden wir eine Datei originalIndex.php, bei der es sich scheinbar um die Original-Webseite handelt. Diese enthält eine ziemlich triviale Script-Injection-Lücke:

  1. if($_GET['password'] != "" && $_GET['file'] != "") {
  2. $command = "/home/readFile ".
  3. $_GET['password'].
  4. " insurances/".
  5. $_GET['file'];
  6. }

Stellenmarkt
  1. Information Security Architect (m/w/d)
    NEMETSCHEK SE, München
  2. SAP FI CO Process Consultant (m/w/d)
    Schenck Process Europe GmbH, Darmstadt
Detailsuche

Und später:

  1. <?php system($command); ?>

Die Variable $command wird also mit den GET-Variablen password und file zu einer Kommandozeile ohne Filterung oder Escaping eingebaut. Diese wird anschließend ausgeführt. Das ausgeführte Programm readFile finden wir ebenfalls, samt zugehörigem Quellcode readFile.c.

Im C-Code finden wir einen trivialen Stack-Buffer-Overflow. Das zweite Kommandozeilenargument (argv[2]) wird in einen Array mit einer begrenzten Größe geschrieben. Die Datei readFile ist auch ohne Stack Canaries und ohne das für ASLR notwendige PIE-flag kompiliert. Damit wäre ein Exploit für diesen Overflow vergleichsweise einfach.

Golem Akademie
  1. Penetration Testing Fundamentals: virtueller Zwei-Tage-Workshop
    17.–18. Januar 2022, Virtuell
  2. Elastic Stack Fundamentals – Elasticsearch, Logstash, Kibana, Beats: virtueller Drei-Tage-Workshop
    26.–28. Oktober 2021, Virtuell
Weitere IT-Trainings

Der Angreifer hat also zwei Möglichkeiten, mit den Rechten des Webserver-Users www-data Code auszuführen. Wir gehen davon aus, dass der Hacker die Script-Injection-Lücke genutzt hat, da sich kaum jemand die Mühe machen würde, in so einem Fall einen Buffer Overflow auszunutzen. Zu diesem Zeitpunkt kennt der Angreifer ja auch das Programm readFile nicht, besitzt somit für einen derartigen Angriff wenig Informationen. Dass die PHP-Script-Injection-Lücke blind ausgenutzt wird, erscheint plausibler.

Neben diesen Lücken finden wir noch ein Verzeichnis insurances, in dem sich ungeschützt zwei Kundendatensätze befinden. Sie sind übers Web abrufbar, allerdings gibt es kein Directory Listing. Ein Angreifer, der keine der Code-Execution-Lücken nutzt, müsste also die Dateinamen (0815, 0816) erraten.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Forensik Challenge: Lust auf eine Cyber-Stelle beim BND? Golem.de hilft!Remote-Shell in gelöschter Webserver-Logdatei 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6.  


Loading... 05. Mai 2017

Mag ja solche Challenges und würde sie gerne, wie vorgesehen lösen, also nicht über den...

digidax 05. Apr 2017

In welcher Datei wurde der Logeintrag: 192.168.1.11 - - [23/Nov/2016:10:13:32 +0100...

N3X 04. Apr 2017

Hallo Golem Team, ihr schreibt, dass es für einen Angreifer nicht möglich sei zu...

N3X 03. Apr 2017

hat hiermit recht wenig zu tun. Schau dir mal die VM an, und wie die Auth. abläuft. Du...

ClausWARE 21. Mär 2017

Also das Fazit am ende ließt sich nicht gerade wie Wrbung für den BND.



Aktuell auf der Startseite von Golem.de
Fälschung
Wieder Abmahnungen wegen Youporn-Streaming

Diesmal hat sich ein besonders dummer Betrüger an Abmahnungen zum Streaming bei Youporn versucht. In dem Brief stimmt fast keine Angabe.

Fälschung: Wieder Abmahnungen wegen Youporn-Streaming
Artikel
  1. Deutsche Telekom: Netflix, Facebook und Amazon sollen für Netzausbau zahlen
    Deutsche Telekom
    Netflix, Facebook und Amazon sollen für Netzausbau zahlen

    Deutsche Telekom, Vodafone und 11 weitere große europäische Netzbetreiber wollen jetzt Geld von den Content-Konzernen aus den USA sehen.

  2. Telekom-Internet-Booster: Feldtest bringt über 600 statt 50 MBit/s ins Haus
    Telekom-Internet-Booster
    Feldtest bringt über 600 statt 50 MBit/s ins Haus

    Die Telekom beginnt mit 5G DSL. Dafür wird im Haushalt eine Außenantenne benötigt.

  3. 800 MHz: Bundesnetzagentur dürfte nächste Auktion absagen
    800 MHz
    Bundesnetzagentur dürfte nächste Auktion absagen

    1&1 wird sich das neue Vorgehen nicht gefallen lassen. 800 MHz bietet wichtige Flächenfrequenzen auf dem Lande.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Heute ist Cyber Monday • AMD Ryzen 7 5800X 348€ • 3 für 2: Star Wars & Marvel • Bis 300€ Direktabzug auf TVs, Laptops uvm. • Bis 50% auf beyerdynamic + Gratis-Kopfhörer • Cyber Monday bei MM/Saturn (u. a. Xiaomi 11 Lite 5G 299€) • Alternate (u. a. be quiet CPU-Kühler 29,99€) [Werbung]
    •  /