1. PHP / Говнокод #18932

    +5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    <?php 
    include('config.php');
    $pasword_switch = $_GET["pass"];
    $mail = $_GET["mail"];
    $nashelsypa = 0;
    $sql = mysql_query("SELECT `user_id`, `email` FROM `users` WHERE `user_id`='".$pasword_switch."' AND `email`='".$mail."' LIMIT 1");
    while(mysql_fetch_array($sql))
    {
    	$nashelsypa = 1;
    }
    if($nashelsypa == 1)
    {
    	if(isset($_POST['submit']))
    	{
    		if($_POST['password'] == $_POST['password_re'])
    		{
    			mysql_query("UPDATE users SET password='".$_POST['password']."' WHERE `user_id`='".$pasword_switch."' AND `email`='".$mail."' ");
    			echo '<br>';
    			echo "Пароль успешно изменен";
    			mail($mail, "VK-SPS", "Ваш пароль для входу був змінений\nДані для входу \nE-mail:'".$mail."'\n Пароль:'".$_POST['password']."'"); 
    			header("Refresh: 5; url=login.php"); exit();
    		}
    		else
    		{
    			echo "Пароли не совпадают";
    		}
    	}
    ?>

    Смена пароля

    Запостил: kissarat, 29 Октября 2015

    Комментарии (25) RSS

    • $_GET["pass"];

      Ой, всё.
      Ответить
      • Не всё, там же не пароль.

        $_GET["pass"] === A в скрипте логически эквивалентно $_GET["command"] === 'password_change' && $_GET["username"] === A.

        > '".$user_input."'
        Ой, всё.
        Ответить
        • А, пардон, после $_GET["pass"] рука к лицу сразу полезла, дальше не смог прочитать.
          Ответить
    • Этот код может сменить пароль любого юзера (даже админа) без применения инъекции или там впереди была какая-то защита?
      Ответить
      • Ну так юзер же никогда не узнает чужой e-mail!
        Ответить
        • Действительно, защита по е-мейлу. Ведь у юзера kegdan ни к коем случае не может быть адреса [email protected]. Наверняка у него будет адрес типа [email protected] или вовсе на домене 84a2f6fd141.tk.

          Значит, придётся внедрять инъекцию:
          &mail='%20OR%20'1'='1
          Ответить
    • Хахаха
      Откуда код?
      Ответить
    • Я уже боюсь этого include(config.php)
      Ответить
      • Почему же?
        Ответить
        • Как только эта строчка - то сразу трэш со следующей строки начинается. Это как Asylum в титрах фильма видишь - будь готов.
          Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий