PHP жонглирование чтения и сравнения хэшей из файла - PullRequest
0 голосов
/ 11 июня 2018

это относится к хакерской проблеме на hackthebox.eu 'грамматика': я заполнил текстовый файл хэшем для сравнения, потеря сравнения в PHP.

<?php

$handle = fopen("test-md5", "r");
if ($handle) {
    while (($line = fgets($handle)) !==false) {
            $targethash = $line;
            if ($targethash == 'ff6d0a568d61e5a03bcdb04509d5885d') {
            echo "\n---yes, these match"; exit(0);
        }
        else {print "   "; print "ff6d0a568d61e5a03bcdb04509d5885d !== ".$targethash;}
    }
    fclose($handle);
    echo "\nTesting Complete\n";

} else {
    // error opening the file.
    echo "error";
}

Мой текстовый файл содержится в одну строкутот же хэш md5, что и в основном коде, но он не сравнивается с выводом true в выводе:

ff6d0a568d61e5a03bcdb04509d5885d !== B73C2D22763D1CE2143A3755C1D0AD3A
   ff6d0a568d61e5a03bcdb04509d5885d !== 3DB1A73A245AA55C61204C56C8D99F6D
   ff6d0a568d61e5a03bcdb04509d5885d !== ff6d0a568d61e5a03bcdb04509d5885d

Testing Complete

Я новичок в кодировании, но вырос этот сценарий из простого сценария тестирования ниже:

<?php
if (('ff6d0a568d61e5a03bcdb04509d5885d')
    ==
    ('ff6d0a568d61e5a03bcdb04509d5885d'))
    {  print "Yes, these are the same values.\n";}

        else {print "no match\n" ;}


?>

Перепечатав код в IDE Netbeans, я не смог увидеть никаких синтаксических ошибок, но не могу понять, почему он не находит тот же хеш в текстовом файле.Спасибо

1 Ответ

0 голосов
/ 11 июня 2018

Из сообщения u_mulder, чтобы использовать функцию trim (), обновленный код выглядит следующим образом:

    <?php
    $handle = fopen("test-md5", "r");
    if ($handle) {
        while (($line = fgets($handle)) !== false) {
            $targethash = trim($line);
            $target = (int)$targethash;
            if ( $target == "ff6d0a568d61e5a03bcdb04509d5885d" ) {
               print "-----Yes, these are the same values.-"."      ".$targethash."\n";
            }
            else {print "not a match   "; print $line;}
        }

        fclose($handle);
        echo "\nTesting complete\n";
} else {
    // error opening the file.
    echo "error";
}

?>

После того, как «trim» исправил его, чтобы сравнить каждую строку, которую он читает, со списком хэшей md5, ему потребовалсяполученный хеш должен быть прочитан как число, чтобы вызвать свободное сравнение.Подобное изменение типа должно использоваться в MAC, чтобы завершить вызов на HTB, чтобы вызвать слабое слабое сравнение в куки авторизации.

...