授权绕过(Authorisation Bypass)是一种严重的安全,通过利用系统的或错误配置,绕过正常的访问控制机制,获得未经授权的访问权限。这种可能导致敏感信息泄露、数据篡改、系统破坏等严重后果 。
以下是一些常见的授权绕过场景:
预防和修复授权绕过漏洞需要全面实施和审核权限控制机制,包括:
先使用管理员登录,然后记住下面的数据库以及路径 vulnerabilities/authbypass 。
打开数据库,进入user表,可以看到密码都是进行MD5加密的 。
解密md5值 。
切换成普通用户 。
可以看到少了刚才那一栏 。
访问刚才保留的路径 。
成功访问 。
并且在网络响应里回显了数据库信息 。
<?php
/*
Nothing to see here for this vulnerability, have a look
instead at the dvwaHtmlEcho function in:
* dvwa/includes/dvwaPage.inc.php # 具体内容在下面这个函数里
*/
?>
访问刚才的路径,发现被拦截了 。
想到刚才网络资源里泄露的信息,访问vulnerabilities/authbypass/get_user_data.php 。
成功获取数据库信息 。
首先检查用户是否是管理员才可以执行,然后利用下面两个函数进行限制 。
<?php
/*
只有管理员用户被允许访问这个页面。
请查看以下两个文件以寻找可能的漏洞:
* vulnerabilities/authbypass/get_user_data.php
* vulnerabilities/authbypass/change_user_details.php
*/
if (dvwaCurrentUser() != "admin") { // 检查当前用户是否不是管理员
print "未经授权"; // 输出未授权提示
http_response_code(403); // 设置HTTP响应状态码为403(禁止访问)
exit; // 结束脚本执行
}
?>
方法和上面的差不多,不同的是需要抓包修改POST请求 。