An cás reatha: PHP2Shell. Ceadaíonn dhá leochaileacht chriticiúla PHP (CVSS 9.2) cód mailíseach gan logáil isteach. Paistí ar fáil ón 21 Deireadh Fómhair 2026.Cad atá le déanamh anois →

Cód PHP doiléirithe a aithint

Is comhartha clasaiceach de chód mailíseach a cuireadh isteach é cód PHP do-léite le eval agus base64_decode. Cé na patrúin le lorg, conas iad a aimsiú gan baol agus cathain a bhíonn doiléiriú dleathach.

Staid Am léitheoireachta: 6 nóim.Brath agus fóiréinsic

Go achomair: Is cód é cód PHP doiléirithe a rinneadh do-léite d'aon ghnó, den chuid is mó trí ionchódú agus comhbhrú nach réitítear ach le linn ama rite. Is patrúin aitheanta thipiciúla iad eval le base64_decode, gzinflate nó str_rot13, línte an-fhada, teaghráin heicsa agus ainmneacha feidhmeanna a chuirtear le chéile as codanna aonair. Cuardaigh le horduithe grep neamhdhíobhálacha, ná rith an cód choíche agus déan comparáid idir faighte agus an pacáiste bunaidh.

Cén fáth a gcuireann ionsaitheoirí a gcód i bhfolach

An té a chuireann webshell nó cúldoras ar fhreastalaí, ba mhaith leis é a bheith gan aimsiú ar feadh i bhfad. Thabharfadh aon riarthóir a osclaíonn an comhad faoi deara cód inléite, agus gheobhadh aon scanóir é. Dá bhrí sin pacálann ionsaitheoirí a gcód: ionchódaítear é, comhbhrúitear é agus ní chuirtear le chéile arís é agus ní ritear é ach nuair a ghlaotar air.

Do PHP2Shell níl aon Indicators of Compromise deimhnithe ann. Ní gné den leochaileacht seo é cód doiléirithe, ach comhartha ginearálta gur chuir duine cód isteach, pé bealach a tháinig sé. Conas webshells a aimsiú agus a bhaint ina n-iomláine, déanann Webshell a aithint agus a bhaint cur síos air. Díríonn an t-alt seo ar an gceist cad iad na comharthaí a aithníonn cód doiléirithe.

eval, base64 agus eile: na bloic thógála tipiciúla

Leanann doiléiriú an prionsabal céanna beagnach i gcónaí: iompaíonn feidhm amháin nó níos mó bloc sonraí do-léite ar ais ina chód a ritear ansin. Tagann na bloic thógála seo chun cinn arís agus arís eile.

Bloc tógála Samplaí Cén fáth a dtugtar faoi deara é
Rith eval, assert le teaghrán (go PHP 7.x), create_function (go PHP 7.x) ritheann sé téacs mar chód
Díchódú base64_decode, str_rot13, hex2bin, strrev, convert_uudecode déanann sé sonraí inléite arís
Díchomhbhrú gzinflate, gzuncompress, gzdecode díphacálann sé cód leabaithe
Cur le chéile slabhraí chr(), nascadh píosaí gearra, escapes \x folaíonn sé ainmneacha feidhmeanna
Glaoch dinimiciúil athróga mar ainm feidhme, call_user_func, array_map le teaghrán ní fheictear an glaoch in áit ar bith i ngnáth-théacs
Rochtain chórais system, exec, shell_exec, passthru, proc_open, popen orduithe ar an bhfreastalaí

De réir lámhleabhar PHP, ní mheasann assert() teaghráin mar chód a thuilleadh ó PHP 8.0 i leith, agus baineadh create_function() i PHP 8.0. Ar fhreastalaithe le seanleaganacha PHP fanann an dá cheann ina dtéarmaí cuardaigh ábhartha.

Is annamh a bhíonn bloc tógála aonair amhrasach, úsáideann a lán feidhmchlár base64_decode go dleathach, mar shampla. Éiríonn an teaglaim amhrasach: díchódú a ritheann a thoradh go díreach isteach i rith.

Cuardach gan baol: orduithe grep neamhdhíobhálacha

Ní chuardaíonn na horduithe seo ach comhaid mar théacs. Ní ritheann siad aon chód PHP. Oiriúnaigh an cosán.

# Rith comhcheangailte le díchódú nó díchomhbhrú
grep -rlE "(eval|assert)\s*\(\s*(base64_decode|gzinflate|gzuncompress|str_rot13|hex2bin)" /var/www --include="*.php*"

# Línte an-fhada (cód pacáilte go minic)
grep -rlE ".{2000,}" /var/www --include="*.php*"

# Go leor escapes heicsa nó slabhraí chr() i líne amháin
grep -rlE "(\\\\x[0-9a-fA-F]{2}){20,}" /var/www --include="*.php*"
grep -rlE "(chr\s*\(\s*[0-9]+\s*\)\s*\.\s*){8,}" /var/www --include="*.php*"

# Glaoch feidhme trí athróg díreach tar éis sannadh ó theaghráin
grep -rnE "\\\$[a-zA-Z_]+\s*=\s*['\"][a-z_]{4,}['\"]\s*;\s*\\\$[a-zA-Z_]+\s*\(" /var/www --include="*.php*" | head -50

Seiceáil torthaí ar dtús le ls -l agus an stampa ama agus oscail iad ansin mar théacs amháin, mar shampla le less. Ná glaoigh comhaid amhrasacha tríd an mbrabhsálaí choíche, mar ritheann an freastalaí iad dá bharr.

Cá mbíonn cód doiléirithe go hiondúil

Is annamh a bhíonn cód doiléirithe i gcomhad ar leith, suntasach. Is minic a chuirtear isteach i gcomhaid atá ann cheana é, ag an tús nó ag an deireadh, go minic tar éis go leor línte folamh ionas nach dtabharfar faoi deara láithreach é agus an comhad á oscailt. Tá comhaid a luchtaítear le gach glaoch coitianta: an index.php lárnach, comhaid chumraíochta agus comhaid feidhmeanna téama.

Téann bealach thar a bheith neamhshuntasach tríd an gcumraíocht. Leis an socrú auto_prepend_file luchtaíonn PHP comhad breise roimh gach script. Má tá sé i .user.ini nó .htaccess a chruthaigh ionsaitheoir, ritheann a chód le gach glaoch leathanaigh, gan aon chomhad feidhmchláir amháin a bheith athraithe. Is minic a bhíonn iarmhír neamhdhíobhálach ar nós .ico nó .png ar an gcomhad cuimsithe.

# An luchtaítear cód breise roimh nó tar éis gach script?
grep -rnE "auto_(prepend|append)_file" /var/www --include=".user.ini" --include=".htaccess" --include="*.conf" 2>/dev/null

# Cód PHP i gcomhaid le hiarmhír íomhá nó deilbhín
grep -rlE "<\?php" /var/www --include="*.ico" --include="*.png" --include="*.jpg" --include="*.gif" 2>/dev/null

Doiléiriú dleathach a dheighilt ó chód mailíseach

Ní mailíseach gach cód do-léite. Tarlaíonn trí chás go minic:

  1. Ionchódóirí tráchtála: Cosnaíonn roinnt monaróirí breiseán agus bogearraí a gcód le huirlisí ar nós ionCube nó SourceGuardian. Tá na comhaid do-léite, ach tagraíonn siad go hiondúil don luchtóir riachtanach. Déan comparáid leis an bpacáiste bunaidh.
  2. Cód mionaithe nó giniúnaithe: Cruthaíonn taisceanna agus innill teimpléad línte fada gan bristeacha, ach gan téacs díchódaithe a rith.
  3. Sonraí leabaithe: Tá íomhánna nó clófhoirne mar theaghrán Base64 i gcomhad PHP neamhghnách, ach neamhdhíobhálach fad nach ritear an toradh.

Is é an tástáil is iontaofa ná comparáid leis an bhfoinse: má thagann an comhad gan athrú ó phacáiste an mhonaróra, tá sé dleathach. Mura bhfuil sé in aon phacáiste bunaidh nó má tá sé difriúil uaidh, ba cheart é a scrúdú.

Tábhachtach

Ná déan iarracht cód doiléirithe a dhíchriptiú ar an bhfreastalaí táirgeachta, mar shampla trí eval a chur in ionad aschuir agus an comhad a ghlaoch. Rithfeadh fiú earráid amháin an cód mailíseach. Baineann an anailís le timpeallacht scartha.

Teorainneacha an chuardaigh patrún

Tá aithne ag ionsaitheoirí ar na horduithe cuardaigh coitianta. Roinneann siad ainmneacha feidhmeanna, cuireann siad le chéile iad le linn ama rite nó aistrítear an fíorchód isteach sa bhunachar sonraí, i gcomhaid íomhá nó in iontrálacha cumraíochta. Aimsíonn cuardach patrún go leor dá bhrí sin, ach ní gach rud. Cén fáth a dtagann scanóirí ar theorainneacha anseo freisin, míníonn Scanóirí mailware do shuíomhanna gréasáin: cad a aimsíonn siad agus cad nach n-aimsíonn.

Is annamh gurb é an t-aon cheann é fáil. Úsáideann ionsaitheoirí an bloc tógála céanna i roinnt comhad go minic, mar shampla ainm athróige suntasach nó teaghrán suntasach ag tús an bhloc ionchódaithe. Tar éis fáil dheimhnithe, cuardaigh go cuspóirúil dá bhrí sin an teaghrán sin go beacht san eolaire gréasáin ar fad, i suíomhanna gréasáin eile ar an bhfreastalaí céanna freisin. Ar an gcaoi sin aimsíonn tú comhaid ghaolmhara nár ghabh aon cheann de na cuardaigh phatrún ghinearálta.

Cuir leis an gcuardach comparáid le bunchomhaid agus súil sa bhunachar sonraí, féach An bunachar sonraí a sheiceáil le haghaidh cód a cuireadh isteach. Mar chosc is féidir feidhmeanna córais nach bhfuil gá leo a bhac, mar a dhéantar cur síos air sa treoir disable_functions a úsáid i gceart.

Conas a chabhraíonn PHP SOS go praiticiúil?

  • Cuardach: Cuardaímid comhaid agus an bunachar sonraí le patrúin leathnaithe agus déanaimid comparáid le bunphacáistí.
  • Anailís: Scrúdaímid cód amhrasach i dtimpeallacht scartha, gan do chóras a chur i mbaol.
  • Glanadh: Leis an mBaint Mailware bainimid gach cuid agus dúnaimid an bealach isteach.
  • Cosaint: Teorannaímid feidhmeanna PHP agus cearta scríofa agus déanaimid faireachán ar chomhaid nua nó athraithe.

Ceisteanna coitianta

An cód mailíseach i gcónaí é eval le base64_decode?

Ní i gcónaí, ach an-mhinic. Is ar éigean a theastaíonn an teaglaim seo ó chód dleathach. I gcomhaid nach mbaineann le d'fheidhmchlár ná le breiseán aitheanta, is comhartha rabhaidh láidir é.

An bhfuil cead agam cód doiléirithe a dhíchódú le go léifinn é?

Gan é a rith agus ní ar an bhfreastalaí táirgeachta amháin. D'fhéadfadh rith de thaisme dochar a dhéanamh. I gcás amhrais fág an anailís d'eolaithe a oibríonn i dtimpeallachtaí scartha.

Cén fáth nach bhfaigheann mo scanóir mailware an cód?

Cuardaíonn scanóirí patrúin aitheanta. Athraíonn ionsaitheoirí a gcód i gcónaí, roinneann siad ainmneacha feidhmeanna nó cuireann siad le chéile iad le linn ama rite. Dá bhrí sin ní cruthúnas é scanadh folamh go bhfuil freastalaí glan.

Cad faoi bhreiseáin criptithe go tráchtála?

Cosnaíonn roinnt monaróirí a gcód le hionchódóirí ar nós ionCube nó SourceGuardian. Tá comhaid den sórt sin do-léite, ach dleathach má thagann siad ón monaróir. Déan comparáid leis an bpacáiste bunaidh.

An gcabhraíonn disable_functions in aghaidh cód doiléirithe?

Go páirteach. Is féidir feidhmeanna ar nós exec nó system a bhac, ach ní eval, mar is tógáil teanga é seachas feidhm. Cuireann an bac isteach ar chéim dár gcionn an ionsaitheora, ach ní chuireann sé cosc ar gach cód mailíseach.

Foinsí

Teagmháil láithreach

Cuireann gach uair an chloig leis. Scríobh chugainn anois.

Déan cur síos gearr ar an gcóras, leagan PHP agus an rud a thug tú faoi deara. Cuirfimid scéala chugat, soiléireoimid an cás agus oibreoimid go cianda go dtí go mbeidh an teagmhas dúnta agus doiciméadaithe.

Cabhair láithreach