Π‘Π΅Π·ΠΏΠ΅ΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΡ— систСми

Зміст

PHP Ρ” ΠΎΠ΄Π½ΠΈΠΌ Ρ–Π· Π²Π°ΠΆΠ»ΠΈΠ²ΠΈΡ… ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ–Π² Ρƒ ΠΏΠΈΡ‚Π°Π½Π½Ρ– Π±Π΅Π·ΠΏΠ΅ΠΊΠΈ сСрвСра, ΠΎΡΠΊΡ–Π»ΡŒΠΊΠΈ PHP-скрипти ΠΌΠΎΠΆΡƒΡ‚ΡŒ ΠΌΠ°Π½Ρ–ΠΏΡƒΠ»ΡŽΠ²Π°Ρ‚ΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Ρ‚Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ Π½Π° диску. Π£ Π·Π²'язку Π· Ρ†ΠΈΠΌ Ρ–ΡΠ½ΡƒΡŽΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Ρ–Π³ΡƒΡ€Π°Ρ†Ρ–ΠΉΠ½Ρ– установки, які Π²ΠΊΠ°Π·ΡƒΡŽΡ‚ΡŒ, які Ρ„Π°ΠΉΠ»ΠΈ ΠΌΠΎΠΆΡƒΡ‚ΡŒ Π±ΡƒΡ‚ΠΈ доступні Ρ– які ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— ΠΌΠΎΠΆΠ½Π° Π²ΠΈΠΊΠΎΠ½ΡƒΠ²Π°Ρ‚ΠΈ. НСобхідно виявляти ΠΎΠ±Π΅Ρ€Π΅ΠΆΠ½Ρ–ΡΡ‚ΡŒ, ΠΎΡΠΊΡ–Π»ΡŒΠΊΠΈ Π±ΡƒΠ΄ΡŒ-який Ρ–Π· Ρ„Π°ΠΉΠ»Ρ–Π², Π· ΠΏΠΎΠ²Π½ΠΈΠΌΠΈ ΠΏΡ€Π°Π²Π°ΠΌΠΈ читання ("world readable") ΠΌΠΎΠΆΠ΅ Π±ΡƒΡ‚ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½ΠΈΠΉ ΠΊΠΎΠΆΠ½ΠΈΠΌ, Ρ…Ρ‚ΠΎ ΠΌΠ°Ρ” доступ Π΄ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΡ— систСми.

ΠžΡΠΊΡ–Π»ΡŒΠΊΠΈ Π² PHP спочатку пСрСдбачався ΠΏΠΎΠ²Π½ΠΎΠΏΡ€Π°Π²Π½ΠΈΠΉ доступ Π΄ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΡ— систСми, ΠΌΠΎΠΆΠ½Π° написати PHP-скрипт, який Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚ΠΈ систСмні Ρ„Π°ΠΉΠ»ΠΈ, Ρ‚Π°ΠΊΡ– як /etc/passwd, ΠΊΠ΅Ρ€ΡƒΠ²Π°Ρ‚ΠΈ ΠΌΠ΅Ρ€Π΅ΠΆΠ΅Π²ΠΈΠΌΠΈ Π·'єднаннями, надсилати завдання ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Ρƒ Ρ‚ΠΎΡ‰ΠΎ. Π―ΠΊ наслідок, Π²ΠΈ Π·Π°Π²ΠΆΠ΄ΠΈ ΠΏΠΎΠ²ΠΈΠ½Π½Ρ– Π±ΡƒΡ‚ΠΈ Π²ΠΏΠ΅Π²Π½Π΅Π½Ρ– Π² Ρ‚ΠΎΠΌΡƒ, Ρ‰ΠΎ Ρ„Π°ΠΉΠ»ΠΈ, які Π²ΠΈ Ρ‡ΠΈΡ‚Π°Ρ”Ρ‚Π΅ Π°Π±ΠΎ ΠΌΠΎΠ΄ΠΈΡ„Ρ–ΠΊΡƒΡ”Ρ‚Π΅, Ρ” Ρ‚ΠΈΠΌΠΈ, які Π²ΠΈ ΠΌΠ°Π»ΠΈ Π½Π° ΡƒΠ²Π°Π·Ρ–.

РозглянСмо наступний ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, Ρƒ якому користувач створив скрипт, який видаляє Ρ„Π°ΠΉΠ» Ρ–Π· ΠΉΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°ΡˆΠ½ΡŒΠΎΡ— Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€Ρ–Ρ—. ΠŸΠ΅Ρ€Π΅Π΄Π±Π°Ρ‡Π°Ρ”Ρ‚ΡŒΡΡ ситуація, ΠΊΠΎΠ»ΠΈ Π²Π΅Π±-інтСрфСйс, написаний Π½Π° PHP, рСгулярно Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚ΡŒΡΡ для Ρ€ΠΎΠ±ΠΎΡ‚ΠΈ Π· Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Ρ– Π½Π°Π»Π°ΡˆΡ‚ΡƒΠ²Π°Π½Π½Ρ Π±Π΅Π·ΠΏΠ΅ΠΊΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ΡŒ видаляти Ρ„Π°ΠΉΠ»ΠΈ Π² Π΄ΠΎΠΌΠ°ΡˆΠ½ΡŒΠΎΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ·Ρ–.

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ #1 НСдостатня ΠΏΠ΅Ρ€Π΅Π²Ρ–Ρ€ΠΊΠ° Π·ΠΎΠ²Π½Ρ–ΡˆΠ½Ρ–Ρ… Π΄Π°Π½ΠΈΡ… Π²Π΅Π΄Π΅ Π΄ΠΎ...

Loading...

ΠžΡΠΊΡ–Π»ΡŒΠΊΠΈ Π·ΠΌΡ–Π½Π½Ρ– Π²Π²ΠΎΠ΄ΡΡ‚ΡŒΡΡ Π² Ρ„ΠΎΡ€ΠΌΡ– користувача, існує ΠΌΠΎΠΆΠ»ΠΈΠ²Ρ–ΡΡ‚ΡŒ Π²ΠΈΠ΄Π°Π»ΠΈΡ‚ΠΈ Ρ„Π°ΠΉΠ»ΠΈ, Ρ‰ΠΎ Π½Π°Π»Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΡƒΡΡŒ Ρ–Π½ΡˆΠΎΠΌΡƒ, Π²Π²Ρ–Π²ΡˆΠΈ Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Π½Ρ– значСння. Π† Ρ‚ΡƒΡ‚ ΠΌΠΎΠΆΠ΅ знадобитися авторизація. Подивимося, Ρ‰ΠΎ ΡΡ‚Π°Π½Π΅Ρ‚ΡŒΡΡ, якщо Π±ΡƒΠ΄Π΅ Π²Ρ–Π΄ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ значСння "../etc/" Ρ– "passwd". Π‘ΠΊΡ€ΠΈΠΏΡ‚ Π²ΠΈΠΊΠΎΠ½Π°Ρ” Ρ‚Π°ΠΊΡ– Π΄Ρ–Ρ—:

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ #2 ... Π°Ρ‚Π°Ρ†Ρ– Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Ρƒ систСму

Loading...

Π†ΡΠ½ΡƒΡŽΡ‚ΡŒ Π΄Π²Π° Π²Π°ΠΆΠ»ΠΈΠ²Ρ– Π·Π°Ρ…ΠΎΠ΄ΠΈ, які ΠΌΠΎΠΆΠ½Π° Π²ΠΆΠΈΡ‚ΠΈ для запобігання описаній ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ–.

  • ΠžΠ±ΠΌΠ΅ΠΆΠΈΡ‚ΠΈ доступ користувача, Π· ΠΏΡ€Π°Π²Π°ΠΌΠΈ якого ΠΏΡ€Π°Ρ†ΡŽΡ” Π²Π΅Π±-сСрвСр Ρ–Π· PHP.
  • ΠŸΠ΅Ρ€Π΅Π²Ρ–Ρ€ΡΠΉΡ‚Π΅ всі Π΄Π°Π½Ρ–, Ρ‰ΠΎ Π²Π²ΠΎΠ΄ΡΡ‚ΡŒΡΡ користувачСм.

Ось ΠΏΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠΉ Π²Π°Ρ€Ρ–Π°Π½Ρ‚ ΠΊΠΎΠ΄Ρƒ:

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ #3 Π‘Π΅Π·ΠΏΠ΅Ρ‡Π½Ρ–ΡˆΠ° ΠΏΠ΅Ρ€Π΅Π²Ρ–Ρ€ΠΊΠ° Ρ–ΠΌΠ΅Π½Ρ– Ρ„Π°ΠΉΠ»Ρƒ

Loading...

Однак Ρ– Ρ‚Π°ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π²Ρ–Ρ€ΠΊΠ° Π½Π΅ Π²Ρ€Π°Ρ…ΠΎΠ²ΡƒΡ” всіх ΠΌΠΎΠΆΠ»ΠΈΠ²ΠΈΡ… ситуацій. Π―ΠΊΡ‰ΠΎ систСма Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†Ρ–Ρ— дозволяє користувачам Π²ΠΈΠ±ΠΈΡ€Π°Ρ‚ΠΈ Π΄ΠΎΠ²Ρ–Π»ΡŒΠ½Ρ– Π»ΠΎΠ³Ρ–Π½ΠΈ, Π·Π»ΠΎΠΌΡ‰ΠΈΠΊ ΠΌΠΎΠΆΠ΅ створити ΠΎΠ±Π»Ρ–ΠΊΠΎΠ²ΠΈΠΉ запис Π²ΠΈΠ΄Ρƒ "../etc/" Ρ– систСма Π·Π½ΠΎΠ²Ρƒ Π²ΠΈΡΠ²ΠΈΡ‚ΡŒΡΡ Π²Ρ€Π°Π·Π»ΠΈΠ²ΠΎΡŽ. Виходячи Π· Ρ†ΡŒΠΎΠ³ΠΎ, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅ знадобитися ΡΡƒΠ²ΠΎΡ€Ρ–ΡˆΠ° ΠΏΠ΅Ρ€Π΅Π²Ρ–Ρ€ΠΊΠ°:

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ #4 Π‘ΡƒΠ²ΠΎΡ€Ρ–ΡˆΠ° ΠΏΠ΅Ρ€Π΅Π²Ρ–Ρ€ΠΊΠ° Ρ–ΠΌΠ΅Π½Ρ– Ρ„Π°ΠΉΠ»Ρƒ

Loading...

Π—Π°Π»Π΅ΠΆΠ½ΠΎ Π²Ρ–Π΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–ΠΉΠ½ΠΎΡ— систСми, Ρ‰ΠΎ Π²ΠΈ використовуєтС, Π½Π΅ΠΎΠ±Ρ…Ρ–Π΄Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π±Π°Ρ‡Π°Ρ‚ΠΈ ΠΌΠΎΠΆΠ»ΠΈΠ²Ρ–ΡΡ‚ΡŒ Π°Ρ‚Π°ΠΊΠΈ Π½Π° Ρ€Ρ–Π·Π½ΠΎΠΌΠ°Π½Ρ–Ρ‚Π½Ρ– Ρ„Π°ΠΉΠ»ΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‡ΠΈ систСмні Ρ„Π°ΠΉΠ»ΠΈ пристроїв (/dev/ Π°Π±ΠΎ COM1), ΠΊΠΎΠ½Ρ„Ρ–Π³ΡƒΡ€Π°Ρ†Ρ–ΠΉΠ½Ρ– Ρ„Π°ΠΉΠ»ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄ /etc/ Π°Π±ΠΎ Ρ„Π°ΠΉΠ»ΠΈ Π· Ρ€ΠΎΠ·ΡˆΠΈΡ€Π΅Π½Π½ΡΠΌ .ini), Π΄ΠΎΠ±Ρ€Π΅ Π²Ρ–Π΄ΠΎΠΌΡ– області збСрігання Π΄Π°Π½ΠΈΡ… (/home /, My Documents), Ρ– Ρ‚Π°ΠΊ Π΄Π°Π»Ρ–. Виходячи Π· Ρ†ΡŒΠΎΠ³ΠΎ, як ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, лСгшС Ρ€Π΅Π°Π»Ρ–Π·ΡƒΠ²Π°Ρ‚ΠΈ Ρ‚Π°ΠΊΡƒ Π±Π΅Π·ΠΏΠ΅ΠΊΠΎΠ²Ρƒ ΠΏΠΎΠ»Ρ–Ρ‚ΠΈΠΊΡƒ, Π² якій Π·Π°Π±ΠΎΡ€ΠΎΠ½Π΅Π½ΠΎ всС, Π²ΠΈΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‡ΠΈ Ρ‚Π΅, Ρ‰ΠΎ явно Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ.