{"id":478,"date":"2026-10-27T17:25:29","date_gmt":"2026-10-27T09:25:29","guid":{"rendered":"https:\/\/www.qgg4588.cn\/index.php\/2026\/10\/27\/qgg-kb-20261027-002\/"},"modified":"2026-10-27T17:25:29","modified_gmt":"2026-10-27T09:25:29","slug":"qgg-kb-20261027-002","status":"publish","type":"post","link":"https:\/\/www.qgg4588.cn\/index.php\/2026\/10\/27\/qgg-kb-20261027-002\/","title":{"rendered":"Authentication Bypass\uff5c\u9759\u6001\u8d44\u6e90\u540e\u7f00 + %23 \u7f16\u7801\u7ed5\u8fc7 401\uff1a\/api\/users%23.map \u8ba9\u7f51\u5173\u653e\u884c\u3001\u6846\u67b6\u547d\u4e2d\u771f\u5b9e\u8def\u7531"},"content":{"rendered":"<style>\n.qgg-lead{font-size:17px;line-height:1.9;color:#333}\n.qgg-meta{margin:14px 0 18px}\n.qgg-badge{display:inline-block;padding:2px 10px;margin:0 6px 6px 0;border-radius:12px;\nbackground:#eef3ff;color:#2f56d6;font-size:13px;font-weight:600}\n.qgg-toc{background:#f7f9fc;border:1px solid #e6ecf5;border-radius:10px;padding:14px 20px;margin:22px 0 28px}\n.qgg-toc-title{font-weight:700;color:#1f2d3d;margin-bottom:8px}\n.qgg-toc ol{margin:0;padding-left:20px}\n.qgg-toc li{margin:4px 0}\n.qgg-toc a{color:#2f56d6;text-decoration:none}\n.qgg-list li{margin:7px 0;line-height:1.85;color:#2c3e50}\n.qgg-code{background:#0f172a;color:#e2e8f0;padding:16px 18px;border-radius:10px;overflow-x:auto;\nfont-size:13px;line-height:1.65;position:relative}\n.qgg-ascii{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:12px 14px;overflow-x:auto;font-family:ui-monospace,Consolas,monospace;font-size:12px;line-height:1.25;color:#334155;white-space:pre}\n.qgg-code[data-lang]:not([data-lang=\"\"])::before{content:attr(data-lang);position:absolute;\ntop:0;right:0;background:#1e293b;color:#94a3b8;font-size:11px;padding:2px 10px;border-radius:0 10px 0 8px}\n.qgg-inline-code{background:#eef2f7;color:#c7254e;padding:2px 6px;border-radius:4px;font-size:90%}\n.qgg-table-wrap{overflow-x:auto;margin:18px 0}\n.qgg-table{width:100%;border-collapse:collapse;font-size:14px}\n.qgg-table th{background:#f2f6ff;color:#1f2d3d;text-align:left;padding:10px 12px;border:1px solid #e3eaf5}\n.qgg-table td{padding:9px 12px;border:1px solid #e8eef7}\n.qgg-table tr:nth-child(even) td{background:#fafcff}\n.qgg-callout{background:#eef7ff;border-left:4px solid #3b82f6;border-radius:0 8px 8px 0;\npadding:14px 18px;margin:18px 0}\n.qgg-callout-warn{background:#fff7ed;border-left-color:#f59e0b}\n.qgg-callout-t{display:block;font-weight:700;color:#1e40af;margin-bottom:6px}\n.qgg-quote{border-left:4px solid #cbd5e1;color:#475569;margin:16px 0;padding:8px 16px}\nh2{margin-top:38px;padding-bottom:8px;border-bottom:2px solid #eef2f7;font-size:22px}\nh3{margin-top:26px;font-size:18px}\nfigure{margin:20px 0;text-align:center}\nfigure img{border-radius:10px;max-width:100%;height:auto}\nfigcaption{font-size:12px;color:#94a3b8;margin-top:8px}\n.qgg-footer{font-size:12px;color:#9aa5b1;margin-top:26px}\n<\/style>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_50 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\">\u76ee\u5f55<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\" role=\"button\"><label for=\"item-6ae1c60cb1b01\" aria-hidden=\"true\"><span style=\"display: flex;align-items: center;width: 35px;height: 30px;justify-content: center;direction:ltr;\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/label><input  type=\"checkbox\" id=\"item-6ae1c60cb1b01\"><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.qgg4588.cn\/index.php\/2026\/10\/27\/qgg-kb-20261027-002\/#%E9%9D%99%E6%80%81%E8%B5%84%E6%BA%90%E5%90%8E%E7%BC%80_23_%E7%BC%96%E7%A0%81%E7%BB%95%E8%BF%87_401%EF%BC%88apiusers23map%EF%BC%89\" title=\"\u9759\u6001\u8d44\u6e90\u540e\u7f00 + %23 \u7f16\u7801\u7ed5\u8fc7 401\uff08\/api\/users%23.map\uff09\">\u9759\u6001\u8d44\u6e90\u540e\u7f00 + %23 \u7f16\u7801\u7ed5\u8fc7 401\uff08\/api\/users%23.map\uff09<\/a><ul class='ez-toc-list-level-3'><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.qgg4588.cn\/index.php\/2026\/10\/27\/qgg-kb-20261027-002\/#%E6%8A%80%E5%B7%A7%E6%9C%AC%E4%BD%93\" title=\"\u6280\u5de7\u672c\u4f53\">\u6280\u5de7\u672c\u4f53<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.qgg4588.cn\/index.php\/2026\/10\/27\/qgg-kb-20261027-002\/#%E4%B8%BA%E4%BB%80%E4%B9%88_23_%E8%A1%8C%E8%80%8C_%E4%B8%8D%E8%A1%8C%EF%BC%88%E6%9C%BA%E5%88%B6%E6%8B%86%E8%A7%A3%EF%BC%89\" title=\"\u4e3a\u4ec0\u4e48 %23 \u884c\u800c ? \u4e0d\u884c\uff08\u673a\u5236\u62c6\u89e3\uff09\">\u4e3a\u4ec0\u4e48 %23 \u884c\u800c ? \u4e0d\u884c\uff08\u673a\u5236\u62c6\u89e3\uff09<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.qgg4588.cn\/index.php\/2026\/10\/27\/qgg-kb-20261027-002\/#%E4%B8%80%E3%80%81%E6%A0%B8%E5%BF%83%E6%80%9D%E8%B7%AF\" title=\"\u4e00\u3001\u6838\u5fc3\u601d\u8def\">\u4e00\u3001\u6838\u5fc3\u601d\u8def<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.qgg4588.cn\/index.php\/2026\/10\/27\/qgg-kb-20261027-002\/#%E4%BA%8C%E3%80%81%E6%88%90%E7%AB%8B%E6%9D%A1%E4%BB%B6\" title=\"\u4e8c\u3001\u6210\u7acb\u6761\u4ef6\">\u4e8c\u3001\u6210\u7acb\u6761\u4ef6<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.qgg4588.cn\/index.php\/2026\/10\/27\/qgg-kb-20261027-002\/#%E4%B8%89%E3%80%81%E9%AA%8C%E8%AF%81%E6%96%B9%E6%B3%95%E4%B8%8E%E6%AD%A5%E9%AA%A4\" title=\"\u4e09\u3001\u9a8c\u8bc1\u65b9\u6cd5\u4e0e\u6b65\u9aa4\">\u4e09\u3001\u9a8c\u8bc1\u65b9\u6cd5\u4e0e\u6b65\u9aa4<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.qgg4588.cn\/index.php\/2026\/10\/27\/qgg-kb-20261027-002\/#%E5%9B%9B%E3%80%81%E8%AF%AF%E6%8A%A5%E6%8E%92%E9%99%A4\" title=\"\u56db\u3001\u8bef\u62a5\u6392\u9664\">\u56db\u3001\u8bef\u62a5\u6392\u9664<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.qgg4588.cn\/index.php\/2026\/10\/27\/qgg-kb-20261027-002\/#%E4%BA%94%E3%80%81%E5%BD%B1%E5%93%8D%E4%B8%8E%E4%BF%AE%E5%A4%8D\" title=\"\u4e94\u3001\u5f71\u54cd\u4e0e\u4fee\u590d\">\u4e94\u3001\u5f71\u54cd\u4e0e\u4fee\u590d<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.qgg4588.cn\/index.php\/2026\/10\/27\/qgg-kb-20261027-002\/#%E5%85%AD%E3%80%81%E5%8E%9F%E5%A7%8B%E6%9D%A5%E6%BA%90\" title=\"\u516d\u3001\u539f\u59cb\u6765\u6e90\">\u516d\u3001\u539f\u59cb\u6765\u6e90<\/a><\/li><\/ul><\/nav><\/div>\n<h2 id=\"\u9759\u6001\u8d44\u6e90\u540e\u7f00-23-\u7f16\u7801\u7ed5\u8fc7-401-api-users-23-map\"><span class=\"ez-toc-section\" id=\"%E9%9D%99%E6%80%81%E8%B5%84%E6%BA%90%E5%90%8E%E7%BC%80_23_%E7%BC%96%E7%A0%81%E7%BB%95%E8%BF%87_401%EF%BC%88apiusers23map%EF%BC%89\"><\/span>\u9759\u6001\u8d44\u6e90\u540e\u7f00 + %23 \u7f16\u7801\u7ed5\u8fc7 401\uff08\/api\/users%23.map\uff09<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"\u6280\u5de7\u672c\u4f53\"><span class=\"ez-toc-section\" id=\"%E6%8A%80%E5%B7%A7%E6%9C%AC%E4%BD%93\"><\/span>\u6280\u5de7\u672c\u4f53<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u5bf9\u88ab 401 \u4fdd\u62a4\u7684\u8def\u7531 <code class=\"qgg-inline-code\">\/api\/users<\/code>\uff1a<\/p>\n<pre class=\"qgg-code\" data-lang=\"\"><code>GET \/api\/users%23.map     \u2192 200\uff0c\u8fd4\u56de \/api\/users \u7684\u771f\u5b9e\u54cd\u5e94\nGET \/api\/users?.map       \u2192 \u4ecd 401\uff08\u65e0\u6548\uff09\n<\/code><\/pre>\n<p><strong>\u5fc5\u987b <code class=\"qgg-inline-code\">%23.map<\/code>\uff08<code class=\"qgg-inline-code\">#<\/code> \u7684\u7f16\u7801\uff09\uff0c<code class=\"qgg-inline-code\">?.map<\/code>\uff08query \u5f62\u5f0f\uff09\u4e0d\u884c\u3002<\/strong><\/p>\n<h3 id=\"\u4e3a\u4ec0\u4e48-23-\u884c\u800c-\u4e0d\u884c-\u673a\u5236\u62c6\u89e3\"><span class=\"ez-toc-section\" id=\"%E4%B8%BA%E4%BB%80%E4%B9%88_23_%E8%A1%8C%E8%80%8C_%E4%B8%8D%E8%A1%8C%EF%BC%88%E6%9C%BA%E5%88%B6%E6%8B%86%E8%A7%A3%EF%BC%89\"><\/span>\u4e3a\u4ec0\u4e48 <code class=\"qgg-inline-code\">%23<\/code> \u884c\u800c <code class=\"qgg-inline-code\">?<\/code> \u4e0d\u884c\uff08\u673a\u5236\u62c6\u89e3\uff09<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u4e24\u5c42\u5bf9\"\u8fd9\u4e2a\u8bf7\u6c42\u662f\u4ec0\u4e48\"\u7684\u5224\u65ad\u4e0d\u4e00\u81f4\uff1a<\/p>\n<div class=\"qgg-table-wrap\">\n<table class=\"qgg-table\">\n<thead>\n<tr>\n<th>\u5c42<\/th>\n<th>\u770b\u5230 <code class=\"qgg-inline-code\">%23.map<\/code><\/th>\n<th>\u770b\u5230 <code class=\"qgg-inline-code\">?.map<\/code><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u7f51\u5173\/\u9274\u6743\u5c42\uff08Nginx\/openresty\/WAF\uff09<\/td>\n<td>\u539f\u59cb\u5b57\u8282 <code class=\"qgg-inline-code\">%23<\/code> \u4e0d\u662f <code class=\"qgg-inline-code\">#<\/code> \u2192 <strong>\u4e0d\u5f53\u4f5c fragment \u622a\u65ad<\/strong>\uff1b`.m<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\"   class=\"lazyload\" data-src=\"https:\/\/www.qgg4588.cn\/wp-content\/uploads\/2026\/10\/qgg-20261027-qgg-kb-20261027-002-cover.png\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/moezx\/cdn@3.0.2\/img\/svg\/loader\/trans.ajax-spinner-preloader.svg\" onerror=\"imgError(this)\"  alt=\"\u9759\u6001\u8d44\u6e90\u540e\u7f00 + %23 \u7f16\u7801\u7ed5\u8fc7 401\uff1a\/api\/users%23.map \u8ba9\u7f51\u5173\u653e\u884c\u3001\u6846\u67b6\u547d\u4e2d\u771f\u5b9e\u8def\u7531\" \/><figcaption>\u539f\u6587\u914d\u56fe\uff08\u6765\u6e90\uff1alocal:\/\/user-case\/2026-10-27-gateway-suffix-bypass\uff09<\/figcaption><\/figure >\n<noscript><img decoding=\"async\" src=\"https:\/\/www.qgg4588.cn\/wp-content\/uploads\/2026\/10\/qgg-20261027-qgg-kb-20261027-002-cover.png\" alt=\"\u9759\u6001\u8d44\u6e90\u540e\u7f00 + %23 \u7f16\u7801\u7ed5\u8fc7 401\uff1a\/api\/users%23.map \u8ba9\u7f51\u5173\u653e\u884c\u3001\u6846\u67b6\u547d\u4e2d\u771f\u5b9e\u8def\u7531\" \/><figcaption>\u539f\u6587\u914d\u56fe\uff08\u6765\u6e90\uff1alocal:\/\/user-case\/2026-10-27-gateway-suffix-bypass\uff09<\/figcaption><\/figure><\/noscript>\n<div class=\"qgg-meta\"><span class=\"qgg-badge\">Authentication Bypass<\/span> <span class=\"qgg-badge\">\u8bc4\u5206 58.0<\/span> <span class=\"qgg-badge\">\u72b6\u6001 candidate<\/span> <span class=\"qgg-badge\">QGG-KB-20261027-002<\/span><\/div>\n<nav class=\"qgg-toc\">\n<div class=\"qgg-toc-title\">\u672c\u6587\u76ee\u5f55<\/div>\n<ol>\n<li><a href=\"#sec1\" target=\"_blank\"  rel=\"nofollow\" >\u6838\u5fc3\u601d\u8def<\/a><\/li>\n<li><a href=\"#sec2\" target=\"_blank\"  rel=\"nofollow\" >\u6210\u7acb\u6761\u4ef6<\/a><\/li>\n<li><a href=\"#sec3\" target=\"_blank\"  rel=\"nofollow\" >\u9a8c\u8bc1\u65b9\u6cd5\u4e0e\u6b65\u9aa4<\/a><\/li>\n<li><a href=\"#sec4\" target=\"_blank\"  rel=\"nofollow\" >\u8bef\u62a5\u6392\u9664<\/a><\/li>\n<li><a href=\"#sec5\" target=\"_blank\"  rel=\"nofollow\" >\u5f71\u54cd\u4e0e\u4fee\u590d<\/a><\/li>\n<li><a href=\"#sec6\" target=\"_blank\"  rel=\"nofollow\" >\u539f\u59cb\u6765\u6e90<\/a><\/li>\n<\/ol>\n<\/nav>\n<h2 id=\"sec1\"><span class=\"ez-toc-section\" id=\"%E4%B8%80%E3%80%81%E6%A0%B8%E5%BF%83%E6%80%9D%E8%B7%AF\"><\/span>\u4e00\u3001\u6838\u5fc3\u601d\u8def<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul class=\"qgg-list\">\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u591a\u6b65\u9aa4\u6d41\u7a0b\u7684\u4fe1\u4efb\u6a21\u578b\u9519\u4f4d\uff08\u6bcf\u6b65\u5404\u81ea\u6821\u9a8c\u3001\u6b65\u9aa4\u95f4\u4e3b\u4f53\u4e0d\u4e00\u81f4\uff09\u3011\u753b\u72b6\u6001\u673a\uff1a\u6bcf\u6b65 \u8f93\u5165 \/ \u670d\u52a1\u7aef\u4ea7\u51fa \/ \u4f1a\u8bdd\u6216 token \/ \u4e0b\u4e00\u6b65\u4f9d\u8d56\uff0c\u7f3a\u4e00\u6b65\u4f1a\u8bef\u5224<\/li>\n<li>\u6765\u6e90\u94fe\u63a5: local:\/\/user-case\/2026-10-27-gateway-suffix-bypass<\/li>\n<li>\u5206\u7c7b\u547d\u4e2d\u8bcd: {'Authentication Bypass': [], 'Command Injection \/ RCE': ['rce'], 'Path Traversal \/ LFI': ['..\/']}<\/li>\n<\/ul>\n<div class=\"qgg-callout\"><span class=\"qgg-callout-t\">\u843d\u5230 QGG \u600e\u4e48\u7528<\/span><\/p>\n<p>\u53ef\u76f4\u63a5\u843d\u5230 QGG \u7684\u300cAuthentication Bypass\u300d\u6d4b\u8bd5\u6e05\u5355\uff1a\u3010\u591a\u6b65\u9aa4\u6d41\u7a0b\u7684\u4fe1\u4efb\u6a21\u578b\u9519\u4f4d\uff08\u6bcf\u6b65\u5404\u81ea\u6821\u9a8c\u3001\u6b65\u9aa4\u95f4\u4e3b\u4f53\u4e0d\u4e00\u81f4\uff09\u3011\u753b\u72b6\u6001\u673a\uff1a\u6bcf\u6b65 \u8f93\u5165 \/ \u670d\u52a1\u7aef\u4ea7\u51fa \/ \u4f1a\u8bdd\u6216 token \/ \u4e0b\u4e00\u6b65\u4f9d\u8d56\uff0c\u7f3a\u4e00\u6b65\u4f1a\u8bef\u5224\uff1b\u4ec5\u53ef\u751f\u6210\u4eba\u5de5\u6838\u67e5\u6e05\u5355\uff08\u7f3a\u8bf7\u6c42\u7ea7\u8bc1\u636e\uff0c\u7981\u81ea\u52a8\u751f\u6210\u751f\u4ea7\u6a21\u677f\uff09<\/p>\n<\/div>\n<h2 id=\"sec2\"><span class=\"ez-toc-section\" id=\"%E4%BA%8C%E3%80%81%E6%88%90%E7%AB%8B%E6%9D%A1%E4%BB%B6\"><\/span>\u4e8c\u3001\u6210\u7acb\u6761\u4ef6<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul class=\"qgg-list\">\n<li>\u6765\u6e90\u672a\u660e\u786e\u5199\u51fa\u6210\u7acb\u6761\u4ef6\uff08\u7f3a\u5931\uff0c\u9700\u5728\u9a8c\u8bc1\u9636\u6bb5\u8865\u9f50\uff09<\/li>\n<\/ul>\n<h2 id=\"sec3\"><span class=\"ez-toc-section\" id=\"%E4%B8%89%E3%80%81%E9%AA%8C%E8%AF%81%E6%96%B9%E6%B3%95%E4%B8%8E%E6%AD%A5%E9%AA%A4\"><\/span>\u4e09\u3001\u9a8c\u8bc1\u65b9\u6cd5\u4e0e\u6b65\u9aa4<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul class=\"qgg-list\">\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u591a\u6b65\u9aa4\u6d41\u7a0b\u7684\u4fe1\u4efb\u6a21\u578b\u9519\u4f4d\uff08\u6bcf\u6b65\u5404\u81ea\u6821\u9a8c\u3001\u6b65\u9aa4\u95f4\u4e3b\u4f53\u4e0d\u4e00\u81f4\uff09\u3011\u753b\u72b6\u6001\u673a\uff1a\u6bcf\u6b65 \u8f93\u5165 \/ \u670d\u52a1\u7aef\u4ea7\u51fa \/ \u4f1a\u8bdd\u6216 token \/ \u4e0b\u4e00\u6b65\u4f9d\u8d56\uff0c\u7f3a\u4e00\u6b65\u4f1a\u8bef\u5224<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u591a\u6b65\u9aa4\u6d41\u7a0b\u7684\u4fe1\u4efb\u6a21\u578b\u9519\u4f4d\uff08\u6bcf\u6b65\u5404\u81ea\u6821\u9a8c\u3001\u6b65\u9aa4\u95f4\u4e3b\u4f53\u4e0d\u4e00\u81f4\uff09\u3011\u8eab\u4efd\u6765\u6e90\u6807\u6ce8\uff1a\u6bcf\u6b65\u670d\u52a1\u7aef\u8ba4\u5b9a\u7684\u8eab\u4efd\u6765\u81ea\u8f93\u5165\u53c2\u6570\u3001\u4f1a\u8bdd cookie\u3001\u6570\u636e\u5e93\u3001\u8fd8\u662f\u4e0a\u4e00\u6b65\u54cd\u5e94\uff1f<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u591a\u6b65\u9aa4\u6d41\u7a0b\u7684\u4fe1\u4efb\u6a21\u578b\u9519\u4f4d\uff08\u6bcf\u6b65\u5404\u81ea\u6821\u9a8c\u3001\u6b65\u9aa4\u95f4\u4e3b\u4f53\u4e0d\u4e00\u81f4\uff09\u3011\u6b65\u9aa4\u8df3\u8dc3\u4e0e\u4e71\u5e8f\uff1a\u76f4\u8fbe step3\/step4\u3001\u8df3\u8fc7 step2\u3001\u91cd\u653e step1 \u7684\u54cd\u5e94\u63a8\u8fdb step2<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u591a\u6b65\u9aa4\u6d41\u7a0b\u7684\u4fe1\u4efb\u6a21\u578b\u9519\u4f4d\uff08\u6bcf\u6b65\u5404\u81ea\u6821\u9a8c\u3001\u6b65\u9aa4\u95f4\u4e3b\u4f53\u4e0d\u4e00\u81f4\uff09\u3011\u53c2\u6570\u66ff\u6362\uff1a\u5728\u67d0\u4e00\u6b65\u66ff\u6362\u4e3b\u4f53\u6807\u8bc6\uff08\u624b\u673a\u53f7\/\u90ae\u7bb1\/uid\uff09\uff0c\u89c2\u5bdf\u6700\u7ec8\u5199\u5165\u843d\u5728\u8c01\u8eab\u4e0a<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u591a\u6b65\u9aa4\u6d41\u7a0b\u7684\u4fe1\u4efb\u6a21\u578b\u9519\u4f4d\uff08\u6bcf\u6b65\u5404\u81ea\u6821\u9a8c\u3001\u6b65\u9aa4\u95f4\u4e3b\u4f53\u4e0d\u4e00\u81f4\uff09\u3011\u54cd\u5e94\u7be1\u6539\uff1a\u6539 success\/code\/step\/returnkey\uff0c\u770b\u670d\u52a1\u7aef\u662f\u5426\u91c7\u4fe1\u5ba2\u6237\u7aef\u7ed3\u8bba<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u591a\u6b65\u9aa4\u6d41\u7a0b\u7684\u4fe1\u4efb\u6a21\u578b\u9519\u4f4d\uff08\u6bcf\u6b65\u5404\u81ea\u6821\u9a8c\u3001\u6b65\u9aa4\u95f4\u4e3b\u4f53\u4e0d\u4e00\u81f4\uff09\u3011state token \u8de8\u4e3b\u4f53\uff1a\u628a returnkey\/flow_id \u6362\u5230\u53e6\u4e00\u4f1a\u8bdd\uff0c\u662f\u5426\u8de8\u4e3b\u4f53\u751f\u6548\uff08\u53ea\u8bfb\u5224\u5b9a\uff09<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u591a\u6b65\u9aa4\u6d41\u7a0b\u7684\u4fe1\u4efb\u6a21\u578b\u9519\u4f4d\uff08\u6bcf\u6b65\u5404\u81ea\u6821\u9a8c\u3001\u6b65\u9aa4\u95f4\u4e3b\u4f53\u4e0d\u4e00\u81f4\uff09\u3011\u7ec8\u6001\u6838\u5bf9\uff1a\u6539\u5bc6\/\u6539\u7ed1\u540e\u7528'\u539f\u8eab\u4efd'\u4e0e'\u76ee\u6807\u8eab\u4efd'\u5206\u522b\u767b\u5f55\uff0c\u786e\u8ba4\u5230\u5e95\u6539\u4e86\u8c01<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u7248\u672c diff \u5b9a\u4f4d 1-day\uff08\u8865\u4e01\u5dee\u5f02 \u2192 \u6839\u56e0 \u2192 \u53ef\u6d4b\u70b9\uff09\u3011\u62ff\u5230\u8865\u4e01\u524d\u540e\u7684\u4e24\u4e2a\u7248\u672c\uff08\u5b98\u65b9\u53d1\u5e03\u3001\u5bb9\u5668\u955c\u50cf\u3001JAR\/DLL\u3001\u56fa\u4ef6\uff09\uff0c\u5148\u6bd4\u6587\u4ef6\u6e05\u5355\u518d\u6bd4\u5185\u5bb9<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u7248\u672c diff \u5b9a\u4f4d 1-day\uff08\u8865\u4e01\u5dee\u5f02 \u2192 \u6839\u56e0 \u2192 \u53ef\u6d4b\u70b9\uff09\u3011diff \u51fa\u6539\u52a8\u51fd\u6570\/\u5b57\u7b26\u4e32\/\u5e38\u91cf\uff0c\u53cd\u63a8\u8f93\u5165\u5982\u4f55\u5230\u8fbe\u8be5\u70b9\uff08source\u2192sink\uff09<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u7248\u672c diff \u5b9a\u4f4d 1-day\uff08\u8865\u4e01\u5dee\u5f02 \u2192 \u6839\u56e0 \u2192 \u53ef\u6d4b\u70b9\uff09\u3011\u628a\u6539\u52a8\u70b9\u7ffb\u8bd1\u6210\u4e00\u4e2a\u53ef\u53d1\u7684\u8bf7\u6c42\uff1a\u53c2\u6570\u540d\u3001\u7f16\u7801\u3001\u8def\u5f84\u3001header<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u7248\u672c diff \u5b9a\u4f4d 1-day\uff08\u8865\u4e01\u5dee\u5f02 \u2192 \u6839\u56e0 \u2192 \u53ef\u6d4b\u70b9\uff09\u3011\u5728\u53d7\u5f71\u54cd\u7248\u672c\u4e0a\u9a8c\u8bc1\uff1a\u6539\u52a8\u524d\u901a\u8fc7\u3001\u6539\u52a8\u540e\u88ab\u62d2\uff08\u8fd9\u5c31\u662f\u53ef\u590d\u73b0\u7684\u5224\u636e\uff09<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010JS \u7aef\u70b9\u6252\u53d6 \u2192 \u672a\u6388\u6743\u53ef\u8fbe\u77e9\u9635\uff08\u628a\"\u731c\"\u53d8\u6210\"\u679a\u4e3e\"\uff09\u3011\u4ece JS\uff08\u542b sourcemap\u3001\u61d2\u52a0\u8f7d chunk\uff09\u63d0\u53d6\u5168\u90e8 API \u8def\u5f84\u4e0e\u53c2\u6570\uff0c\u843d\u76d8\u63a5\u53e3\u8d26\u672c<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010JS \u7aef\u70b9\u6252\u53d6 \u2192 \u672a\u6388\u6743\u53ef\u8fbe\u77e9\u9635\uff08\u628a\"\u731c\"\u53d8\u6210\"\u679a\u4e3e\"\uff09\u3011\u5bf9\u6bcf\u4e2a\u7aef\u70b9\u505a\u672a\u6388\u6743\u63a2\u6d4b\uff1a\u65e0 Cookie\u3001\u65e0 Token\uff0c\u53ea\u53d1\u4e00\u6b21<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010JS \u7aef\u70b9\u6252\u53d6 \u2192 \u672a\u6388\u6743\u53ef\u8fbe\u77e9\u9635\uff08\u628a\"\u731c\"\u53d8\u6210\"\u679a\u4e3e\"\uff09\u3011\u6309\u54cd\u5e94\u5dee\u5f02\u5206\u6876\uff1a403\/401\uff08\u6709\u9274\u6743\uff09vs 200\/302\/405\uff08\u53ef\u7591\uff09vs \u4e1a\u52a1\u7801\u5dee\u5f02<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010JS \u7aef\u70b9\u6252\u53d6 \u2192 \u672a\u6388\u6743\u53ef\u8fbe\u77e9\u9635\uff08\u628a\"\u731c\"\u53d8\u6210\"\u679a\u4e3e\"\uff09\u3011\u5bf9\u53ef\u7591\u7aef\u70b9\u8865\u53c2\u6570\uff0c\u518d\u5224\u65ad\u662f\u5426\u771f\u80fd\u53d6\u5230\u6570\u636e\uff08\u4e0d\u662f\u53ea\u770b\u72b6\u6001\u7801\uff09<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u7f16\u7801\/\u89c4\u8303\u5316\u903b\u8f91\u7a7f\u900f\uff08\u6761\u4ef6\u5206\u652f\u91cc\u7684\u7ed5\u8fc7\uff09\u3011\u5b9a\u4f4d\u7f16\u7801\/\u8f6c\u4e49\/\u6821\u9a8c\u51fd\u6570\uff0c\u770b\u5b83\u7684\u524d\u7f6e\u6761\u4ef6\uff08\u4ec0\u4e48\u60c5\u51b5\u4e0b\u8df3\u8fc7\uff09<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u7f16\u7801\/\u89c4\u8303\u5316\u903b\u8f91\u7a7f\u900f\uff08\u6761\u4ef6\u5206\u652f\u91cc\u7684\u7ed5\u8fc7\uff09\u3011\u6784\u9020\u8ba9\u8be5\u6761\u4ef6\u4e3a\u5047\u7684\u8f93\u5165\uff08\u7a7a\u503c\u3001\u7c7b\u578b\u4e0d\u7b26\u3001\u8d85\u957f\u3001\u6570\u7ec4\u3001\u7f16\u7801\u6b67\u4e49\uff09<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u7f16\u7801\/\u89c4\u8303\u5316\u903b\u8f91\u7a7f\u900f\uff08\u6761\u4ef6\u5206\u652f\u91cc\u7684\u7ed5\u8fc7\uff09\u3011\u89c2\u5bdf\u670d\u52a1\u7aef\u662f\u5426\u6309'\u672a\u7f16\u7801'\u7684\u8bed\u4e49\u7ee7\u7eed\u5904\u7406<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u591a\u6b65\u9aa4\u6d41\u7a0b\u8eab\u4efd\u9519\u4f4d\uff08step \u95f4\u4e3b\u4f53\u4e0d\u4e00\u81f4 \/ \u54cd\u5e94\u7be1\u6539 \/ \u7ec8\u6001\u6838\u5bf9\uff09\u3011\u753b\u72b6\u6001\u673a\uff1a\u6bcf\u6b65\u8f93\u5165 \/ \u670d\u52a1\u7aef\u4ea7\u51fa \/ token \/ \u4e0b\u4e00\u6b65\u4f9d\u8d56<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u591a\u6b65\u9aa4\u6d41\u7a0b\u8eab\u4efd\u9519\u4f4d\uff08step \u95f4\u4e3b\u4f53\u4e0d\u4e00\u81f4 \/ \u54cd\u5e94\u7be1\u6539 \/ \u7ec8\u6001\u6838\u5bf9\uff09\u3011\u6807\u6ce8\u6bcf\u6b65'\u670d\u52a1\u7aef\u8ba4\u5b9a\u7684\u8eab\u4efd'\u6765\u81ea\u53c2\u6570\u3001cookie\u3001\u6570\u636e\u5e93\u8fd8\u662f\u4e0a\u4e00\u6b65\u54cd\u5e94<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u591a\u6b65\u9aa4\u6d41\u7a0b\u8eab\u4efd\u9519\u4f4d\uff08step \u95f4\u4e3b\u4f53\u4e0d\u4e00\u81f4 \/ \u54cd\u5e94\u7be1\u6539 \/ \u7ec8\u6001\u6838\u5bf9\uff09\u3011\u6b65\u9aa4\u8df3\u8dc3\/\u4e71\u5e8f\/\u91cd\u653e\uff1b\u67d0\u6b65\u66ff\u6362\u4e3b\u4f53\u6807\u8bc6\uff1b\u7be1\u6539 success\/step\/returnkey<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u591a\u6b65\u9aa4\u6d41\u7a0b\u8eab\u4efd\u9519\u4f4d\uff08step \u95f4\u4e3b\u4f53\u4e0d\u4e00\u81f4 \/ \u54cd\u5e94\u7be1\u6539 \/ \u7ec8\u6001\u6838\u5bf9\uff09\u3011\u7ec8\u6001\u6838\u5bf9\uff1a\u6539\u5b8c\u7528'\u539f\u8eab\u4efd'\u4e0e'\u76ee\u6807\u8eab\u4efd'\u5206\u522b\u767b\u5f55\uff0c\u786e\u8ba4\u5230\u5e95\u6539\u4e86\u8c01<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u8fb9\u754c\u8bbe\u5907 pre-auth \u9762\uff08\u6307\u7eb9 \u2192 \u672a\u6388\u6743 \u2192 \u4f1a\u8bdd\u6cc4\u9732\uff09\u3011\u5148\u5b9a\u6307\u7eb9\u4e0e\u7248\u672c\uff08\u6d4b\u7ed8\u7ed3\u679c + \u9875\u9762\u7279\u5f81\uff09\uff0c\u786e\u8ba4\u662f\u5426\u843d\u5728\u5df2\u77e5\u5f71\u54cd\u8303\u56f4<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u8fb9\u754c\u8bbe\u5907 pre-auth \u9762\uff08\u6307\u7eb9 \u2192 \u672a\u6388\u6743 \u2192 \u4f1a\u8bdd\u6cc4\u9732\uff09\u3011\u4f18\u5148\u6253 pre-auth \u8def\u5f84\uff1a\u8ba4\u8bc1\u524d\u53ef\u8bbf\u95ee\u7684 servlet\u3001\/api\/v1\/*\u3001\u7ba1\u7406\u7aef\u767b\u5f55\u524d\u7f6e\u63a5\u53e3<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u8fb9\u754c\u8bbe\u5907 pre-auth \u9762\uff08\u6307\u7eb9 \u2192 \u672a\u6388\u6743 \u2192 \u4f1a\u8bdd\u6cc4\u9732\uff09\u3011\u5185\u5b58\u7834\u574f\u7c7b\u4f18\u5148\u627e'\u4f1a\u8bdd\/token \u6cc4\u9732'\u8bc1\u636e\uff08\u8bfb\u5230\u81ea\u5df1\u4e0d\u8be5\u6709\u7684 cookie\/token\uff09<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u8fb9\u754c\u8bbe\u5907 pre-auth \u9762\uff08\u6307\u7eb9 \u2192 \u672a\u6388\u6743 \u2192 \u4f1a\u8bdd\u6cc4\u9732\uff09\u3011\u53ea\u8bfb\u5230\u81ea\u8eab\u4f1a\u8bdd\u4e0d\u7b97\uff1b\u5fc5\u987b\u62ff\u5230\u4ed6\u4eba\u4f1a\u8bdd\u6216\u660e\u786e\u7684\u5185\u5b58\u5185\u5bb9<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010HTTP \u65b9\u6cd5\u8986\u76d6\/OPTIONS \u7ed5\u8fc7\u9274\u6743\u3011\u5bf9\u53d7\u4fdd\u62a4\u7aef\u70b9\u505a\u65b9\u6cd5\u77e9\u9635\uff1aGET\/POST\/PUT\/DELETE\/OPTIONS\/HEAD\/PATCH \u5404\u4e00\u6b21\uff0c\u8bb0\u5f55\u72b6\u6001\u4e0e\u54cd\u5e94\u4f53\u5dee\u5f02<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010HTTP \u65b9\u6cd5\u8986\u76d6\/OPTIONS \u7ed5\u8fc7\u9274\u6743\u3011\u8bd5\u65b9\u6cd5\u8986\u76d6\u5934\uff1aX-HTTP-Method-Override \/ X-Method-Override \/ _method \u53c2\u6570<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010HTTP \u65b9\u6cd5\u8986\u76d6\/OPTIONS \u7ed5\u8fc7\u9274\u6743\u3011\u5bf9\u6bd4\u54cd\u5e94\u4f53\u800c\u4e0d\u53ea\u662f\u72b6\u6001\u7801\uff08\u90e8\u5206\u7f51\u5173 OPTIONS \u8fd4\u56de 200 + \u771f\u5b9e\u6570\u636e\uff09<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010HTTP \u65b9\u6cd5\u8986\u76d6\/OPTIONS \u7ed5\u8fc7\u9274\u6743\u3011\u540c\u65cf\u6a2a\u5411\uff1a\u540c\u7f51\u5173\u4e0b\u5176\u4ed6\u8def\u5f84\u662f\u5426\u540c\u6837\u7ed5\u8fc7<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u5f31\u53e3\u4ee4\/\u9ed8\u8ba4\u53e3\u4ee4\uff08\u6709\u9650\u5ea6\uff0c\u547d\u4e2d\u5373\u505c\uff09\u3011\u5148\u786e\u8ba4\u8d26\u53f7\u5b58\u5728\u6027\u5dee\u5f02\uff08\u54cd\u5e94\/\u8017\u65f6\uff09\uff0c\u518d\u51b3\u5b9a\u662f\u5426\u8bd5\u53e3\u4ee4<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u5f31\u53e3\u4ee4\/\u9ed8\u8ba4\u53e3\u4ee4\uff08\u6709\u9650\u5ea6\uff0c\u547d\u4e2d\u5373\u505c\uff09\u3011\u6309\u4ea7\u54c1\u9ed8\u8ba4\u53e3\u4ee4\u5b57\u5178\u8bd5\uff1a\u4ea7\u54c1\u540d+\u5e74\u4efd\uff08@2024\/@2025\uff09+ \u5e38\u89c1 admin\/111111<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010\u5f31\u53e3\u4ee4\/\u9ed8\u8ba4\u53e3\u4ee4\uff08\u6709\u9650\u5ea6\uff0c\u547d\u4e2d\u5373\u505c\uff09\u3011<strong>\u4e0a\u9650 3 \u6b21\/\u8d26\u53f7\u3001\u4e32\u884c\u3001\u95f4\u9694 2-5s\u30015 \u5206\u949f\u5185\u505c<\/strong>\uff1b\u547d\u4e2d\u5373\u505c\u5e76\u7559\u8bc1<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010SSRF \/ \u53ef\u63a7 issuer \u62c9\u53d6\uff08\u8ba4\u8bc1\u94fe\u4e0a\u7684\u8bf7\u6c42\u4f2a\u9020\uff09\u3011\u627e\u53ef\u63a7 URL \u53c2\u6570\uff08iss\/jku\/callback\/webhook\/avatar\/import\uff09<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010SSRF \/ \u53ef\u63a7 issuer \u62c9\u53d6\uff08\u8ba4\u8bc1\u94fe\u4e0a\u7684\u8bf7\u6c42\u4f2a\u9020\uff09\u3011\u56de\u8fde\u81ea\u6709 canary\uff08DNS\/HTTP\uff09\uff0c\u786e\u8ba4\u8bf7\u6c42\u786e\u5b9e\u7531\u670d\u52a1\u7aef\u53d1\u51fa<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u3010SSRF \/ \u53ef\u63a7 issuer \u62c9\u53d6\uff08\u8ba4\u8bc1\u94fe\u4e0a\u7684\u8bf7\u6c42\u4f2a\u9020\uff09\u3011\u8bd5\u5185\u7f51\u5730\u5740\u4e0e\u5143\u6570\u636e\u5730\u5740\uff08\u4e91 metadata\uff09\uff0c\u53ea\u8bfb\u5224\u5b9a<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u5165\u53e3\u53d1\u73b0\uff1a\u767b\u5f55\/\u91cd\u7f6e\/SSO \u56de\u8c03\/\u9a8c\u8bc1\u7801\/\u8bb0\u4f4f\u6211\/\u591a\u56e0\u5b50\u5404\u5206\u652f<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u6d4b\u8bd5\u53d8\u91cf\uff1a\u5b57\u6bb5\u7701\u7565\uff08\u5982 captcha \u6574\u4f53\u4e0d\u4f20\uff09\u3001\u7c7b\u578b\u6c61\u67d3\u3001\u5927\u5c0f\u5199\u3001\u6ce8\u91ca\u622a\u65ad\u3001\u54cd\u5e94\u7be1\u6539<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u6210\u529f\u8bc1\u636e\uff1a\u65e0\u51ed\u636e\u62ff\u5230\u53d7\u4fdd\u62a4\u8d44\u6e90\uff08\u5e26\u54cd\u5e94\u4f53\uff09\u6216\u8fdb\u5165\u4ed6\u4eba\u8d26\u53f7<\/li>\n<li>\u3010\u65b9\u6cd5\u6a21\u677f\u00b7\u975e\u6765\u6e90\u539f\u6587\u3011\u8bef\u62a5\u8fc7\u6ee4\uff1a\u4ec5 302 \u5230\u9996\u9875\u4e0d\u7b97\uff1b\u5fc5\u987b\u9a8c\u8bc1\u4f1a\u8bdd\u771f\u7684\u53ef\u8bbf\u95ee\u53d7\u4fdd\u62a4\u9875\u9762<\/li>\n<\/ul>\n<p>\u3010\u7f3a\u5931\u3011\u6765\u6e90\u672a\u7ed9\u51fa\u53ef\u6267\u884c\u590d\u73b0\u6b65\u9aa4\uff1b\u9700\u6309 test_methodology \u5728\u6388\u6743\u9776\u573a\u81ea\u884c\u8bbe\u8ba1\u5e76\u8bb0\u5f55<\/p>\n<h2 id=\"sec4\"><span class=\"ez-toc-section\" id=\"%E5%9B%9B%E3%80%81%E8%AF%AF%E6%8A%A5%E6%8E%92%E9%99%A4\"><\/span>\u56db\u3001\u8bef\u62a5\u6392\u9664<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul class=\"qgg-list\">\n<li>\u3010\u6765\u6e90\u539f\u6587\u7247\u6bb5\u301100 \u4e14\u8fd4\u56de\u7528\u6237\u6570\u636e JSON<strong>\uff08\u771f\u5b9e\u4e3b\u4f53\u5b57\u6bb5\uff0c\u975e\u9519\u8bef\u9875\uff09\u3002 - \u8d1f\u5411\uff1a<code class=\"qgg-inline-code\">?.map<\/code> \u4e0e \u88f8 <code class=\"qgg-inline-code\">#<\/code> \u5747 401\uff08\u8bc1\u660e\u4e0d\u662f\"\u968f\u4fbf\u52a0\u540e\u7f00\"\u90fd\u80fd\u7ed5\uff09\u3002 \u8bef\u62a5\u6392\u9664 - \u54cd\u5e94\u5fc5\u987b\u662f<\/strong>\u63a5\u53e3\u6570\u636e\uff08\u7528\u6237\u5b57\u6bb5\/\u5217\u8868\uff09\uff0c\u4e0d\u662f index.html \u6216\u901a\u7528 200 \u58f3\u3002 - \u5bf9\u7167\u8def\u5f84 <code class=\"qgg-inline-code\">\/nonexist%23.map<\/code> \u5e94<\/li>\n<\/ul>\n<div class=\"qgg-callout qgg-callout-warn\"><span class=\"qgg-callout-t\">\u53cd\u5411\u8bc1\u636e<\/span><\/p>\n<ul class=\"qgg-list\">\n<li>00 \u4e14\u8fd4\u56de\u7528\u6237\u6570\u636e JSON<strong>\uff08\u771f\u5b9e\u4e3b\u4f53\u5b57\u6bb5\uff0c\u975e\u9519\u8bef\u9875\uff09\u3002 - \u8d1f\u5411\uff1a<code class=\"qgg-inline-code\">?.map<\/code> \u4e0e \u88f8 <code class=\"qgg-inline-code\">#<\/code> \u5747 401\uff08\u8bc1\u660e\u4e0d\u662f\"\u968f\u4fbf\u52a0\u540e\u7f00\"\u90fd\u80fd\u7ed5\uff09\u3002 \u8bef\u62a5\u6392\u9664 - \u54cd\u5e94\u5fc5\u987b\u662f<\/strong>\u63a5\u53e3\u6570\u636e\uff08\u7528\u6237\u5b57\u6bb5\/\u5217\u8868\uff09\uff0c\u4e0d\u662f index.html \u6216\u901a\u7528 200 \u58f3\u3002 - \u5bf9\u7167\u8def\u5f84 <code class=\"qgg-inline-code\">\/nonexist%23.map<\/code> \u5e94<\/li>\n<\/ul>\n<\/div>\n<h2 id=\"sec5\"><span class=\"ez-toc-section\" id=\"%E4%BA%94%E3%80%81%E5%BD%B1%E5%93%8D%E4%B8%8E%E4%BF%AE%E5%A4%8D\"><\/span>\u4e94\u3001\u5f71\u54cd\u4e0e\u4fee\u590d<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong>\u5f71\u54cd\uff1a<\/strong><\/p>\n<p>\u5206\u7c7b\uff1aAuthentication Bypass\uff1b\u6765\u6e90\u4e25\u91cd\u6027\uff1a\u672a\u63d0\u4f9b\u3002\u5b9e\u9645\u5f71\u54cd\u9700\u4ee5\u672c\u5730\/\u6388\u6743\u9776\u573a\u590d\u73b0\u7ed3\u679c\u4e3a\u51c6\uff0c\u8bc4\u5206\u4e0e\u6765\u6e90\u81ea\u8ff0\u4e0d\u6784\u6210\u5f71\u54cd\u7ed3\u8bba\u3002<\/p>\n<p><strong>\u4fee\u590d\uff1a<\/strong><\/p>\n<p>\u7edf\u4e00\u9274\u6743\u4e2d\u95f4\u4ef6\u8986\u76d6\u5168\u90e8\u8def\u7531\uff0c\u9a8c\u8bc1\u7801\u5b57\u6bb5\u7f3a\u5931\u5373\u62d2\u7edd\uff0c\u7981\u6b62\u5ba2\u6237\u7aef\u53ef\u63a7\u7684\u4fe1\u4efb\u6807\u8bb0\u3002<\/p>\n<p><strong>\u5173\u8054\uff1a<\/strong>CWE-288<\/p>\n<h2 id=\"sec6\"><span class=\"ez-toc-section\" id=\"%E5%85%AD%E3%80%81%E5%8E%9F%E5%A7%8B%E6%9D%A5%E6%BA%90\"><\/span>\u516d\u3001\u539f\u59cb\u6765\u6e90<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><a href=\"\/\/user-case\/2026-10-27-gateway-suffix-bypass\" target=\"_blank\" rel=\"noopener\" rel=\"nofollow\" >local:\/\/user-case\/2026-10-27-gateway-suffix-bypass<\/a><\/p>\n<hr \/>\n<p class=\"qgg-footer\">\u672c\u6587\u7531 QGG \u6e17\u900f\u5927\u5e08\u81ea\u52a8\u5b66\u4e60\u6574\u7406\uff1a\u5185\u5bb9\u53d6\u81ea\u516c\u5f00\u62a5\u544a\uff0c\u672a\u5728\u672a\u6388\u6743\u76ee\u6807\u4e0a\u505a\u4efb\u4f55\u9a8c\u8bc1\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p># \u9759\u6001\u8d44\u6e90\u540e\u7f00 + %23 \u7f16\u7801\u7ed5\u8fc7 401\uff08\/api\/users%23.map\uff09<\/p>\n<p>## \u6280\u5de7\u672c\u4f53<br \/>\n\u5bf9\u88ab 401 \u4fdd\u62a4\u7684\u8def\u7531 ","protected":false},"author":0,"featured_media":477,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[13,48,10,9],"class_list":["post-478","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-","tag-authentication-bypass","tag-cwe-288","tag-qgg","tag-9"],"featured_image_urls":{"full":["https:\/\/www.qgg4588.cn\/wp-content\/uploads\/2026\/10\/qgg-20261027-qgg-kb-20261027-002-cover.png",1200,630,false],"thumbnail":["https:\/\/www.qgg4588.cn\/wp-content\/uploads\/2026\/10\/qgg-20261027-qgg-kb-20261027-002-cover-150x150.png",150,150,true],"medium":["https:\/\/www.qgg4588.cn\/wp-content\/uploads\/2026\/10\/qgg-20261027-qgg-kb-20261027-002-cover-300x158.png",300,158,true],"medium_large":["https:\/\/www.qgg4588.cn\/wp-content\/uploads\/2026\/10\/qgg-20261027-qgg-kb-20261027-002-cover-768x403.png",640,336,true],"large":["https:\/\/www.qgg4588.cn\/wp-content\/uploads\/2026\/10\/qgg-20261027-qgg-kb-20261027-002-cover-1024x538.png",640,336,true],"1536x1536":["https:\/\/www.qgg4588.cn\/wp-content\/uploads\/2026\/10\/qgg-20261027-qgg-kb-20261027-002-cover.png",1200,630,false],"2048x2048":["https:\/\/www.qgg4588.cn\/wp-content\/uploads\/2026\/10\/qgg-20261027-qgg-kb-20261027-002-cover.png",1200,630,false],"post-thumbnail":["https:\/\/www.qgg4588.cn\/wp-content\/uploads\/2026\/10\/qgg-20261027-qgg-kb-20261027-002-cover-150x150.png",150,150,true]},"post_excerpt_stackable":"<p># \u9759\u6001\u8d44\u6e90\u540e\u7f00 + %23 \u7f16\u7801\u7ed5\u8fc7 401\uff08\/api\/users%23.map\uff09<\/p>\n<p>## \u6280\u5de7\u672c\u4f53<br \/>\n\u5bf9\u88ab 401 \u4fdd\u62a4\u7684\u8def\u7531 ","category_list":"<a href=\"https:\/\/www.qgg4588.cn\/ai-%e6%bc%8f%e6%b4%9e%e5%ad%a6%e4%b9%a0\/\" rel=\"category tag\">AI \u6f0f\u6d1e\u5b66\u4e60<\/a>","author_info":{"name":"","url":"https:\/\/www.qgg4588.cn\/index.php\/author\/"},"comments_num":"0 comments","_links":{"self":[{"href":"https:\/\/www.qgg4588.cn\/index.php\/wp-json\/wp\/v2\/posts\/478","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.qgg4588.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.qgg4588.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.qgg4588.cn\/index.php\/wp-json\/wp\/v2\/comments?post=478"}],"version-history":[{"count":0,"href":"https:\/\/www.qgg4588.cn\/index.php\/wp-json\/wp\/v2\/posts\/478\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.qgg4588.cn\/index.php\/wp-json\/wp\/v2\/media\/477"}],"wp:attachment":[{"href":"https:\/\/www.qgg4588.cn\/index.php\/wp-json\/wp\/v2\/media?parent=478"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.qgg4588.cn\/index.php\/wp-json\/wp\/v2\/categories?post=478"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.qgg4588.cn\/index.php\/wp-json\/wp\/v2\/tags?post=478"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}