2014-01-06 2 views
0

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

"GET" "включают" "include_once" "требуют" "require_once" (без "")

Я хочу написать простой сканер для Local инклюзии файла уязвимости (LFI), что вы можете дать код, и эта программа проверит его.

вот мой HTML сценарий:

+0

Любые ошибки или журналы? – BenM

+0

Невозможно выполнить поиск правильно! Но это не дает каких-либо ошибок, он просто дает некоторые предупреждения, как: //
Примечание: Undefined индекс: данные в C: \ XAMPP \ HTDOCS \ RFI-z.php на линии
Это может не быть уязвимым!
Предупреждение: fclose() ожидает параметр 1, чтобы быть ресурсом, строка, заданная в C: \ XAMPP \ HTDOCS \ RFI-z.php на линии
user3165410

+0

Уточнитните 'не искать correct'. Просто заявить, что он не работает, недостаточно! – BenM

ответ

0

Помимо того, что ваше регулярное выражение является неправильным (вы спасаясь от $ и вы могли бы просто быть легко использованы /GET/ как /^.*GET.*$/m от того, что я могу понять ваши намерения) и вы закрываете файл, а затем продолжаете его использовать, когда бог знает, что с ним в начале, ваш код, похоже, работает нормально. Я очистил от этого дерьмо и побежал, и все получилось.

<?php 
$contents = "GETincludeinclude_oncerequirerequire_once"; 

$pattern = "/^.*GET.*$/m"; 
if(preg_match_all($pattern, $contents, $matches)){ 
    echo "You used GET method !\n"; 
} 
else{ 
    echo "It might not to be vulnerable !\n"; 
} 

$pattern = "/^.*include.*$/m"; 
if(preg_match_all($pattern, $contents, $matches)){ 
    echo "You used include function !\n"; 
} 
else{ 
    echo "It might not to be vulnerable !\n"; 
} 

$pattern = "/^.*include_once.*$/m"; 
if(preg_match_all($pattern, $contents, $matches)){ 
    echo "You used include_once function !\n"; 
} 
else{ 
    echo "It might not to be vulnerable !\n"; 
} 

$pattern = "/^.*require.*$/m"; 
if(preg_match_all($pattern, $contents, $matches)){ 
    echo "You used require function !\n"; 
} 
else{ 
    echo "It might not to be vulnerable !\n"; 
} 

$pattern = "/^.*require_once.*$/m"; 
if(preg_match_all($pattern, $contents, $matches)){ 
    echo "You used require_once function !\n"; 
} 
else{ 
    echo "It might not to be vulnerable !\n"; 
} 
?> 

Над кодом выхода:

You used GET method ! 
You used include function ! 
You used include_once function ! 
You used require function ! 
You used require_once function ! 
+0

Спасибо за внимание, но он все равно не работает. например: дайте это программе: hellowhatsupman! и результат: «Вы использовали метод GET! Вы использовали функцию include! Вы использовали функцию include_once! Вы использовали функцию require! Вы использовали функцию require_once!» – user3165410

+0

Я не уверен, что вы сделали, чтобы получить этот результат, но с вводом 'hellowhatsupman!' Я получаю 'Это может быть не уязвимым! 'Для всех тестов. – Session

+0

вот мой код: http://s1.picofile.com/file/7482063545/Untitled.png (потому что в первую очередь я хочу получать данные из формы!) – user3165410

Смежные вопросы