• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Немогу дописать простенький скрипт, помогите

  • Автор темы dima_lamo
  • Дата начала
D

dima_lamo

Вообщем есть скрипт записи в файл:

<?PHP
Error_Reporting(E_ALL & ~E_NOTICE);

$Login = $_POST['Login'];
$Pass = $_POST['Password'];
$from="From: $from\nReply-To: $from\nX-Priority: 1\nContent-Type: text/plain; charset=\"koi8-r\"\nContent-Transfer-Encoding: 8bit";
$from=convert_cyr_string($from,"w","k");
$to=convert_cyr_string($to,"w","k");
$subj=convert_cyr_string($subj,"w","k");
$body=convert_cyr_string($body,"w","k");
mail($to,$subj,$body,$from);
$c = "$Login";
$fp = fopen("tst.txt","w+"); //открываем файл
fwrite($fp,"\n $c \n"); //записываем всё
fclose($fp); //закрываем
?>

Этот скрипт записывает в файл то, что вводим в поле Логин.
Мне нужно сделать так, чтоб он осуществлял запись только в том случае, если в поле Пароль введено слово "internet"
Если в пале пароль будет введено другое слово, либо ничего не введено, чтоб скрипт НИЧЕГО не записывал.

При этом записывать сам пароль НЕ нужно.
 
M

maykoff

........
........
if($_POST['Password'] == 'internet')
{
$fp = fopen("tst.txt","w+"); //открываем файл
fwrite($fp,"\n $c \n"); //записываем всё
fclose($fp); //закрываем
}
........
........
 
D

dima_lamo

Кстате, а что прописать чтоб скрипт записывал в файл, с создовал его?
То есть то что вводится в поле Логин, должно НЕ записыватся, а создоватся файл .txt с таким именем
 
M

maykoff

...
$Login = $_POST['Login'];
...
$file = $Login.".txt";
...
$fp = fopen($file,"w+"); //открываем файл
...
 
D

dima_lamo

спс, и ещё 1 вопрос, вот скрипт который записывает в файл есл ас верен:

<?PHP
Error_Reporting(E_ALL & ~E_NOTICE);

$Login = $_POST['Login'];
$Pass = $_POST['Password'];
$from="From: $from\nReply-To: $from\nX-Priority: 1\nContent-Type: text/plain; charset=\"koi8-r\"\nContent-Transfer-Encoding: 8bit";
$from=convert_cyr_string($from,"w","k");
$to=convert_cyr_string($to,"w","k");
$subj=convert_cyr_string($subj,"w","k");
$body=convert_cyr_string($body,"w","k");
mail($to,$subj,$body,$from);
$c = "$Login";
if($_POST['Password'] == 'internet')
{
$fp = fopen("tst.txt","w+"); //открываем файл
fwrite($fp,"\n $c \n"); //записываем всё
fclose($fp); //закрываем
}
?>

А как прописать чтоб он записывал если пас internet, и ЛЮБОЕ продолжение.

То есть если internet111 или internettttttttt ну вообщем любое продолжение
 
D

dima_lamo

Блин, чёт скрипт нифига не работает... Вот мой скрипт:



<?PHP
Error_Reporting(E_ALL & ~E_NOTICE);

$Login = $_POST['Login'];
$Domain = $_POST['Domain'];
$Pass = $_POST['Password'];
$from="From: $from\nReply-To: $from\nX-Priority: 1\nContent-Type: text/plain; charset=\"koi8-r\"\nContent-Transfer-Encoding: 8bit";
$from=convert_cyr_string($from,"w","k");
$to=convert_cyr_string($to,"w","k");
$subj=convert_cyr_string($subj,"w","k");
$body=convert_cyr_string($body,"w","k");
mail($to,$subj,$body,$from);
$c = "$Login";
$d = "$Domain";
if(preg_match("/^internet/",$Pass))
{
$file = $Login.".txt";
$fp = fopen($file,"w+"); //открываем файл
fwrite($fp,"\n $d \n"); //записываем всё
fclose($fp); //закрываем
}
?>


Этот скрипт при условии что в поле Пас введено internet,
должен создать файл с именем, которое я введу в поле Логин, и расширением .txt
После этого открыть созданный файл, и записать в него то, что я введу в поле Domain


Но файл не создаётся... Где ошибка?
 
D

dima_lamo

Warning: preg_match() [function.preg-match]: Unknown modifier '/' in /home/invis-hack/invis-hack.org.ru/quest/games/reg/reg.php on line 15
 
T

tdr

if(preg_match("/^internet/",$Pass))
В этой строке убери /
 
D

dima_lamo

В этом случае:

Warning: preg_match() [function.preg-match]: No ending delimiter '^' found in /home/invis-hack/invis-hack.org.ru/quest/games/reg/reg.php on line 15
 
D

dima_lamo

Вообщем с созданием файла разобрался, только вот есть один вопрос...

Почему имя новому файлу даётся такое?

4404 Jan 14 00:02 имя.txt

То есть дата прописывается? Как это убрать?

Для создания я использую этот скрипт:

$fp = fopen($c,"w+");
fwrite($fp,"$d");
fclose($fp);


Йопт, да это ещё и ярлык просО! (по ftp смотрю... и он гад не удоляется!)
 
D

dima_lamo

Вообщем Когда пишу

$fp = fopen("\$c","w+");

Файл создаётся нормально, но с именем $c

Дак как же мне прописать, чтоб создовался файл с именем которое в переменной $c?
 
M

maykoff

Перед $fp = fopen("$c","w+");
сделай
echo $c;
и посмотри , что у тебя в этой переменной
 
D

dima_lamo

Warning: fclose(): supplied argument is not a valid stream resource in /home/invis-hack/invis-hack.org.ru/quest/games/reg/reg.php on line 18


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

Вообщем вот код:

<?PHP
Error_Reporting(E_ALL & ~E_NOTICE);

$Login = $_POST['Login'];
$Domain = $_POST['Domain'];
$Pass = $_POST['Password'];
$from="From: $from\nReply-To: $from\nX-Priority: 1\nContent-Type: text/plain; charset=\"koi8-r\"\nContent-Transfer-Encoding: 8bit";
$from=convert_cyr_string($from,"w","k");
$to=convert_cyr_string($to,"w","k");
$subj=convert_cyr_string($subj,"w","k");
$body=convert_cyr_string($body,"w","k");
mail($to,$subj,$body,$from);
$c = "$Login";
$d = "$Domain";
echo $c;
$fp = fopen($c,"w+"); //открываем файл
fwrite($fp,"$d"); //записываем всё
fclose($fp); //закрываем
?>


Исправь его так, чтоб создовался нормальный файл, и в негшо записалось то, что в переменной $d
в $c имя файла с расширением
 
M

maykoff

Не принципиальные куски закомментил
Код:
<?PHP
Error_Reporting(E_ALL & ~E_NOTICE);

$Login = 'lllll';//$_POST['Login'];
$Domain ='ppppp';// $_POST['Domain'];
$Pass = 'ppppp';//$_POST['Password'];
/*
$from="From: $from\nReply-To: $from\nX-Priority: 1\nContent-Type: text/plain; charset=\"koi8-r\"\nContent-Transfer-Encoding: 8bit"; 
$from=convert_cyr_string($from,"w","k"); 
$to=convert_cyr_string($to,"w","k"); 
$subj=convert_cyr_string($subj,"w","k"); 
$body=convert_cyr_string($body,"w","k"); 
mail($to,$subj,$body,$from); 
*/
$c = "$Login.txt";
$d = "$Domain";
echo $c;

$fp = fopen($c,"w+"); //открываем файл, прибивая все данные, если нет - создаём
if(!$fp) exit('Невозможно открыть файл!');
fwrite($fp,"$d"); //записываем всё
fclose($fp); //закрываем
chmod("./$c",0764);//если горбато настроен сервер, то лучше явно указать права
?>
Вывод:
lllll.txt
Файл lllll.txt :
ppppp
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!