PHP 绕过验证密码问题

2017-06-15 12:19:57 +08:00
 lesloli

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

3731 次点击
所在节点    PHP
36 条回复
klgd
2017-06-16 08:36:57 +08:00
问个问题能不能不拖上 PHP +1
lesloli
2017-06-16 09:56:20 +08:00
呃....不好意思 是我描述不清楚 我的意思是不使用数据库
比如$a=123456
用户输入的是$b=$_POST['password']
有什么办法可以在用户输入 password 的时候 不输入 123456
就能通过验证
Patrick95
2017-06-16 10:37:43 +08:00
@lesloli #22

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

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

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

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

30 回复了啊,能说明白吗?
lesloli
2017-06-16 16:07:31 +08:00
@nfroot 我不知道你从哪得出 “楼主是想破别人的密码,所以来这里求方法的。”这个结论的
我说了 27 楼的代码就是我程序的代码 我这么验证被别人破了,所以来问别人是怎么破我的密码的
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"登陆成功";
}
nfroot
2017-06-16 16:31:21 +08:00
@lesloli 我给你写了解决方案啊,如果还能破解,那就是 BUG 了,赶紧提交给 PHP 官方吧。

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

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

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

同意楼上观点,楼主中文表达能力堪忧。学编程恐怕困难重重。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/368564

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX