Clientseitige Skripteinfügung (Skripteinfügung) bezieht sich auf das Einfügen ausführbarer Skripte in Objekte wie Formulare, Bilder, Animationen oder Hyperlinktext. Wenn der Benutzer diese Objekte öffnet, wird das vom Angreifer implantierte Skript ausgeführt und der Angriff beginnt.
Zu den HTML-Tags, die im Allgemeinen als Skriptimplantate verwendet werden können, gehören:
1. Seitenskripte wie Javascript und VBScript, die durch das Tag <script> gekennzeichnet sind. Sie können den js-Programmcode im <script>-Tag angeben oder den URL-Pfad der js-Datei im src-Attribut </script>
2. Das durch das
3 angegeben. Objekt markiert mit
4 angegeben. Objekt markiert mit
5 angegeben. Normalerweise wird der URL-Pfad der Webanwendung zur Verarbeitung von Formulardaten im Aktionsattribut angegeben.
Angriffsschritte für die clientseitige Skriptimplantation
1 Der Angreifer meldet sich auf der Website an, nachdem er sich als registriert hat normaler Benutzer
2. Öffnen Sie die Nachrichtenseite und fügen Sie den Angriffs-JS-Code ein
3. Andere Benutzer melden sich auf der Website an (einschließlich Administratoren) und durchsuchen den Inhalt dieser Nachricht
4. Im Nachrichteninhalt versteckt Der js-Code wird ausgeführt und der Angriff ist erfolgreich
Instanz
Datenbank
TABELLE ERSTELLEN `postmessage` (
` id` int(11) NOT NULL auto_increment,
`subject` varchar(60) NOT NULL default ”,
`name` varchar( 40) NOT NULL default ”,
`email` varchar(25) NOT NULL default ”,
`question` mediumtext NOT NULL,
`postdate` datetime NOT NULL Standard '0000-00-00 00:00: 00′,
PRIMÄRSCHLÜSSEL (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312 COMMENT='Benutzernachricht' AUTO_INCREMENT=69 ;
// add.php Nachricht einfügen
//list.php Nachrichtenliste
//show.php Nachricht anzeigen
Senden Sie die Nachricht unten
Beim Durchsuchen dieser Nachricht wird das js-Skript ausgeführt
Insert<script>while(1){ windows.open();}< /script> Unendliches Popup-Feld </script>
Einfügen <script>location.href="http://www.php1.cn/"></script>
oder verwenden Sie andere selbst erstellte JS-Code-Angriffe
Präventionsmethoden
Verwenden Sie im Allgemeinen die Funktion htmlspecialchars, um Sonderzeichen in HTML-Codierung umzuwandeln
Funktionsprototyp
string htmlspecialchars (string string, int quote_style , string charset)
string ist der zu kodierende String
quote_style ist optional. Der Wert kann ENT_COMPAT, ENT_QUOTES, ENT_NOQUOTES sein. Der Standardwert ENT_COMPAT bedeutet, dass nur doppelte Anführungszeichen konvertiert werden und einfache Anführungszeichen nicht. ENT_QUOTES gibt an, dass sowohl doppelte als auch einfache Anführungszeichen konvertiert werden müssen. ENT_NOQUOTES gibt an, dass doppelte und einfache Anführungszeichen nicht konvertiert werden. Der Zeichensatz
ist optional und gibt den verwendeten Zeichensatz an. Die Funktion
konvertiert die folgenden Sonderzeichen in HTML-Kodierung >
& —-> &" —-> '> ; —-> >Ändern Sie Zeile 98 von show.php in Dann überprüfen Sie die Schwachstellenseite, auf der js eingefügt istDas Obige ist die vollständige Lösung der PHP-Schwachstellen (3) – die Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!