100.网络安全渗透测试—[常规漏洞挖掘与利用篇16]—[密码找回漏洞与测试]

本文介绍了密码找回漏洞的概念,常见找回方式以及其在逻辑漏洞中的重要性。详细阐述了测试过程,包括源码审计、正常流程模拟、漏洞分析和利用方法。通过实例展示了如何预测和枚举token,以实现密码的非法修改。最后总结了测试步骤和存在的问题。
摘要由CSDN通过智能技术生成

我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!!

一、密码找回漏洞与测试

1、密码找回漏洞简介

       为了防止用户遗忘密码,大多数网站都提供了找回密码功能。常见的找回密码方式有:邮箱找回密码、根据密码保护问题找回密码、根据手机号码找回密码等。虽然这些方式都可以找回密码,但实现方式各不相同。无论是哪种密码找回方式,在找回密码时,除了自己的用户密码,如果还能找回其他用户的密码,就存在密码找回漏洞。

       密码找回漏洞在逻辑漏洞中占了较大的比例。测试密码找回漏洞与其他逻辑漏洞的方法相同,其中必经的两个步骤是:熟悉业务流程(密码找回过程)与对流程中的HTTP请求分析

2、密码找回漏洞测试

(1)源码审计:forget.php
<?php
	include 'init.php';

	
	//以下是关键漏洞代码:此处创建token的方法过滤简单!!!属于可预测型token!!!
	function create_pass($username,$email){
   
		$token=md5(time().$username.$email);
		return $token;
	}


	echo '<meta charset="UTF-8">';
	//以下是验证用户是否存在	
	if($_GET['c']=='forget'){
   	
		$username= trim($_POST['username']);	
		$re=mysql_query("select * from member where username='{
     $username}'");	
		$row = mysql_fetch_array($re);	
		$_email = $row['email'];
		if($row){
   		
			echo "<form method='post' action='?c=email'>";
			echo "用户{
     $row['username']}存在  请输入用户的邮箱";
			echo "<input type='text' name='email'/>";
			echo "<input type='hidden' name='username' value='{
     $row['username']}'/>";
			echo "<input type='submit' value='发送key'/></form>";	
		}	
	}
	
	
	//以下是验证邮箱是否合法,然后模拟把含有token的修改密码链接发送给邮箱
	if($_GET['c']=='email'){
   
		$username= trim($_POST['username']);
		$re=mysql_query("select * from member where username='{
     $username}'");
		$row = mysql_fetch_array($re
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qwsn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值