Ang php2shell-audit field: Windows ay gumagamit ng exe, Linux, py, 10 minuto upang bilangin ang PHP.
Hindi ito tungkol sa pagbaluktot. Tungkol ito sa mga katok:Pagbuhat ng mga kagamitan, pagpapatakbo ng mga makina, paglilinis ng mga target, mga konklusyon sa pagbasa, pagpapasiya kung alin o hindi ang pag - aayosIsang dragon. Sampung minuto bago matapos.
Una, ang CVE-2026-109618 at CVE-2026-109619 ay hindi awtorisadong RCE para sa mismong makinang PHP, ang opisyal na ibinalik na bersyon ay 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12. Dalawang hanay ng kalibre...PHP official CVSS 4.0 beat 9.2, NVD CVSS 3.1 beat 9.89.8 sa pamagat ay ang huli, at parehong tumutukoy sa parehong two-to-one loophole, huwag isipin na iba ito.
Narito ang mga kasangkapan:Vivipenclaw-code/php2shell-udtApache-2.0, ngayon lamang. Dalawang bagay ang ginagawa nito: tingnan kung anong mga PHP ang nakakabit sa makinang ito, tangayin ang hindi pa natutuklasang bersyon ng ver-off na bagyo.Hindi nito sinasalakay ang trapiko, hindi sumusulat ng mga disc, hindi binabago ang anumang kaayusan.At iyan ang tiningnan ko sa source code, at ang remote mode ay talagang nagpapadala lamang ng isang HEAD na kahilingan para sa isang response head.
I. DIFING: Dalawang paraan upang makita kung anong sistema ka naroroon.
Linux / MacOS go Python, sero dependency, ang pamantayang aklatan ay sapat na, walang pip upang magkarga ng anumang bagay:
git clone https://github.com/viviopenclaw-code/php2shell-audit.git
cd php2shell-audit
chmod +x php2shell_audit.py
python3 php2shell_audit.py --local
Ang Windows ay diretso sa exe, walang Python. Nagtapos sa labas ng pahina php2shell-audit.exe:
certutil -hashfile php2shell-audit.exe SHA256
php2shell-audit.exe --local
Ang Exe ay isang nag-iisang programang pang-aliw ng talaksan na makukuha ng Win10/11 x64,Walang lagda sa kodigo.Kaya ang unang pagtakbo para sa SmartScreen ay hihinto. Tayo muna ang tumakbo. SHA256SUMS.txt Minsan pa — ang hakbang na ito ay isa na kung saan walang sinuman ang bumabanggit sa “green” na bersiyon na ipinamamahagi online.
Dalawang bersyon ng parehong parameter. Isa lamang ang inilagay sa likod ng tornial, Windows. python3 php2shell_audit.py Palitan php2shell-audit.exe Basta gawin mo.
Anong nangyayari?
python3 php2shell_audit.py --local
Gagawin nito ang apat na bagay, isang bagay:
- Hanapin ang PHP.:
/usr/bin/php*Hindi ko alam./usr/sbin/php-fpm*Hindi ko alam./opt/*Hindi ko alam./usr/lib/php/*/sapi/*Mahalaga rin ang homebrew. Windows, tingnan ito.C:\phpPHP sa ilalim ng XAMPP, WAMP, Laragon, Chocolatey, Scoop, Program Files. - Basahin ang Bersiyon: Tumakbo
php -vTake Banner, na may 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12. - Suriin ang Pagbabalanse: Parsing ang interim motigation instruksiyon sa php.ini.
- Proseso ng Kolumn: Itala ang lahat ng mga gawa na dapat ulitin pagkatapos ng tagni.
Tumakbo ako sa isang makina na walang PHP. Narito ang output:
php2shell-audit 1.1.0 - local audit
Host : admin
System : Linux 7.0.0-30-generic (x86_64)
------------------------------------------------------------------------
[UNKNOWN] No PHP installation detected.
------------------------------------------------------------------------
php.ini mitigation directives
[WARNING] session.upload_progress.enabled = (unset) (recommended 0)
[WARNING] fatal_error_backtraces = (unset) (recommended 0)
[WARNING] expose_php = (unset) (recommended 0)
------------------------------------------------------------------------
Running services that must be restarted after patching
[INFO] apache2 - 3 process(es)
------------------------------------------------------------------------
[INFO] No PHP binary, FPM daemon or Apache PHP module was found on this host.
------------------------------------------------------------------------
Remediation
[UNKNOWN] No PHP install was audited, so nothing can be confirmed safe.
Pansinin ang huling linya:Walang PHP ito'y UNKNOWN, walang DUGO.Ang disenyong ito ay napaka-recognited - walang problema sa paghahanap ng kahit ano. Dalawang magkaibang bagay ito.
Siyanga pala, ito'y magkakaugnay. expose_php Lahat sila. Ang isang ito ay walang kinalaman sa butas mismo ng loop, subalit ito'y isang tuwirang pasiya kung mababasa ba ng isang remote scan ang numero ng iyong bersiyon.Patayin mo na. Ang mga bakas ng daliri ng sumasalakay ay bahagyang bulag.Hindi ko alam. Mangyari pa, hindi ito tinatawag na pagkumpuni, ito'y tinatawag na pagbabawas ng pagkalantad sa impormasyon.
III. Mga Parameter
| Mga Parameter | Papel | Pagkawasak |
|---|---|---|
--local / --remote | Dalawa o isa, ipinasiya naming tingnan ang makina o target. | Kailangan |
--file targets.txt | Batch target, isa sa isang hanay, # simulan sa komento | Wala |
--workers N | Bilang ng mga kursong long-term concurrent | 10 |
--json report.json | Ilabas ang kumpletong JSON,- Sinalot | Wala |
--timeout N | Paghingi ng panahon (sec) | 8 |
--insecure | Skip TLS verification, para lamang sa mga tatak ng daliri | Malapit |
Exit code: nakatutok sa CI card point
| Panlabas na Kodigo | Kahulugan |
|---|---|
0 | Walang nakitang apektadong bersiyon |
2 | Sa paano man isang apektadong bersiyon ang nasumpungan. |
1 | Error sa kasangkapan mismo (hal. g. JSON hindi makasulat) |
Tumigil ka ng numero dos, ito ang punto.Ito'y nangangahulugan na maaari mo itong ilagay sa linya ng daloy ng tubig, padaluyin ito sa panahon ng konstruksiyon, tamaan ito, at huwag hintaying masumpungan ito ng mga tao.
Siv. Huweeping remote: –remote kung paano
# 单个目标
python3 php2shell_audit.py --remote example.com
# 批量,20 个并发,出 JSON
python3 php2shell_audit.py --remote --file targets.txt --workers 20 --json out.json
# 也可以直接写在命令行里
python3 php2shell_audit.py --remote https://a.example 10.0.0.5
Ano iyon? Sumulat
# production fleet
example.com
https://shop.example.net
10.0.0.5:8080
# Magsimula sa isang nota, isang linya, isa sa bodega targets.example.txt Maaari itong tuwirang kopyahin.
Ano ang ipinadala nito?
Bawat tunguhin.Magpadala lamang ng isang kahilingan para sa kaniya, minsan lamang tatanggihan ng server ang HeAD. At basahin mo. Server:Hindi ko alam.X-Powered-By: at Set-CookieUmalis na kayo. PHP/x.y.zHindi ko alam.
Walang multipart, walang malaking katawan, walang OOM, walang gamit-pagkatapos-free.Ito ay namatay sa pinagkunang nota bilang isang design demand.Hindi ito ala-suwerte.
Ang presyo ay dapat na malinaw:Hindi madaling gamitin ang kakaibang paraanMaaari lamang nitong iulat ang impormasyon na kusang binura ng server. Itago ang target ng numero ng bersyon, at ang resulta ay magiging laging UNKNOWN.
V. Kung paano babasahin ang mga konklusyon
[VULNERABLE] https://shop.example.net
http : 200
server : Apache/2.4.62 (Debian)
powered : PHP/8.4.16
php : 8.4.16
verdict : PHP 8.4.16 < fixed 8.4.27
- [VULNER Ebble] Ang bersyon ay binasa at mas mababa kaysa sa ibinalik na bersyon.
- [ Talababa] Ang bersiyon ay binasa at mas malaki kaysa o katumbas ng ibinalik na bersiyon.
- [Tumatawa] Ang interim na mga instruksiyon sa pag-uuri ay hindi itinakda ayon sa iminungkahi.
- [UNKNOWN] Di - sapat na katibayan.Hindi ligtas, hindi alam.
Ang pagkakaibang ito ang siyang pinakamahalaga sa lahat. Karamihan ng mga scanner ay nagbibigay lamang sa iyo ng pula, dilaw at berde, at pagkatapos ay sa palagay mo ito ay nasa buong iskrin.UNKNOWN ay dapat ituring na-doAlin sa patayin ang nakatagong bersyon, patakbuhin sa lalagyan -- lokal, o ilagay sa makina.
Anim, apat na hukay, higit kaysa isa.
Pipe 1: UNKNOWN ≠ Malinaw
Ang host na nagtago ng numero ng bersyon ay palaging mag-uulat ng UNKNOWN. Tiyakin mo lamang na ito'y sa mainframe lamang. --localHindi ko alam.
Pocket 2: Ang pagpapalaya ay maling iniuulat.
Ang Debian / Ubuntu / RHEL / Alpine ay regular na tumatawag sa ligtas na mga patse ngunitHuwag Bilangin ang Jump VersionHindi ko alam. Ang resulta ay ang nakumpletong makina, gaya ng lumilitaw.
Kaya huwag mataranta hanggang makita mo ang pula.
apt changelog php8.4
rpm -q --changelog php-8.4 | head -50
Ang hakbang na ito, o ang hindi paggawa nito, ay isa lamang pagsulong; ito rin ay magiging isang maling kalkulasyon, na siyang tunay na pangangailangan para sa isang pag - upgrade.
Pit 3: Isang HEAD ang hiniling din
Magiging nasa logo ito ng bawat isa, at isusulat ng WAF. Ang pag-iyak nang walang nasusulat na pahintulot ay likas na isang hindi awtorisadong pag-aalsa - isang batas tulad ng CFAA, ang UK CMA 1990.
Kakailanganin ko ang pahintulot na linisin ang mga pag - aari ng aking kompanya.Sa partikular, cross-sestoral, cross-sub-company, cloud-based accounts. Huwag mong isipin, "Titingnan ko lamang ang ulo ng tugon" ay hindi ko binibilang.
Pocket 4:-local lamang tingnan ang makina.
Tumatakbo ang PHP sa lalagyan, tumatakbo sa lalagyan, o ginagamit ito sa host. --remote Ang daungan na nilagyan ng mapa. Tumakbo ang punong - abala. --local Kung hindi mo makita ang PHP sa lalagyan, kukuha ka ng UNKNOWN- hindi talaga alam ng UNKNOWN, hindi ligtas ang lalagyan.
Pito, alamin ang problema, kung gayon ano?
Patching ang tanging ganap na pagkukumpuni.Lahat ng iba pa ay nagdurugo.
# Debian / Ubuntu
sudo apt update && sudo apt install --only-upgrade php
# RHEL / Fedora
sudo dnf upgrade 'php*'
# Alpine
sudo apk upgrade php83 php84
Itaas: 8.2 sanga sa 8.2.358.3 hanggang 8.3.36Ito ay 8.4. 8.4.27Ito ay 8.5. 8.5.12Hindi ko alam. 8.1 at higit pa, ang pinagmumulan lamang ang ulat.
Kung hindi ka makakuha ng isang patse, gawin mo muna ang mga ito, kung gayon ay magsimula ka nang muli.
; CVE-2026-109619
session.upload_progress.enabled = 0
; CVE-2026-109618
memory_limit = -1
; 仅 PHP 8.5
fatal_error_backtraces = 0
session.upload_progress.enabled=0Upang isulat sa php.ini, kasangkapang FPM o server configuration,Kailangang maging mabisa ito bago ang kahilingan.Hindi ko alam. Huli na ang lahat.memory_limit=-1Kailangan ko ito.php_admin_valueAng pantay na pagtatakda ng gayong mga aplikasyon ay hindi nagbabago, habang tinitiyak na walang pool/ directory/ aplikasyon upang maibalik ang limitadong halaga.- Huwag kailanman gumamit ng RTIMIT AS o RLIMIT DATA- Ang dalawang iyon ay magpapawalang-bisa sa Mapa at basta muling papasok sa mapanganib na landas na iyon na longjmp.
- Kailangang baguhin ang bawat manggagawa:
systemctl restart php*-fpm apache2 nginxHindi ko alam.Walang pagbabago.
Wala sa apat na ito ang makapagliligtas sa iyo, at ang mga awtoridad mismo ay maliwanag. Iisa lamang ang halaga ng mga ito:Bago mo ayusin, takpan ang pinto.
VIII. Isang kumpletong pagkakasunud - sunod
- Suriin muna ang iyong sarili.:
--localTatlo o limang segundo, tingnan ang bersiyon at kaayusan. - Malayong lis ng talaksanMalaking bagay ito.
--remote --fileAt tumakbo, palabas ng JSON. - Pagproseso ng klase:VULNER upgrade, BABALAng pagbawi, UNKNOWN identification --Hindi ito nakasara, dapat gawin.
- Upgrade + Restaurant Worker: Patchs, at pagkatapos ay restart lahat ng FPM/ Apache/nginx.
- Muling Pagtiyak: Tumakbong muli, pagtibayin ang berde. Bantayan ang backport error at panoorin ang changelog kung kinakailangan.
- Pumasok ka sa linya ng tubig.: Ihinto ang Code 2 Direct bigo sa pagtatayo, at sa susunod ay walang makaalala.
Ang buong proseso ay sampung minuto, at ang tunay na panahon ang ikatlong hakbang.Tingnan ang mga linya ng UNKNOWN.Hindi ko alam. Subalit hindi iyan gonna iligtas, sapagkat kung hindi, ikaw ay makakakuha ng maganda, huwad, berdeng ulat.
Ang halaga ng scanner ay hindi nagbibigay sa iyo ng berdeng mga ilaw, pinipilit ka nitong aminin kung saan hindi mo talagang nalalaman.
Basahing muli ang adres ng proyekto:Gythub.com/viopenclaw-code/php2shell-uditHindi ko alam. Basahin ang DISSLAIMER.md bago ito isulat sa wikang Tsino.
Ang huling pangungusap ay nagpapaalaala sa akin na ang kasangkapang ito ay 1.1.0 na ngayon, ang unang bersiyong publiko, isang iisang zero fork, isang maliit na bilang ng mga kodigo, mababasa mong lahat ang mga ito. php2shell_audit.pyHindi ko alam.Tingnan ang source code., lalo na kung nais mong basahin ang php.ini at ang listahan ng proseso na may pahintulot ng administrador.