Ich betreibe einen CentOS 7.x VPS mit Apache 2.4.29 und PHP 7.0.28 und habe angefangen, Folgendes in meinen Protokollen zu sehen. Ich habe php.ini seit einiger Zeit so gut wie möglich aus Online-Artikeln gesichert, aber ich frage mich, warum ich einen HTTP-Statuscode von 200 Erfolg sehe, wenn sie Folgendes tun, und frage mich, was es bewirkt und wie man es verhindern kann. Soweit ich es beurteilen kann, die()
ist es das Äquivalent von exit()
. Ist dies ein bekannter älterer Pufferüberlauf-Exploit?
Unterm Strich stellt sich jedoch die Frage, warum es wieder erfolgreich ist und welchen Schaden es angerichtet hat.
[18/Mar/2018:09:57:21 +0000] "POST /?q=die('z!a'.'x');&w=die('z!a'.'x');&e=die('z!a'.'x');&r=die('z!a'.'x');&t=die('z!a'.'x');&y=die('z!a'.'x');&u=die('z!a'.'x');&i=die('z!a'.'x');&o=die('z!a'.'x');&p=die('z!a'.'x');&a=die('z!a'.'x');&s=die('z!a'.'x');&d=die('z!a'.'x');&f=die('z!a'.'x');&g=die('z!a'.'x');&h=die('z!a'.'x');&j=die('z!a'.'x');&k=die('z!a'.'x');&l=die('z!a'.'x');&z=die('z!a'.'x');&x=die('z!a'.'x');&c=die('z!a'.'x');&v=die('z!a'.'x');&b=die('z!a'.'x');&n=die('z!a'.'x');&m=die('z!a'.'x');&eval=die('z!a'.'x');&enter=die('z!a'.'x'); HTTP/1.1" 200 3564
Antwort1
Dies ist eine Blindsonde für Schwachstellen in PHP-Webanwendungen. Wenn Sie eine PHP-Webanwendung haben, die irgendwie Code aus nicht vertrauenswürdigen Eingaben ausführt, aus einem der angegebenen Abfrageparameter, wird das Skript beendet und z!ax
in der Ausgabe der Webseite gedruckt.
Wenn dies geschieht, kommt der Prüfer später (vielleicht Sekunden später) zurück, um die Schwachstelle tatsächlich auszunutzen.