Fil-qosor: Biex tivverifika d-database għal kodiċi malizzjuż, fittex f'esportazzjoni jew kopja b'queries li jaqraw biss skripts introdotti, indirizzi barranin u kodiċi moħbi fil-kontenut u fl-issettjar. Ivverifika wkoll triggers, avvenimenti skedati, proċeduri maħżuna u l-utenti tad-database. Naddaf biss wara l-evalwazzjoni u qatt b'tiftix u sostituzzjoni għomja, għax data serjalizzata inkella tinkiser.
Il-punt għomja ta' ħafna tindif
Wara dħul bla permess il-biċċa l-kbira tal-operaturi jivverifikaw il-fajls. Jissostitwixxu l-qalba tas-CMS, iħassru fajls suspettużi ta' PHP u jerġgħu jinstallaw l-estensjonijiet. Il-websajt wara tidher nadifa, u ġimgħa wara terġa' tirridirezzjona lejn paġni barranin. Ir-raġuni ħafna drabi tinsab fid-database, li waqt it-tindif ittieħdet kif kienet.
Għall-attakkanti d-database hija moħba attraenti. Skript f'widget jiġi mwassal fuq kull paġna. Issettjar tal-indirizz mibdul jiddevja lill-viżitaturi kollha. Kont ta' amministratur addizzjonali jiftaħ il-bieb għal aktar tard. L-ebda wieħed minn dawn ma jidher fi skan tal-fajls.
Wara PHP2Shell, il-vulnerabbiltajiet CVE-2026-109618 u CVE-2026-109619 b'eżekuzzjoni ta' kodiċi mingħajr login, id-database għalhekk tagħmel parti minn kull verifika. Min jista' jesegwixxi kodiċi fuq is-server jista' bħala regola jaqra d-dettalji tad-database mill-konfigurazzjoni u jikteb hemmhekk kif irid. Kif l-applikazzjoni tikkomunika fil-fatt mad-database jispjegah PHP u databases: PDO u mysqli.
Fejn jinħbew kodiċi malizzjuż fid-database
| Post tas-sejba | Kontenut tipiku | Effett |
|---|---|---|
| Kontenut (artikoli, paġni, prodotti) | blokki <script>, links inviżibbli, <iframe> |
kodiċi malizzjuż jew spam għall-viżitaturi |
| Issettjar u għażliet | indirizz tal-websajt mibdul, skripts barranin f'widgets jew għażliet tat-theme | ridirezzjonijiet, skripts fuq il-paġni kollha |
| Tabelli tal-utenti | amministraturi addizzjonali | aċċess permanenti |
| Triggers | kodiċi li f'kull ħażna jibdel il-kontenut | il-kodiċi malizzjuż jirritorna wara t-tindif |
| Avvenimenti skedati | kompiti rikorrenti fis-server tad-database | bidliet mingħajr aċċess tal-web |
| Utenti tad-database | kontijiet addizzjonali b'drittijiet wiesgħa | aċċess barra mis-CMS |
L-aħħar tliet linji spiss jiġu injorati, għax ma jinsabux fit-tabelli tas-CMS imma fis-server tad-database innifsu.
Fil-ħwienet online sejba waħda tixraq attenzjoni partikolari: issettjar li permezz tiegħu jiddaħħlu skripts addizzjonali fil-checkout u fit-tmiem tal-ordni. Skript barrani f'dan il-post jista' jaqra l-input tal-klijenti qabel ma jintbagħat ikkriptat lill-fornitur tal-pagamenti. Għalhekk ivverifika b'mod immirat l-oqsma kollha għal kodiċi ta' header u footer, inklużjonijiet ta' traċċar u issettjar tad-disinn li jaffettwaw il-paġni tal-kaxxa.
Ftakar ukoll f'databases oħra fuq l-istess server. Kopji ta' test u staging, stadji qodma tal-proġett jew databases ta' websajts oħra spiss jinsabu ħdejn u jistgħu jintlaħqu bl-istess dettalji tal-aċċess. Dak li jinstab fid-database live għandu jiġi vverifikat hemmhekk ukoll, qabel ma kopja terġa' tintuża aktar tard bħala bażi.
Iċċekkja d-database għal kodiċi malizzjuż: kontenut u issettjar
Aħdem fuq esportazzjoni. Hija fl-istess ħin salvataġġ tal-provi u bażi tat-tiftix. L-esportazzjoni tista' tiġi ffittxija bħala fajl tat-test, mingħajr ma jitgħabba d-database li taħdem:
# Oħloq esportazzjoni konsistenti (id-dettalji tal-aċċess jintalbu)
mysqldump --single-transaction --routines --triggers --events -u BENUTZER -p DATENBANK > export.sql
sha256sum export.sql > export.sql.sha256
# Għodd mudelli tipiċi fl-esportazzjoni
grep -oiE '<script[^>]{0,80}' export.sql | sort | uniq -c | sort -rn | head -30
grep -oiE '(eval\(|base64_decode|fromCharCode|document\.write|atob\()' export.sql | sort | uniq -c
grep -oiE 'https?://[a-z0-9.-]+' export.sql | sort | uniq -c | sort -rn | head -50
L-aħħar query telenka d-dominji kollha li jidhru fid-database, skont il-frekwenza. Dominji barranin li ħadd fit-tim ma jafhom huma l-aqwa kandidati. Għal queries immirati fid-database innifsha huma adattati kmandi SELECT. L-eżempju juża tabelli ta' WordPress; il-prefiss u l-ismijiet tat-tabelli ta' sistemi oħra jinsabu fid-dokumentazzjoni tagħhom:
-- Issettjar b'skripts jew b'funzjonijiet suspettużi
SELECT option_name, LENGTH(option_value) AS laenge
FROM wp_options
WHERE option_value LIKE '%<script%'
OR option_value LIKE '%eval(%'
OR option_value LIKE '%base64_decode%'
ORDER BY laenge DESC;
Daħliet b'kontenut kbir ħafna jixirqilhom attenzjoni partikolari. Sfond dwar moħbijiet speċifiċi ta' WordPress jagħti l-gwida Sib backdoors f'WordPress.
Triggers, avvenimenti u kontijiet tad-database
Triggers u avvenimenti skedati f'ħafna applikazzjonijiet tal-web mhumiex previsti xejn. Jekk jeżistu, xi ħadd għandu jkun jista' jispjega għaliex. Dawn il-queries jaqraw biss mit-tabelli tas-sistema ta' MySQL u MariaDB:
-- Triggers fid-databases kollha
SELECT TRIGGER_SCHEMA, TRIGGER_NAME, EVENT_OBJECT_TABLE, CREATED
FROM information_schema.TRIGGERS;
-- Avvenimenti skedati
SELECT EVENT_SCHEMA, EVENT_NAME, STATUS, CREATED, LAST_EXECUTED
FROM information_schema.EVENTS;
-- Proċeduri u funzjonijiet maħżuna
SELECT ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, CREATED
FROM information_schema.ROUTINES
WHERE ROUTINE_SCHEMA NOT IN ('mysql', 'sys', 'information_schema', 'performance_schema');
-- Utenti tad-database
SELECT user, host FROM mysql.user ORDER BY user;
Jekk l-applikazzjoni tiegħek tuża PostgreSQL jew sistema oħra ta' database, it-tabelli tas-sistema u l-kmandi jisimhom differenti; il-prinċipju jibqa' l-istess. Għall-analiżi jixraq utent tad-database separat li jista' jaqra biss. Hekk anke żball tat-tajpjar f'query ma jibdel xejn, u l-verifika ma tħallix traċċi fid-data.
Trigger li jehmeż kodiċi meta tinħażen artiklu jispjega għaliex il-kodiċi malizzjuż jirritorna wara kull tindif. Utenti mhux magħrufa tad-database jappartjenu għall-verifika tal-kontijiet daqs il-kontijiet tal-amministratur fis-CMS; aktar dwar dan taħt Sib kontijiet barranin ta' amministratur fis-CMS u fis-server.
Naddaf sewwa, mingħajr ma teqred data
It-tindif huwa l-aktar parti delikata. Din is-sekwenza ppruvat ruħha:
- Evalwa s-sejbiet: kull hit jiġi kklassifikat bħala magħruf, spjegabbli bla ħsara jew barrani. Kodiċijiet ta' traċċar u ta' mapep spiss ikunu leġittimi.
- Agħlaq il-bieb tad-dħul: ġib PHP għal stat rranġat (8.5.12, 8.4.27, 8.3.36, 8.2.35 jew backport ikkonfermat), erġa' ibda l-workers kollha, aġġorna l-applikazzjoni.
- Neħħi b'mod immirat: naddaf kontenut barrani permezz tal-applikazzjoni jew b'għodod li jittrattaw sew data serjalizzata. Ħassar triggers, avvenimenti u kontijiet barranin.
- Biddel id-dettalji tal-aċċess: password ġdida tad-database, daħħalha fil-konfigurazzjoni tal-applikazzjoni, illimita d-drittijiet tal-utent tal-applikazzjoni għad-database tiegħu stess.
- Ivverifika mill-ġdid: irrepeti l-queries tat-tiftix wara ftit jiem.
Tissostitwixxi xejn b'tiftix u sostituzzjoni fl-esportazzjoni SQL. Data serjalizzata ta' PHP taħżen it-tul ta' kull string. Jekk it-tul jinbidel, l-issettjar isir illeġibbli, u l-websajt tista' tfalli.
Ridirezzjonijiet li jidhru minkejja database nadifa għandhom il-kawża tagħhom f'saff ieħor. L-artikolu Il-websajt tirridirezzjona lejn paġni barranin jgħin fl-irrestrinġiment.
Kif tgħin PHP SOS b'mod konkret?
- Insalvaw id-database b'checksum u nfittxu fl-esportazzjoni skripts, dominji barranin u kodiċi moħbi.
- Nivverifikaw triggers, avvenimenti, proċeduri u utenti tad-database li jinsabu barra mis-CMS.
- Innaddfu s-sejbiet bħala parti mit-Tneħħija tal-malware, mingħajr ma nagħmlu ħsara lid-data serjalizzata.
- Nillimitaw id-drittijiet tal-utent tal-applikazzjoni u nirrepetu l-verifika wara t-tindif.
Mistoqsijiet frekwenti
Jista' jkun hemm kodiċi malizzjuż fid-database?
Iva. L-attakkanti jiktbu JavaScript f'artikoli, deskrizzjonijiet ta' prodotti jew widgets, ibiddlu l-issettjar tal-indirizzi għal ridirezzjonijiet jew joħolqu kontijiet ta' amministratur. F'MySQL u MariaDB barra minn hekk triggers u avvenimenti skedati jistgħu jibdlu d-data. Skan tal-fajls ma jsib xejn minn dan.
Kif infittex fid-database mingħajr ma neqred xejn?
Aħdem fuq esportazzjoni jew kopja u uża biss queries SELECT. Esportazzjoni tista' wkoll tiġi ffittxija bħala fajl tat-test b'grep. Il-bidliet isiru biss meta kull sejba tkun ġiet evalwata u jkun hemm backup.
Għaliex m'għandix innaddaf is-sejbiet bit-tiftix u s-sostituzzjoni fl-esportazzjoni?
Ħafna CMS jaħżnu l-issettjar bħala data serjalizzata ta' PHP, fejn it-tul ta' kull string jinħażen ukoll. Sostituzzjoni tibdel it-tul, imma mhux l-indikazzjoni, u l-issettjar isir illeġibbli. Naddaf permezz tal-applikazzjoni jew b'għodod li jifhmu data serjalizzata.
Kull skript fid-database huwa suspettuż?
Le. Kodiċijiet ta' traċċar, mapep, vidjows jew widgets tal-chat jinħażnu wkoll bħala skript. Id-deċiżiv huwa jekk xi ħadd fit-tim jafx id-daħla u l-indirizz tad-destinazzjoni.