ืžืขืœื“ื•ื ื’ ืคื•ืŸ Snuffleupagus 0.5.1, ืึท ืžืึธื“ื•ืœืข ืคึฟืึทืจ ื‘ืœืึทืงื™ื ื’ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ื– ืื™ืŸ PHP ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ื ืึธืš ืึท ื™ืึธืจ ืคื•ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืืจื•ื™ืก ืคึผืจื•ื™ืขืงื˜ ืžืขืœื“ื•ื ื’ Snuffleupagus 0.5.1, ื•ื•ืึธืก ื’ื™ื˜ ืึท ืžืึธื“ื•ืœืข ืคึฟืึทืจ ื“ื™ PHP7 ื™ื‘ืขืจื–ืขืฆืขืจ ืฆื• ืคึฟืึทืจื‘ืขืกืขืจืŸ ื“ื™ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืคื•ืŸ ื“ื™ ืกื•ื•ื™ื•ื•ืข ืื•ืŸ ืคืึทืจืฉืคึผืึทืจืŸ ืคึผืจืึธืกื˜ ืขืจืจืึธืจืก ื•ื•ืึธืก ืคื™ืจืŸ ืฆื• ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ื– ืื™ืŸ ืคืœื™ืกื ื“ื™ืง PHP ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ื“ืขืจ ืžืึธื“ื•ืœืข ืื•ื™ืš ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืฉืึทืคึฟืŸ ื•ื•ื™ืจื˜ื•ืึทืœ ืคึผืึทื˜ืฉืึทื– ืฆื• ืขืœื™ืžื™ื ื™ืจืŸ ืกืคึผืขืฆื™ืคื™ืฉ ืคึผืจืึธื‘ืœืขืžืก ืึธืŸ ื˜ืฉืึทื ื’ื™ื ื’ ื“ื™ ืžืงื•ืจ ืงืึธื“ ืคื•ืŸ ื“ื™ ืฉืคึผื™ืจืขื•ื•ื“ื™ืง ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ, ื•ื•ืึธืก ืื™ื– ื‘ืึทืงื•ื•ืขื ืคึฟืึทืจ ื ื•ืฆืŸ ืื™ืŸ ืžืึทืกืข ื”ืึธืกื˜ื™ื ื’ ืกื™ืกื˜ืขืžืขืŸ, ื•ื•ื• ืขืก ืื™ื– ืื•ืžืžืขื’ืœืขืš ืฆื• ื”ืึทืœื˜ืŸ ืึทืœืข ื‘ืึทื ื™ืฆืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜. ื“ื™ ืึธื•ื•ื•ืขืจื›ืขื“ ืงืึธืก ืคื•ืŸ ื“ื™ ืžืึธื“ื•ืœืข ื–ืขื ืขืŸ ืขืกื˜ื™ืžืึทื˜ืขื“ ืฆื• ื–ื™ื™ืŸ ืžื™ื ื™ืžืึทืœ. ื“ืขืจ ืžืึธื“ื•ืœืข ืื™ื– ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ C, ืื™ื– ืงืึธื ื ืขืงื˜ืขื“ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืึท ืฉืขืจื“ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ("ืคืึทืจืœืขื ื’ืขืจื•ื ื’=snuffleupagus.so" ืื™ืŸ php.ini) ืื•ืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ื“ื•ืจืš ืœื™ื™ืกืึทื ืกื˜ ืื•ื ื˜ืขืจ LGPL 3.0.

Snuffleupagus ืคึผืจืึธื•ื•ื™ื“ืขืก ืึท ื›ึผืœืœื™ื ืกื™ืกื˜ืขื ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื ื•ืฆืŸ ื ืึธืจืžืึทืœ ื˜ืขืžืคึผืœืึทื˜ืขืก ืฆื• ืคึฟืึทืจื‘ืขืกืขืจืŸ ื–ื™ื›ืขืจื”ื™ื™ื˜, ืึธื“ืขืจ ืฉืึทืคึฟืŸ ื“ื™ื™ืŸ ืื™ื™ื’ืขื ืข ื›ึผืœืœื™ื ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘ ื“ืึทื˜ืŸ ืื•ืŸ ืคื•ื ืงืฆื™ืข ืคึผืึทืจืึทืžืขื˜ืขืจืก. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื“ื™ ื”ืขืจืฉืŸ "ืกืคึผ.ื“ื™ืกืึทื‘ืœืข_ืคื•ื ืงืฆื™ืึธื ื™ืจืŸ.ืคื•ื ืงืฆื™ืึธื ื™ืจืŸ ("ืกื™ืกื˜ืขื"). ืคึผืึทืจืึทื ("ืงืึทืžืึทื ื“"). ื•ื•ืึทืœื•ืข_ืจ ("[$|;&`\\n]"). ื“ืจืึธืคึผ ();" ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื‘ืึทื’ืจืขื ืขืฆืŸ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืกืคึผืขืฆื™ืขืœืข ืื•ืชื™ื•ืช ืื™ืŸ ืกื™ืกื˜ืขื () ืคึฟื•ื ืงืฆื™ืข ืึทืจื’ื•ืžืขื ื˜ืŸ ืึธืŸ ื˜ืฉืึทื ื’ื™ื ื’ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ืžืขื˜ื”ืึธื“ืก ื–ืขื ืขืŸ ืฆื•ื’ืขืฉื˜ืขืœื˜ ืฆื• ืคืึทืจืฉืคึผืึทืจืŸ ืงืœืืกืŸ ืคื•ืŸ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ื– ืึทื–ืึท ื•ื•ื™ ื™ืฉื•ื–, ืคึฟืึทืจื‘ื•ื ื“ืขื ืข ืžื™ื˜ ื“ืึทื˜ืŸ ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ, ืื•ืžื–ื™ื›ืขืจ ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ PHP mail() ืคึฟื•ื ืงืฆื™ืข, ืœื™ืงืึทื“ื–ืฉ ืคื•ืŸ ืงื™ื›ืœ ืื™ื ื”ืึทืœื˜ ื‘ืขืฉืึทืก XSS ืื ืคืืœืŸ, ืคึผืจืึธื‘ืœืขืžืก ืจืขื›ื˜ ืฆื• ืœืึธื•ื“ื™ื ื’ ื˜ืขืงืขืก ืžื™ื˜ ืขืงืกืขืงื•ื˜ืึทื‘ืœืข ืงืึธื“ (ืœืžืฉืœ, ืื™ืŸ ื“ืขื ืคึฟืึธืจืžืึทื˜ ืคืืจ), ื ืขื‘ืขืš ืงื•ื•ืึทืœื™ื˜ืขื˜ ืจืึทื ื“ืึธื ื ื•ืžืขืจ ื“ื•ืจ ืื•ืŸ ืกืึทื‘ืกื˜ื™ื˜ื•ืฉืึทืŸ ืคืึทืœืฉ ืงืกืžืœ ืงืึทื ืกื˜ืจืึทืงืฉืึทื ื–.

PHP ื–ื™ื›ืขืจื”ื™ื™ื˜ ืขื ื›ืึทื ืกืžืึทื ื˜ ืžืึธื“ืขืก ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš Snuffleupagus:

  • ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื’ืขื‘ืŸ "ื–ื™ื›ืขืจ" ืื•ืŸ "ืกืึทืžืขืกื™ื˜ืข" (CSRF ืฉื•ืฅ) ืคืœืึทื’ืก ืคึฟืึทืจ ืงื™ื›ืœืขืš, ืขื ืงืจื™ืคึผืฉืึทืŸ ืงื™ื›ืœ;
  • ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ื’ืึทื ื’ ืคื•ืŸ ื›ึผืœืœื™ื ืฆื• ื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ ื˜ืจืึทืกืขืก ืคื•ืŸ ืื ืคืืœืŸ ืื•ืŸ ืงืึธืžืคึผืจืึธืžื™ืก ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–;
  • ื’ืขืฆื•ื•ื•ื ื’ืขืŸ ื’ืœืื‘ืืœืข ืึทืงื˜ืึทื•ื•ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ "ืฉื˜ืจืขื ื’" (ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื‘ืœืึทืงืก ืึทืŸ ืคึผืจื•ื•ื•ืŸ ืฆื• ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ืึท ืฉื˜ืจื™ืงืœ ื•ื•ืขืŸ ืื™ืจ ื“ืขืจื•ื•ืึทืจื˜ืŸ ืึท ื’ืึทื ืฅ ื•ื•ืขืจื˜ ื•ื•ื™ ืึทืŸ ืึทืจื’ื•ืžืขื ื˜) ืื•ืŸ ืฉื•ืฅ ืงืขื’ืŸ ื˜ื™ืคึผ ืžืึทื ื™ืคึผื™ืึทืœื™ื™ืฉืึทืŸ;
  • ืคืขืœื™ืงื™ื™ึทื˜ ื‘ืœืึทืงื™ื ื’ ืคึผืจืึธื˜ืึธืงืึธืœ ืจืึทืคึผืขืจื– (ืœืžืฉืœ, ืคืึทืจื‘ืึธื˜ "ืคืึทืจ: //") ืžื™ื˜ ื–ื™ื™ืขืจ ื™ืงืกืคึผืœื™ืกืึทื˜ ื•ื•ื™ื™ื˜ืœื™ืกื˜ื™ื ื’;
  • ืคืึทืจื•ื•ืขืจ ืื•ื™ืฃ ืขืงืกืึทืงื™ื•ื˜ื™ื ื’ ื˜ืขืงืขืก ื•ื•ืึธืก ื–ืขื ืขืŸ ืจื™ื™ื˜ืึทื‘ืึทืœ;
  • ืฉื•ื•ืึทืจืฅ ืื•ืŸ ื•ื•ื™ื™ึทืก ืจืฉื™ืžื•ืช ืคึฟืึทืจ ื™ื•ื•ืึทืœ;
  • ืคืืจืœืื ื’ื˜ ืฆื• ื’ืขื‘ืŸ TLS ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืงืึธื ื˜ืจืึธืœื™ืจื•ื ื’ ื•ื•ืขืŸ ืื™ืจ ื ื•ืฆืŸ
    ืงืขืจืœ;
  • ืึทื“ื™ื ื’ HMAC ืฆื• ืกื™ืจื™ืึทืœื™ื–ืขื“ ืึทื‘ื“ื–ืฉืขืงืฅ ืฆื• ืขื ืฉื•ืจ ืึทื– ื“ืขืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ ืจื™ื˜ืจื™ื•ื•ื– ื“ื™ ื“ืึทื˜ืŸ ืกื˜ืึธืจื“ ื“ื•ืจืš ื“ืขืจ ืึธืจื™ื’ื™ื ืขืœ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ;
  • ื‘ืขื˜ืŸ ืœืึธื’ื™ื ื’ ืžืึธื“ืข;
  • ื‘ืœืึทืงื™ื ื’ ืœืึธื•ื“ื™ื ื’ ืคื•ืŸ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื˜ืขืงืขืก ืื™ืŸ ืœื™ื‘ืงืกืžืœ ื“ื•ืจืš ืœื™ื ืงืก ืื™ืŸ ืงืกืžืœ ื“ืึธืงื•ืžืขื ื˜ืŸ;
  • ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื”ืึทื ื“ืœืขืจืก (ื•ืคึผืœืึธืึทื“_ื•ื•ืึทืœืึทื“ื™ื™ืฉืึทืŸ) ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืื•ืŸ ื™ื‘ืขืจืงื•ืงืŸ ื•ืคึผืœืึธืึทื“ืขื“ ื˜ืขืงืขืก;

ืฆื•ื•ื™ืฉืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ื“ื™ ื ื™ื™ึทืข ืžืขืœื“ื•ื ื’: ื™ืžืคึผืจื•ื•ื•ื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ PHP 7.4 ืื•ืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืงืึทืžืคึผืึทื˜ืึทื‘ื™ืœืึทื˜ื™ ืžื™ื˜ ื“ื™ PHP 8 ืฆื•ื•ื™ื™ึทื’ ื“ืขืจื•ื•ื™ื™ึทืœ ืื™ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’. ืฆื•ื’ืขื’ืขื‘ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืงืœืึธืฅ ื’ืขืฉืขืขื ื™ืฉืŸ ื“ื•ืจืš ืกื™ืกืœืึธื’ (ื“ื™ sp.log_media ื“ื™ืจืขืงื˜ื™ื•ื• ืื™ื– ืคืืจื’ืขืœื™ื™ื’ื˜ ืคึฟืึทืจ ื™ื ืงืœื•ื–ืฉืึทืŸ, ื•ื•ืึธืก ืงืขื ืขืŸ ื ืขืžืขืŸ ืคืคึผ ืึธื“ืขืจ ืกื™ืกืœืึธื’ ื•ื•ืึทืœื•ืขืก). ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ื’ืึทื ื’ ืคื•ืŸ ื›ึผืœืœื™ื ืื™ื– ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ืฆื• ืึทืจื™ื™ึทื ื ืขืžืขืŸ ื ื™ื™ึทืข ื›ึผืœืœื™ื ืคึฟืึทืจ ืœืขืฆื˜ื ืก ื™ื™ื“ืขื ืึทืคื™ื™ื“ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ื– ืื•ืŸ ื‘ืึทืคืึทืœืŸ ื˜ืขืงื ื™ืงืก ืงืขื’ืŸ ื•ื•ืขื‘ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ื™ืžืคึผืจื•ื•ื•ื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ macOS ืื•ืŸ ื™ืงืกืคึผืึทื ื“ื™ื“ ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ ืงืขืกื™ื™ื“ืขืจื“ื™ืง ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืคึผืœืึทื˜ืคืึธืจืžืข ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ GitLab.

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’