PHP Fatal error: Uncaught mysqli_sql_exception:

Fragen zur Installation von CONTENIDO 4.10? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Bernhard_4711
Beiträge: 144
Registriert: Do 25. Jul 2019, 16:08
Hat sich bedankt: 5 Mal
Kontaktdaten:

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Beitrag 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?
Zuletzt geändert von Bernhard_4711 am Fr 19. Jul 2024, 13:10, insgesamt 1-mal geändert.
---
Munterbleiben... Bernhard
Bernhard_4711
Beiträge: 144
Registriert: Do 25. Jul 2019, 16:08
Hat sich bedankt: 5 Mal
Kontaktdaten:

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Beitrag 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.
---
Munterbleiben... Bernhard
Oldperl
Beiträge: 4314
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 3 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Beitrag 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
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
xmurrix
Beiträge: 3200
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 1 Mal
Danksagung erhalten: 9 Mal
Kontaktdaten:

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Beitrag 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.
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Oldperl
Beiträge: 4314
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 3 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Beitrag 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
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Bernhard_4711
Beiträge: 144
Registriert: Do 25. Jul 2019, 16:08
Hat sich bedankt: 5 Mal
Kontaktdaten:

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Beitrag 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.
---
Munterbleiben... Bernhard
Bernhard_4711
Beiträge: 144
Registriert: Do 25. Jul 2019, 16:08
Hat sich bedankt: 5 Mal
Kontaktdaten:

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Beitrag 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"?
---
Munterbleiben... Bernhard
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Beitrag 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...
*** make your own tools (wishlist :: thx)
Bernhard_4711
Beiträge: 144
Registriert: Do 25. Jul 2019, 16:08
Hat sich bedankt: 5 Mal
Kontaktdaten:

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Beitrag 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:
---
Munterbleiben... Bernhard
Bernhard_4711
Beiträge: 144
Registriert: Do 25. Jul 2019, 16:08
Hat sich bedankt: 5 Mal
Kontaktdaten:

Re: PHP Fatal error: Uncaught mysqli_sql_exception:

Beitrag 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:
---
Munterbleiben... Bernhard
Antworten