Seite 2 von 2

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Verfasst: Fr 19. Jul 2024, 11:23
von Bernhard_4711
Ich habe im LOG wieder dieselbe Fehlermeldung wie eingangs gefunden:

Code: Alles auswählen

[18-Jul-2024 21:15:53 UTC] PHP Fatal error:  Uncaught mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '\\)\\\\"'' at line 1 in /var/www/btmr/contenido/classes/db/class.db.driver.mysqli.php:210
Stack trace:
#0 /var/www/btmr/contenido/classes/db/class.db.driver.mysqli.php(210): mysqli_query()
#1 /var/www/btmr/contenido/classes/db/class.db.driver.handler.php(811): cDbDriverMysqli->query()
#2 /var/www/btmr/contenido/classes/search/class.search.php(411): cDbDriverHandler->query()
#3 /var/www/btmr/cms/data/modules/content_search_results/php/class.module.search_result.php(257): cSearch->searchIndex()
#4 /var/www/btmr/cms/data/modules/content_search_results/php/class.module.search_result.php(187): SearchResultModule->_performSearch()
#5 /var/www/btmr/contenido/includes/frontend/include.front_content.php(715) : eval()'d code(182): SearchResultModule->__construct()
#6 /var/www/btmr/contenido/includes/frontend/include.front_content.php(715): eval()
#7 /var/www/btmr/cms/front_content.php(43): include('...')
#8 {main}
  thrown in /var/www/btmr/contenido/classes/db/class.db.driver.mysqli.php on line 210
Jetzt habe ich aber die dazu passenden Zugriffs-LOG-Zeilen herausgesucht:

Code: Alles auswählen

54.36.148.51 - - [18/Jul/2024:21:10:34 +0200] "GET /reisen/rhone-seealpen/rhone-seealpen.html HTTP/1.1" 200 11083 "-" "Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/)"
 - - [18/Jul/2024:21:10:35 +0200] "GET /cms/cache/reisen.css?v=1721327073 HTTP/1.1" 200 4410 "-" "Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/)"
 - - [18/Jul/2024:21:10:36 +0200] "GET /cms/cache/reisen.js?v=1721327073 HTTP/1.1" 200 4135 "-" "Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/)"
 - - [18/Jul/2024:21:19:31 +0200] "GET / HTTP/1.1" 200 10195 "-" "Hello World"
Und hier die gewünschten Angaben zu meinem System:
  • Server Betriebssystem: Linux server 6.8.0-38-generic #38-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 7 15:25:01 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
  • Apache 2.4.58-1
  • PHP 8.3.6
  • Python 3.12.3
  • MariaDB 10.11.8
  • Habe ich etwas vergessen?

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Verfasst: Fr 19. Jul 2024, 12:33
von Bernhard_4711
Ich habe die Suchfunktion komplett entfernt, da ich
  1. nur eine recht kleine und übersichtliche Seite habe und
  2. diese Fehlermeldungen damit hoffentlich eliminiert habe.

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Verfasst: Fr 19. Jul 2024, 12:36
von Oldperl
Servus,

alternativ hättest Du auch diesen Bot per robots.txt aussperren können.

:arrow: https://www.seo-kueche.de/lexikon/robots-txt/

Gruß aus Franken

Ortwin

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Verfasst: Fr 19. Jul 2024, 12:40
von xmurrix
Zu deinem Suchbutton:
Auf der Seite wird eine suchausgabe.css geladen, das sollte die CSS des Moduls sein.
Darin steht folgendes drin:

Code: Alles auswählen

input.search {
    height: 1em;
    width: 60%;
    border: 1px solid #484903;
}
Besser ist es, wenn du da die Höhe entfernst:

Code: Alles auswählen

input.search {
    width: 60%;
    border: 1px solid #484903;
}
Vielleicht solltest du auch die Breite entfernen, das finale Ergebnis wäre dann:

Code: Alles auswählen

input.search {
    border: 1px solid #484903;
}
Zur der Fehlermeldung, die immer noch erscheint:
Diese Informationen helfen zwar uns, aber es wäre besser, wenn sie nicht öffentlich sind, vor allem nicht die Zugriffs-LOG-Zeilen. Ich empfehle dir, diese aus dem Beitrag zu anonymisieren, so dass die IP-Adressen nicht für alle sichtbar sind.

Keines der Zugriffs-LOG-Zeilen ist eine Anfrage, die auf die Suche geht.
Die Suchformulare werden per POST versendet, da müsste dann in den Zugriffs-LOG-Zeilen folgender Eintrag vorkommen:

Code: Alles auswählen

xxx.xxx.xxx.xxx - - [DD/MMM/YYYY:HH:MM:SS +0200] "POST /pfad_zur_seite.html HTTP/1.1" 200 11083 "-" "Useragent String"
Alternativ kann man die Suche per GET-Parameter ausführen, dann sollte in den Zugriffs-LOG-Zeilen folgender Eintrag zu finden sein:

Code: Alles auswählen

xxx.xxx.xxx.xxx - - [DD/MMM/YYYY:HH:MM:SS +0200] "GET /pfad_zur_seite.html?search_term={suchtext} HTTP/1.1" 200 11083 "-" "Useragent String"
Der Text {suchtext} ist hierbei ein Platzhalter, da steht der eigentliche Text, nach dem gesucht werden soll.

Warum bei dir immer noch Fehler bei der Suche auftauchen, müsste geprüft werden. Wir haben zumindest den Teil, den die Datenbank moniert, eventuell kann man daraus die Ursprungsvariante des Suchtextes ableiten.

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Verfasst: Fr 19. Jul 2024, 12:45
von Oldperl
xmurrix hat geschrieben: Fr 19. Jul 2024, 12:40 Wir haben zumindest den Teil, den die Datenbank moniert, eventuell kann man daraus die Ursprungsvariante des Suchtextes ableiten.
Dafür wären halt die entsprechenden Server-Logs hilfreich. Dort sollte diese Suchanfrage auch geloggt sein.

Gruß aus Franken

Ortwin

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Verfasst: Fr 19. Jul 2024, 13:14
von Bernhard_4711
Oldperl hat geschrieben: Fr 19. Jul 2024, 12:45 Dafür wären halt die entsprechenden Server-Logs hilfreich. Dort sollte diese Suchanfrage auch geloggt sein.
Wo finde ich diese Server-LOG's? Ich finde nur die Apache-LOG's. Und deren entsprechenden Inhalt habe ich gepostet.

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Verfasst: Sa 27. Jul 2024, 10:55
von Bernhard_4711
Heute habe ich, trotz deaktivierter Suchfunktion, erneut diese ominösen Fehlermeldungen erhalten.
Auch hier ein Auszug aus dem Error-LOG:

Code: Alles auswählen

[27-Jul-2024 06:33:30 UTC] PHP Fatal error:  Uncaught mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '\\(\\.|\\.\\('' at line 1 in /var/www/btmr/contenido/classes/db/class.db.driver.mysqli.php:210
Stack trace:
#0 /var/www/btmr/contenido/classes/db/class.db.driver.mysqli.php(210): mysqli_query()
#1 /var/www/btmr/contenido/classes/db/class.db.driver.handler.php(811): cDbDriverMysqli->query()
#2 /var/www/btmr/contenido/classes/search/class.search.php(411): cDbDriverHandler->query()
#3 /var/www/btmr/cms/data/modules/content_search_results/php/class.module.search_result.php(257): cSearch->searchIndex()
#4 /var/www/btmr/cms/data/modules/content_search_results/php/class.module.search_result.php(187): SearchResultModule->_performSearch()
#5 /var/www/btmr/contenido/includes/frontend/include.front_content.php(715) : eval()'d code(172): SearchResultModule->__construct()
#6 /var/www/btmr/contenido/includes/frontend/include.front_content.php(715): eval()
#7 /var/www/btmr/cms/front_content.php(43): include('...')
#8 {main}
  thrown in /var/www/btmr/contenido/classes/db/class.db.driver.mysqli.php on line 210

#####################################################################################
# Zwischen diesen beiden Einträgen ca. 230 weitere identische Fehlermeldungen.      #
# Nur der Eintrag in "for the right syntax to use near '....'" ist unterschiedlich. #
#####################################################################################

[27-Jul-2024 06:46:15 UTC] PHP Fatal error:  Uncaught mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'union|all|select|null|null\\#'' at line 1 in /var/www/btmr/contenido/classes/db/class.db.driver.mysqli.php:210
Stack trace:
#0 /var/www/btmr/contenido/classes/db/class.db.driver.mysqli.php(210): mysqli_query()
#1 /var/www/btmr/contenido/classes/db/class.db.driver.handler.php(811): cDbDriverMysqli->query()
#2 /var/www/btmr/contenido/classes/search/class.search.php(411): cDbDriverHandler->query()
#3 /var/www/btmr/cms/data/modules/content_search_results/php/class.module.search_result.php(257): cSearch->searchIndex()
#4 /var/www/btmr/cms/data/modules/content_search_results/php/class.module.search_result.php(187): SearchResultModule->_performSearch()
#5 /var/www/btmr/contenido/includes/frontend/include.front_content.php(715) : eval()'d code(172): SearchResultModule->__construct()
#6 /var/www/btmr/contenido/includes/frontend/include.front_content.php(715): eval()
#7 /var/www/btmr/cms/front_content.php(43): include('...')
#8 {main}
  thrown in /var/www/btmr/contenido/classes/db/class.db.driver.mysqli.php on line 210
...und der dazu passende Auszug aus dem Zugriffs-LOG:

Code: Alles auswählen

nn.nn.nn.nn - - [27/Jul/2024:06:24:18 +0200] "GET /reisen/sueddeutschland/sueddeutschland.html HTTP/1.1" 200 9513 "-" "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
nn.nn.nn.nn - - [27/Jul/2024:06:38:59 +0200] "GET /robots.txt HTTP/1.1" 301 566 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.1.2 Mobile/15E148 Safari/604"
nn.nn.nn.nn - - [27/Jul/2024:06:39:00 +0200] "GET /robots.txt HTTP/1.1" 302 2998 "http://bt-motorrad.reisen/robots.txt" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.1.2 Mobile/15E148 Safari/604"
nn.nn.nn.nn - - [27/Jul/2024:06:39:00 +0200] "GET /fehlerseite.html?error=1 HTTP/1.1" 404 12061 "https://bt-motorrad.reisen/robots.txt" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.1.2 Mobile/15E148 Safari/604"
nn.nn.nn.nn - - [27/Jul/2024:06:39:00 +0200] "GET / HTTP/1.1" 301 546 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.1.2 Mobile/15E148 Safari/604"
nn.nn.nn.nn - - [27/Jul/2024:06:39:00 +0200] "GET / HTTP/1.1" 200 5937 "http://bt-motorrad.reisen/" "Mozilla/5.0 (iPhone; CPU iPhone OS 17_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.1.2 Mobile/15E148 Safari/604"
nn.nn.nn.nn - - [27/Jul/2024:06:45:33 +0200] "GET /.env HTTP/1.1" 302 2994 "-" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36"
Wie zu sehen ist, gibt es keine Überschneidungen der Zeiten.
Ich bin nun am Ende meiner Weisheit!
Kann es sein, daß Contenido "von sich aus" irgend etwas "sucht"?

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Verfasst: Sa 27. Jul 2024, 12:41
von emergence
nein, contenido sucht von sich aus nix...

das ist mit sicherheit ein angriff eines bots der diverse sql injections an searchterm(vermutlich so benannt) sendet...

sachen wie

\\(\\.|\\.\\('
union|all|select|null|null\\#'

etc...

seitens zeiten des logs einerseits hast du UTC im errorlog und +2:00 bei den logs...
vielleicht bei den logs nachsehen -2:00h

auf alle fälle müsste sich dort was mit searchterm oder zb union|all finden lassen...

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Verfasst: Sa 27. Jul 2024, 15:00
von Bernhard_4711
emergence hat geschrieben: Sa 27. Jul 2024, 12:41 seitens zeiten des logs einerseits hast du UTC im errorlog und +2:00 bei den logs...
vielleicht bei den logs nachsehen -2:00h
Oh, Sch*benkleister! Daran habe ich gar nicht gedacht. Mea culpa, mea maxima culpa.
Wenn ich im Access-LOG +2:00 suche, finde ich tatsächlich diese Suchbegriffe. Und ich habe zwar die Suche auf der Seite an sich abgeschaltet, aber die Datei suchausgabe.html existiert nach wie vor! Und die wird explizit aufgerufen! Da muß ich noch einmal bei!

Code: Alles auswählen

nn.nn.nn.nn - - [27/Jul/2024:08:33:24 +0200] "GET /suchausgabe.html?search_term=1&NZiE%3D6409%20AND%201%3D1%20UNION%20ALL%20SELECT%201%2CNULL%2C%27%3Cscript%3Ealert%28%22XSS%22%29%3C%2Fscript%3E%27%2Ctable_name%20FROM%20information_schema.tables%20WHERE%202%3E1--%2F%2A%2A%2F%3B%20EXEC%20xp_cmdshell%28%27cat%20..%2F..%2F..%2Fetc%2Fpasswd%27%29%23 HTTP/1.1" 403 2837 "-" "Opera/9.30 (Nintendo Wii; U; ; 2047-7;es)"
Vielen Dank für diesen kleinen Gedanken-Schubser! :wink:

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Verfasst: So 28. Jul 2024, 11:10
von Bernhard_4711
Bernhard_4711 hat geschrieben: Sa 27. Jul 2024, 15:00 aber die Datei suchausgabe.html existiert nach wie vor!
...ist nun auch offline... :wink: