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 →

Rith PHP i bhfillteáin uaslódála a thoirmeasc

Teastaíonn dhá rud ó webshell: fillteán inar féidir í a scríobh agus freastalaí a ritheann í. Seo conas a bhainfidh tú an dara ceann di, agus i ngach fillteán inscríofa, ní in uploads amháin.

Staid Am léitheoireachta: 6 nóim.Cruatú agus cumraíocht

Go achomair: Chun rith PHP in uaslódálacha a thoirmeasc, faigh amach ar dtús na fillteáin go léir inar féidir le PHP scríobh, agus bac ansin i ngach ceann acu rith scripteanna i gcumraíocht an fhreastalaí, ní trí .htaccess. In Nginx ní mór don bhac a bheith i bhfeidhm roimh an mbloc PHP ginearálta, in Apache baineann sé leis an VirtualHost le AllowOverride None. Críochnaíonn security.limit_extensions = .php sa linn FPM agus tástáil le comhad neamhdhíobhálach an obair.

Cén fáth a bhfuil tábhacht ag fillteáin uaslódála anois go sonrach

Tar éis leochaileachta criticiúla ar nós PHP2Shell is annamh a theastaíonn ó ionsaitheoirí cód a rith uair amháin. Ba mhaith leo filleadh, fiú má phaistítear an freastalaí níos déanaí. Is é webshell an bealach is simplí chuige sin: comhad beag PHP, curtha i bhfillteán inscríofa agus glaoite níos déanaí tríd an mbrabhsálaí.

Ní bhaineann paiste a leithéid de chomhad. An té a bhí ar líne gan phaiste ón 20 Deireadh Fómhair 2026, ní hamháin go gcaithfidh sé nuashonrú, ach ba cheart dó seiceáil freisin an bhfuil comhaid PHP nua áit éigin, agus cosc a chur ar a rith amach anseo. Conas a léann tú fionnachtana, déanann Comhaid PHP san fhillteán uaslódála: fionnachtana a léamh i gceart cur síos air.

Tosaíonn an bac rite ag an dara coinníoll. Ní chuireann sé cosc ar chomhad a chur síos, ach ar an bhfreastalaí é a láimhseáil mar chlár.

Stoc ar dtús: cá bhfuil cead ag PHP scríobh?

Ní luann formhór na dtreoracha ach an fillteán uaslódála. Sa chleachtas scríobhann feidhmchlár PHP in i bhfad níos mó áiteanna. Teastaíonn an bac ó gach ceann acu atá inrochtana tríd an bhfreastalaí gréasáin.

Cineál fillteáin Inneachar tipiciúil Cén fáth inscríofa
Uaslódálacha, meáin íomhánna, PDFanna, ceangaltáin uaslódálann úsáideoirí agus eagarthóirí comhaid
Taisce leathanaigh ghinte, mionsamhlacha luasghéaraíonn an feidhmchlár seachadadh
Sealadach, allmhairiú, easpórtáil comhaid CSV, stáit idirmheánacha comhéadain agus malartú sonraí
Cúltacaí sa webroot .zip, .sql cuireann síntí cúltaca “ar an láthair”
Logaí sa webroot logaí earráide agus dífhabhtaithe feidhmchláir mhícumraithe

Cé na fillteáin iad sin ar do fhreastalaí, léiríonn cuardach le cearta an úsáideora ama rite. Ní athraíonn sé tada:

# Gach fillteán faoi /var/www inar féidir leis an úsáideoir PHP scríobh
# (an t-úsáideoir a oiriúnú: www-data, nginx, apache nó úsáideoir linne féin)
sudo -u www-data find /var/www -type d -writable 2>/dev/null | sort
# An bhfuil comhaid PHP sna fillteáin seo cheana?
sudo -u www-data find /var/www -type d -writable -print0 2>/dev/null \
  | xargs -0 -I{} find {} -maxdepth 1 -type f -iname "*.ph*" 2>/dev/null

Má thugann an chéad chuardach an webroot ar fad ar ais, baineann an cód clár leis an úsáideoir ama rite. Ba cheart duit sin a athrú roimh ré, mar a thuairiscíonn an treoir Cearta comhad ar an bhfreastalaí gréasáin. Ar shlí eile níl aon fhillteán ann nach mbeadh le bhlocáil.

Rith PHP in uaslódálacha a thoirmeasc: Nginx

In Nginx cinneann an t-ord. De réir dhoiciméadacht Nginx seiceáiltear abairtí rialta in ord an chomhaid chumraíochta, agus buann an chéad chiorclach. Má tá an bloc ginearálta location ~ \.php$ os comhair do bhac, ritear an comhad. Ní chosnaíonn location réimíre shimplí gan ^~ ar an gcúis chéanna.

Tá abairt rialta do gach fillteán blocáilte, a sheasann os comhair an bhloic PHP, sábháilte. Clúdaíonn sé iarmhíreanna annamh úsáidte freisin:

server {
    # ... Bunchumraíocht ...

    # 1. Bac do fhillteáin inscríofa, TEASTAÍONN go mbeidh sé os comhair an bhloic PHP
    location ~* ^/(uploads|media|cache|tmp|export)/.*\.(php\d?|phtml|phar|pht|phps)$ {
        deny all;
    }

    # 2. Bloc PHP ginearálta: ná tabhair ach comhaid atá ann
    location ~ \.php$ {
        try_files $uri =404;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/seite1.sock;
    }
}

Oiriúnaigh ainmneacha na bhfillteán do do stoc. I bhfeidhmchláir le pointe iontrála amháin tá an bealach trí liosta ceadaithe níos láidre fós; léiríonn Nginx a chumrú go slán do PHP an patrún.

Apache agus PHP-FPM: an bac san áit cheart

In Apache baineann an bac le cumraíocht an fhreastalaí nó leis an VirtualHost. Tá .htaccess san fhillteán uaslódála míoiriúnach, mar is féidir le duine ar bith a bhfuil cead scríbhneoireachta aige ansin é a athrú. Dá bhrí sin tá AllowOverride None i bhfeidhm don webroot ar fad. De réir dhoiciméadacht Apache ní cheadaítear AllowOverride ach i mbloic <Directory> gan abairtí rialta, mar sin socraíonn tú é ag an webroot agus an bac trí <DirectoryMatch> faoina bhun:

<Directory /var/www/seite1/public>
    AllowOverride None
    Require all granted
</Directory>

<DirectoryMatch "^/var/www/seite1/public/(uploads|media|cache|tmp|export)/">
    <FilesMatch "\.(php\d?|phtml|phar|pht|phps)$">
        Require all denied
    </FilesMatch>
</DirectoryMatch>

Má ritheann mod_php fós, cuir php_admin_flag engine off leis sa bhloc céanna. Le PHP-FPM oibríonn bacainn dara sa linn: socraíonn security.limit_extensions cé na hiarmhíreanna a ritheann FPM ar chor ar bith. De réir lámhleabhar PHP is é .php .phar an réamhshocrú; moltar an teorainn le .php.

; sa linn, m.sh. /etc/php/8.3/fpm/pool.d/seite1.conf
security.limit_extensions = .php

Tástáil le comhad neamhdhíobhálach

Ní léiríonn ach tástáil an bhfuil an bac i bhfeidhm. Cuir comhad i ngach fillteán blocáilte go gairid nach n-aschuireann ach téacs, glaoigh air tríd an bhfearann agus scrios é ina dhiaidh.

  1. Cumraíocht a sheiceáil: nginx -t nó apachectl configtest, ansin athluchtú.
  2. Comhad tástála a chruthú, mar shampla uploads/sperrtest.php leis an inneachar <?php echo 'ausgefuehrt';.
  3. Glaoigh air le curl -s -o /dev/null -w "%{http_code}\n" https://www.example.de/uploads/sperrtest.php. Táthar ag súil le 403.
  4. Má thaispeántar 200 agus an téacs “ausgefuehrt” ina ionad, níl an bac i bhfeidhm. Seiceáil an chumraíocht agus an t-ord.
  5. Scrios an comhad tástála agus déan an tástáil arís do gach fillteán agus gach suíomh gréasáin.
Tábhachtach

Má aimsíonn tú comhaid PHP anaithnide i bhfillteáin inscríofa le linn an stoic cheana féin, ná scrios aon rud go tapa. Cinntigh an staid agus na logaí ar dtús, mar is fianaise iad na comhaid seo. Conas a théann tú ar aghaidh ansin, déanann Webshells a aithint agus a bhaint cur síos air.

Conas a thógtar feidhmeanna uaslódála go slán sa chód, le seiceáil cineáil agus stóráil lasmuigh den webroot, tá sé sa treoir Uaslódálacha comhad a chur i bhfeidhm go slán i PHP.

Conclúid: scríobh sea, rith ní hea

Is ceann de na bearta aonair is éifeachtaí in aghaidh doirse cúil buana é an bac rite i bhfillteáin inscríofa. Cosnaíonn sé cúpla líne cumraíochta agus ní bhriseann sé aon rud i bhfeidhmchláir a tógadh go glan. Tá trí rud cinntitheach: stoc iomlán in ionad an fhillteáin uaslódála is soiléire amháin, an t-ord ceart in Nginx nó an leibhéal ceart in Apache, agus tástáil fhíor le comhad neamhdhíobhálach.

Curtha le húinéirí scartha don chód clár, security.limit_extensions sa linn agus cuardach rialta ar chomhaid PHP nua, tagann staid chun cinn inar comhad a cuireadh síos greannmhar ach is ar éigean in úsáid a thuilleadh. Ní chuireann sé sin ionad an nuashonraithe ná cuardach rianta, ach baineann sé ceann dá n-uirlisí is tábhachtaí d'ionsaitheoirí.

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

  • Stoc: Faighimid amach na fillteáin inscríofa go léir do gach suíomh gréasáin agus seiceálaimid iad ar chomhaid PHP atá ann.
  • Bacanna a shocrú: Iontrálaimid na bacanna rite in Nginx, Apache agus PHP-FPM, san ord ceart agus gan spleáchas ar .htaccess.
  • Tástáil: Seiceálaimid gach bac le comhad neamhdhíobhálach agus doiciméadaímid an toradh.
  • Glanadh: I gcás fionnachtana glacaimid le cinntiú rianta agus bhaint malware.

Ceisteanna coitianta

An leor .htaccess san fhillteán uaslódála chun PHP a thoirmeasc?

Ní go hiontaofa. An té is féidir leis scríobh isteach san fhillteán, is féidir leis an .htaccess a athrú nó a athsholáthar freisin. Baineann an bac le cumraíocht an fhreastalaí nó leis an VirtualHost, agus ba cheart AllowOverride None a bheith i bhfeidhm don webroot.

Cé na fillteáin a gcaithfidh mé a bhlocáil?

Gach fillteán inar féidir le húsáideoir PHP scríobh agus atá inrochtana tríd an bhfreastalaí gréasáin. Seachas fillteáin uaslódála is minic gur fillteáin thaisce, shealadacha, allmhairithe, easpórtála agus chúltaca iad. Faigh amach iad le cuardach mar an t-úsáideoir ama rite.

An mbriseann an bac mo shuíomh gréasáin?

De ghnáth ní bhriseann, mar nach bhfuil scripteanna ar a nglaoitear go díreach i bhfillteáin uaslódála agus thaisce i bhfeidhmchláir ghlana. Ach cuireann roinnt síntí comhaid PHP ansin mar sin féin. Déan tástáil ar na príomhfheidhmeanna tar éis an aistrithe dá bhrí sin.

An gcosnaíonn an bac in aghaidh PHP2Shell?

Ní chosnaíonn. Is leochaileacht in ateangaire PHP é PHP2Shell nach ndúntar ach leis an nuashonrú agus atosú gach worker. Cuireann an bac cosc, áfach, ar chomhad a cuireadh síos a ghlaoch níos déanaí tríd an mbrabhsálaí agus a úsáid mar dhoras cúil buan.

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