PHP assert: отображать содержимое файла в сообщении об ошибке - PullRequest
0 голосов
/ 26 апреля 2019

Я изучаю некоторые эксплойты веб-сервера и обнаружил утверждение, в котором я могу внедрить некоторый php-код. Я обнаружил, что следующий код

assert(file_get_contents('file.txt') !== null)

работает, как я ожидал: file_get_contents() выполняется, и его результат передается в assert. Тем не менее, если я сделаю это не так, как это

assert(file_get_contents('file.txt') === null)

Результат file_get_contents() не интерпретируется и поэтому не отображается в сообщении об ошибке.

Warning: assert(): assert(file_get_contents('file.txt') === null) failed in /Applications/MAMP/htdocs/test/assert.php on line 3 

Кто-нибудь имеет представление о том, как я могу получить содержимое файла, предполагая, что я могу сделать это только в assert?

1 Ответ

0 голосов
/ 30 апреля 2019

Для людей, которым интересно, как это можно сделать, я нашел решение.file_get_contents() не отображает непосредственно содержимое файла, вам нужно echo показать его.

Однако функция readfile() делает это отлично, просто отображает непосредственно содержимое файла.

Итак, просто назовите утверждение так:

assert(readfile('file.txt') === null)
...