Π‘Π»Π΅Π΄ Π³ΠΎΠ΄ΠΈΠ½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΡΠΊ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° , ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΠΌΠΎΠ΄ΡΠ» Π½Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° PHP7 Π·Π° ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° ΠΈ Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΈΠΏΠΈΡΠ½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ, Π²ΠΎΠ΄Π΅ΡΠΈ Π΄ΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½ΠΈΡΠ΅ PHP-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ΄ΡΠ»ΡΡ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π±Π΅Π· Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²Π΅ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΌΠ°ΡΠΎΠ² Ρ ΠΎΡΡΠΈΠ½Π³, ΠΊΡΠ΄Π΅ΡΠΎ Π΅ Π½Π΅Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π°ΠΊΡΡΠ°Π»Π½ΠΈ. Π Π°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ ΠΎΡ ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΌΠΎΠ΄ΡΠ»Π° ΡΠ΅ ΠΎΡΠ΅Π½ΡΠ²Π°Ρ ΠΊΠ°ΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ. ΠΠΎΠ΄ΡΠ»ΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C, ΡΠ²ΡΡΠ·Π²Π° ΡΠ΅ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ("extension=snuffleupagus.so" Π² php.ini) ΠΈ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ LGPL 3.0.
Snuffleupagus ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ ΠΊΠ°ΠΊΡΠΎ Π½Π° ΡΠΈΠΏΠΈΡΠ½ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π·Π° ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π·Π°ΡΠΈΡΠ°ΡΠ°, ΡΠ°ΠΊΠ° ΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π²Ρ ΠΎΠ΄ΡΡΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ°Π²ΠΈΠ»ΠΎΡΠΎ "sp.disable_function.function('system').param('command').value_r('[$|;&`\\n]').drop();" ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°, Π±Π΅Π· Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°, Π΄Π° ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° system(). ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΡΠ΅ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΊΠΈΠ²Π° ΠΊΠ»Π°ΡΠΎΠ²Π΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° PHP ΡΡΠ½ΠΊΡΠΈΡΡΠ° mail(), ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Cookie ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° XSS Π°ΡΠ°ΠΊΠΈ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π²ΡΠ² Π²ΡΡΠ·ΠΊΠ° Ρ ΠΊΠ°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΠΊΠΎΠ΄ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ ), Π½Π΅ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π½Π° ΡΠ»ΡΡΠ°ΠΉΠ½ΠΈ ΡΠΈΡΠ»Π° ΠΈ Π½Π° Π½Π΅ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ XML.
ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈΡΠ΅ Π² Snuffleupagus ΡΠ΅ΠΆΠΈΠΌΠΈ Π·Π° ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π·Π°ΡΠΈΡΠ°ΡΠ° Π½Π° PHP:
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ»Π°Π³ΠΎΠ²Π΅ΡΠ΅ "secure" ΠΈ "samesite" (Π·Π°ΡΠΈΡΠ° ΠΎΡ CSRF) Π·Π° Cookie, Π½Π° Cookie;
- ΠΠ³ΡΠ°Π΄Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΠ»Π΅Π΄ΠΈ ΠΎΡ ΠΈΠ·Π²ΡΡΡΠ΅Π½ΠΈ Π°ΡΠ°ΠΊΠΈ ΠΈ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ;
- ΠΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½ΠΎ Π³Π»ΠΎΠ±Π°Π»Π½ΠΎ Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΆΠΈΠΌΠ° "Β» (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±Π»ΠΎΠΊΠΈΡΠ° ΠΎΠΏΠΈΡΠΈΡΠ΅ Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½ΠΈΠ·, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΎΡΠ°ΠΊΠ²Π° ΡΡΠ»ΠΎ ΡΠΈΡΠ»ΠΎ ΠΊΠ°ΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ) ΠΈ Π·Π°ΡΠΈΡΠ° ΠΎΡ ;
- ΠΠ»ΠΎΠΊΠΈΡΠ°Π½Π΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°Π±ΡΠ°Π½Π° Β«phar://Β») Ρ ΡΠ²Π½ΠΎΡΠΎ ΠΈΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² Π±ΡΠ» ΡΠΏΠΈΡΡΠΊ;
- ΠΠ°Π±ΡΠ°Π½Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° Π·Π°ΠΏΠΈΡ;
- Π§Π΅ΡΠ½ΠΈ ΠΈ Π±Π΅Π»ΠΈ ΡΠΏΠΈΡΡΡΠΈ Π·Π° eval;
- ΠΠ°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ TLS ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π°
curl; - ΠΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° HMAC ΠΊΡΠΌ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ, Π·Π° Π΄Π° ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°, ΡΠ΅ ΠΏΡΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ Π΄Π°Π½Π½ΠΈ, Π·Π°ΠΏΠ°Π·Π΅Π½ΠΈ ΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅;
- Π Π΅ΠΆΠΈΠΌ Π½Π° Π·Π°ΠΏΠΈΡ Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅;
- ΠΠ»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠ½ΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² libxml ΡΡΠ΅Π· Π»ΠΈΠ½ΠΊΠΎΠ²Π΅ Π² XML Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ;
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° Π²ΡΠ½ΡΠ½ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠΈ (upload_validation) Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈ ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ°ΡΠ²Π°Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅;
Π‘ΡΠ΅Π΄Π° Π² Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅: ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° PHP 7.4 ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° PHP 8. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ±ΠΈΡΠΈΡ ΡΡΠ΅Π· syslog (Π·Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° sp.log_media, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ php ΠΈΠ»ΠΈ syslog). ΠΠ±Π½ΠΎΠ²Π΅Π½ Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π°ΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π³ΡΡΠΏΠ° ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»Π°, Π² ΠΊΠΎΡΡΠΎ ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π½ΠΎΠ²ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ Π½Π°ΠΏΠΎΡΠ»Π΅Π΄ΡΠΊ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ Π·Π° Π°ΡΠ°ΠΊΠΈ Π½Π° ΡΠ΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° macOS ΠΈ Π΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Π·Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° GitLab.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
