登录业务逻辑漏洞
登录业务逻辑漏洞是指由于登录过程中的逻辑设计不当而引起的潜在威胁
基础环境:
系统环境 | Windows(server2016) |
开发环境 | phpstudy_2016 |
环境代码:
<?php
$passwd="admin";//模拟数据库存储的密码
$pwd=@$_GET["p"];
if($pwd==$passwd or $_GET["user"]=="root"){
echo "welcome to system";
}else{
echo "please login";
}
?>
网站登录正常环境:
根据源代码构造:
成功登录
成功登录
因为源代码中验证密码用的or逻辑(判断有一个为真,值为真)关系和拼接,没有任何过滤,导致两者都可以进行登录(这里只是将逻辑漏洞存在原理)
危害:
- 缺乏访问控制:如果一个程序未能有效地验证用户的身份,攻击者可以通过伪造账号和密码来访问系统资源。
- 缓存攻击:如果登录成功后没有清除缓存,攻击者可以在一段时间内再次登录。
- 登录失败:如果登录失败次数过多,可能会导致系统拒绝合法用户的登录。