请问如果用户不知道密码是 123456 可以输入什么可以绕过验证使其显示密码正确
1
changwei 2017-06-15 12:24:23 +08:00 via Android
这是哪里的黑客闯关题?
|
2
dongdongkun 2017-06-15 12:29:43 +08:00
1==1
|
3
wkan 2017-06-15 12:32:15 +08:00
' and 1=1; --
|
4
GoBeyond 2017-06-15 12:44:48 +08:00 via Android
很好,你这句话成功把我强迫症弄出来了,我想了无数遍也没弄懂你说的什么意思
|
5
cjyang1128 2017-06-15 12:54:34 +08:00
1、暴力破解
2、社工 3、SQL 注入 |
6
orvice 2017-06-15 13:07:26 +08:00 2
想起以前 phpwind 论坛一个帖子:
用户等级达到多少可以查看别人的密码? |
7
lsido 2017-06-15 13:16:59 +08:00 via Android
123456
|
8
chunjie 2017-06-15 13:19:02 +08:00
重置密码
|
9
johnny23 2017-06-15 13:28:40 +08:00 via iPhone
我发现好多程序员语言表达都有问题 当然我看懂你的大概意思了 但是你这个问题问的不明确
|
10
coosir 2017-06-15 13:35:03 +08:00 3
我似乎明白为什么 PHP 老是被人黑了,问个问题能不能不拖上 PHP 啊
|
11
vjnjc 2017-06-15 13:38:06 +08:00
看完上面的评论,我发现我不是一个人
|
12
Light3 2017-06-15 13:59:09 +08:00
这个问题 跟 PHP 有毛关系..
mysql and 1=1 可能行 再就是社工把.. 其余的不知道 不搞这个也不想知道.. |
13
skylancer 2017-06-15 14:25:49 +08:00
虽然我明白卤煮要问的什么,但是这表达能力,真的...
上面已经有人回答了,就不再打了 |
14
nodeath 2017-06-15 14:32:51 +08:00
sql 注入
|
15
SakuraKuma 2017-06-15 14:50:58 +08:00
这一刻,我以为我语文白学了
|
16
keinx 2017-06-15 14:55:18 +08:00
不知道楼主表达什么,不知道是 123456 你输入什么可以绕过密码验证,那就是输入 sql 语句了,但是现在很多都是有防注入的。
|
17
bumz 2017-06-15 18:36:32 +08:00 1
<?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 |
18
bumz 2017-06-15 18:38:30 +08:00
|
19
littleylv 2017-06-15 18:40:31 +08:00
问个问题能不能不拖上 PHP +1
|
20
fucker 2017-06-16 08:25:30 +08:00
有很多种方法
|
21
klgd 2017-06-16 08:36:57 +08:00
问个问题能不能不拖上 PHP +1
|
22
lesloli OP 呃....不好意思 是我描述不清楚 我的意思是不使用数据库
比如$a=123456 用户输入的是$b=$_POST['password'] 有什么办法可以在用户输入 password 的时候 不输入 123456 就能通过验证 |
23
Patrick95 2017-06-16 10:37:43 +08:00
|
24
lesloli OP @Patrick95 变量$a 就是储存密码的 假设密码就是 123456 判断输入的密码是否等于$a 等于就登录成功
|
25
eoo 2017-06-16 10:55:43 +08:00
问个问题能不能不拖上 PHP +1
|
26
Jacklee 2017-06-16 11:38:39 +08:00
其实我想问,楼主是碰到了,自己写的代码被人绕过了限制。所以先来问问有哪些绕过的方法,再去比对自己的逻辑漏洞么?是这样的话,直接上代码啊。
|
27
lesloli OP |
28
atroy 2017-06-16 14:17:23 +08:00
感觉语文好差。。。看了 lz 的附加还是没看懂。
既然不限制是否输入 123456 就能 pass,提交后直接 do_login_success(); 不就好了。。。 |
29
lesloli OP @atroy 输入 123456 的确可以成功,但前提是输入者不知道密码是什么 这个 123456 是我举的例子,真是的密码肯定特别复杂猜不到的,所以在输入者不知道真实密码的情况下怎么才能通过验证
|
30
nfroot 2017-06-16 14:53:34 +08:00
目测……
楼主是想破别人的密码,所以来这里求方法的。 楼主是想破别人的密码,所以来这里求方法的。 楼主是想破别人的密码,所以来这里求方法的。 以 27 楼的回复来看,这还能绕过?那 if($a==$b)应该改为 if($a===$b) 都 30 回复了,还没人搞明白,你到底是要破别人的密码,还是防别人破自己的密码,还是不知道自己的程序能不能绕过密码。 30 回复了啊,能说明白吗? |
31
lesloli OP @nfroot 我不知道你从哪得出 “楼主是想破别人的密码,所以来这里求方法的。”这个结论的
我说了 27 楼的代码就是我程序的代码 我这么验证被别人破了,所以来问别人是怎么破我的密码的 |
32
atroy 2017-06-16 16:29:55 +08:00
@lesloli
我不知道你的具体的代码原形。但给你个栗子吃一口。 test.php?password=0 <?php $a = 'a12B3.4c56'; $b = $_GET['password']; if( $a == (int)$b){ echo"登陆成功"; } |
33
nfroot 2017-06-16 16:31:21 +08:00
@lesloli 我给你写了解决方案啊,如果还能破解,那就是 BUG 了,赶紧提交给 PHP 官方吧。
但是你也要把对方实际提交的字符串记录下来(会 PHP 存个字符串做记录不难吧),要不然你发到哪里都是没人会信你的。 我在上面提到的解决办法就是“以 27 楼的回复来看,这还能绕过?那 if($a==$b)应该改为 if($a===$b) ” 就事论事,上面一大堆人都不明白你到底要问什么,你应该学习一下《提问的智慧》,而我也给了你解决方案,你只评价我的态度,却不评价我的帮助,我表示遗憾。 |
34
helica 2017-06-16 19:57:30 +08:00 via iPhone
有很多思路呀。sql 注入,php 弱类型,逻辑漏洞。具体请看 ctf 的 web 题目
|
35
junbguistar 2017-06-16 20:05:14 +08:00
楼主可能是问 又没什么方法可以绕过 if 我想。。可能编译器出错?
|
36
cxbig 2017-06-16 22:44:12 +08:00
前后端输入验证、Salt、ORM、失败多次帐号锁定。有这么几个基本的功能设计,PHP 层面绕过的可能性极低。
同意楼上观点,楼主中文表达能力堪忧。学编程恐怕困难重重。。。 |