lesloli
V2EX  ›  PHP

PHP 绕过验证密码问题

  •  
  •   lesloli · Jun 15, 2017 · 4864 views
    This topic created in 3434 days ago, the information mentioned may be changed or developed.

    请问如果用户不知道密码是 123456 可以输入什么可以绕过验证使其显示密码正确

    Supplement 1  ·  Jun 16, 2017
    呃....不好意思 是我描述不清楚 我的意思是不使用数据库
    比如$a=123456
    用户输入的是$b=$_POST['password']
    有什么办法可以在用户输入 password 的时候 不输入 123456
    就能通过验证
    36 replies  •  2017-06-16 22:44:12 +08:00
    changwei
    changwei
    Jun 15, 2017 via Android
    1
    这是哪里的黑客闯关题?
    dongdongkun
    dongdongkun
    Jun 15, 2017
    2
    1==1
    wkan
    wkan
    Jun 15, 2017
    3
    ' and 1=1; --
    GoBeyond
    GoBeyond
    Jun 15, 2017 via Android
    4
    很好,你这句话成功把我强迫症弄出来了,我想了无数遍也没弄懂你说的什么意思
    cjyang1128
    cjyang1128
    Jun 15, 2017
    5
    1、暴力破解
    2、社工
    3、SQL 注入
    orvice
    orvice
    Jun 15, 2017❤️2
    6
    想起以前 phpwind 论坛一个帖子:

    用户等级达到多少可以查看别人的密码?
    lsido
    lsido
    Jun 15, 2017 via Android
    7
    123456
    chunjie
    chunjie
    Jun 15, 2017
    8
    重置密码
    johnny23
    johnny23
    Jun 15, 2017 via iPhone
    9
    我发现好多程序员语言表达都有问题 当然我看懂你的大概意思了 但是你这个问题问的不明确
    coosir
    coosir
    Jun 15, 2017❤️3
    10
    我似乎明白为什么 PHP 老是被人黑了,问个问题能不能不拖上 PHP 啊
    vjnjc
    vjnjc
    Jun 15, 2017
    11
    看完上面的评论,我发现我不是一个人
    Light3
    Light3
    Jun 15, 2017
    12
    这个问题 跟 PHP 有毛关系..
    mysql and 1=1 可能行 再就是社工把..
    其余的不知道 不搞这个也不想知道..
    skylancer
    skylancer
    Jun 15, 2017
    13
    虽然我明白卤煮要问的什么,但是这表达能力,真的...

    上面已经有人回答了,就不再打了
    nodeath
    nodeath
    Jun 15, 2017
    14
    sql 注入
    SakuraKuma
    SakuraKuma
    Jun 15, 2017
    15
    这一刻,我以为我语文白学了
    keinx
    keinx
    Jun 15, 2017
    16
    不知道楼主表达什么,不知道是 123456 你输入什么可以绕过密码验证,那就是输入 sql 语句了,但是现在很多都是有防注入的。
    bumz
    bumz
    Jun 15, 2017❤️1
    17
    <?php

    // verify.php

    $supplied_password = $_GET['password'];
    $correct_password = '123456';

    if (strcmp($supplied_password, $correct_password) == 0) {
    echo 'Correct';
    } else {
    echo 'Wrong';
    }

    // How to pass:

    access: verify.php?password[]=a
    bumz
    bumz
    Jun 15, 2017
    18
    U7Q5tLAex2FI0o0g
    U7Q5tLAex2FI0o0g
    Jun 15, 2017
    19
    问个问题能不能不拖上 PHP +1
    fucker
    fucker
    Jun 16, 2017
    20
    有很多种方法
    klgd
    klgd
    Jun 16, 2017
    21
    问个问题能不能不拖上 PHP +1
    lesloli
    lesloli
    OP
    Jun 16, 2017
    22
    呃....不好意思 是我描述不清楚 我的意思是不使用数据库
    比如$a=123456
    用户输入的是$b=$_POST['password']
    有什么办法可以在用户输入 password 的时候 不输入 123456
    就能通过验证
    Patrick95
    Patrick95
    Jun 16, 2017
    23
    @lesloli #22

    我还是没看懂你的补充,变量$a 是干嘛用的?
    不输入 123456 ?
    if ($b != $a) {
    login();
    }
    lesloli
    lesloli
    OP
    Jun 16, 2017
    24
    @Patrick95 变量$a 就是储存密码的 假设密码就是 123456 判断输入的密码是否等于$a 等于就登录成功
    eoo
    eoo
    Jun 16, 2017
    25
    问个问题能不能不拖上 PHP +1
    Jacklee
    Jacklee
    Jun 16, 2017
    26
    其实我想问,楼主是碰到了,自己写的代码被人绕过了限制。所以先来问问有哪些绕过的方法,再去比对自己的逻辑漏洞么?是这样的话,直接上代码啊。
    lesloli
    lesloli
    OP
    Jun 16, 2017
    27
    @Jacklee
    代码很简单啊
    大概就是$a=123456
    $b=$_POST['password']
    if($a==$b)
    {
    echo"登陆成功";
    }
    atroy
    atroy
    Jun 16, 2017
    28
    感觉语文好差。。。看了 lz 的附加还是没看懂。
    既然不限制是否输入 123456 就能 pass,提交后直接 do_login_success(); 不就好了。。。
    lesloli
    lesloli
    OP
    Jun 16, 2017
    29
    @atroy 输入 123456 的确可以成功,但前提是输入者不知道密码是什么 这个 123456 是我举的例子,真是的密码肯定特别复杂猜不到的,所以在输入者不知道真实密码的情况下怎么才能通过验证
    nfroot
    nfroot
    Jun 16, 2017
    30
    目测……

    楼主是想破别人的密码,所以来这里求方法的。
    楼主是想破别人的密码,所以来这里求方法的。
    楼主是想破别人的密码,所以来这里求方法的。

    以 27 楼的回复来看,这还能绕过?那 if($a==$b)应该改为 if($a===$b)

    都 30 回复了,还没人搞明白,你到底是要破别人的密码,还是防别人破自己的密码,还是不知道自己的程序能不能绕过密码。

    30 回复了啊,能说明白吗?
    lesloli
    lesloli
    OP
    Jun 16, 2017
    31
    @nfroot 我不知道你从哪得出 “楼主是想破别人的密码,所以来这里求方法的。”这个结论的
    我说了 27 楼的代码就是我程序的代码 我这么验证被别人破了,所以来问别人是怎么破我的密码的
    atroy
    atroy
    Jun 16, 2017
    32
    @lesloli
    我不知道你的具体的代码原形。但给你个栗子吃一口。

    test.php?password=0

    <?php
    $a = 'a12B3.4c56';
    $b = $_GET['password'];
    if( $a == (int)$b){
    echo"登陆成功";
    }
    nfroot
    nfroot
    Jun 16, 2017
    33
    @lesloli 我给你写了解决方案啊,如果还能破解,那就是 BUG 了,赶紧提交给 PHP 官方吧。

    但是你也要把对方实际提交的字符串记录下来(会 PHP 存个字符串做记录不难吧),要不然你发到哪里都是没人会信你的。

    我在上面提到的解决办法就是“以 27 楼的回复来看,这还能绕过?那 if($a==$b)应该改为 if($a===$b) ”

    就事论事,上面一大堆人都不明白你到底要问什么,你应该学习一下《提问的智慧》,而我也给了你解决方案,你只评价我的态度,却不评价我的帮助,我表示遗憾。
    helica
    helica
    Jun 16, 2017 via iPhone
    34
    有很多思路呀。sql 注入,php 弱类型,逻辑漏洞。具体请看 ctf 的 web 题目
    junbguistar
    junbguistar
    Jun 16, 2017
    35
    楼主可能是问 又没什么方法可以绕过 if 我想。。可能编译器出错?
    cxbig
    cxbig
    Jun 16, 2017
    36
    前后端输入验证、Salt、ORM、失败多次帐号锁定。有这么几个基本的功能设计,PHP 层面绕过的可能性极低。

    同意楼上观点,楼主中文表达能力堪忧。学编程恐怕困难重重。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4561 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 387ms · UTC 08:36 · PVG 16:36 · LAX 00:36 · JFK 03:36
    ♥ Do have faith in what you're doing.