如何禁用WordPress登录Cookie的HTTPOnly标签用于XSS练习
解决方案
你之前修改的文件没有覆盖WordPress签发登录Cookie的核心逻辑,按以下步骤操作即可生效:
- 第一步:修改核心Cookie签发逻辑
WordPress的登录Cookie统一由wp-includes/pluggable.php下的wp_set_auth_cookie函数生成,打开宿主机挂载的./wordpress/wp-includes/pluggable.php文件,搜索该函数,将函数内所有setcookie调用的最后一个httponly参数全部从true改为false。 - 第二步:修正wp-config.php的配置
你之前加的ini_set配置参数值写法不生效,将对应配置替换为以下内容,且要放在wp-config.php中/* That's all, stop editing! Happy blogging. */注释之前:@ini_set('session.cookie_httponly', 0); @ini_set('session.cookie_secure', 0); - 第三步:清理旧资源重启服务
- 打开浏览器设置,删除当前站点所有已存在的Cookie
- 执行命令重启容器:
docker-compose down && docker-compose up -d- 重新登录WordPress账号,新生成的Cookie就不会带HttpOnly标记了。
兜底快速方案
如果不想修改源码,直接在宿主机挂载的./wordpress根目录新建.htaccess文件,添加以下规则即可全局移除所有Cookie的HttpOnly标记:
Header always edit Set-Cookie ^(.*)$ $1;HttpOnly=false
验证方式:登录后打开浏览器控制台执行console.log(document.cookie),能输出wordpress_logged_in_开头的Cookie即为配置成功。
内容的提问来源于stack exchange,提问作者Elyes
相关产品推荐
相关产品推荐

