安全研究
CVE-2023-46943 JWT Token 验证步骤绕过:从签名校验失效到身份冒充
Thinking
2024-05-01
3 分钟阅读
研究档案
#漏洞分析#代码审计#Web安全
JWT 库默认不强制签名校验,开发者必须显式开启,攻击者把 alg 改成 none 或替换密钥直接绕过身份验证。
Unlock to view this content.
ad8d9422966c73fee42096dad808c6448a272095349f41facc28f3d18d1ee66a0726fb5aaffd9271b6702e0ae53f6961031443030e63d37842b7356b4a67d1f44b648f709f84d99b1640e6f7a87a3d44129b61502fc0c5c728a88c67798e6cfb7bcb30fe880464fad1a2cf9635735fbd6e964b402ea4ed27e494f7c87c72f1c586b333a47062292625ea7240d146fb061f3975a6253d117e97272d7df5aa897fb9fe2c09034f658aae2645a68076992d7d9de07ae63e2fac88f85e475412988dfbc9247681c9832e6b0cc05eab1af69f3e5e47da280492c0b99a6a302e9662284a41a980f558fc6a7f70da5ed997beb19474e9370a86289d9b9c2745960aa1aa8a6d8f7903031080b64b025e6866aa3709a8ced49f8a460dd979ead4e51c8e7c206a6dec49d7f42afa69d9abd0e6c7bbfc5dc4fefa3bef91c6f55cd7db2f164ec3ce6c6d068eef6da1684747ac1aed5435480324e86e27482c900cd9af76e3447e109f3534bece0b508eef7b91c9ff8c8bf5e9eb32710843368aba99801f671b4b4b95e29d1aba48099d0ef4a9555cb2462954db24b506ee91b316189817d49b6d5d6da0ce428201cea60a8d6be630c670bc61b8ce9872ab2fa2326f3e70372967402ed9e949415d1350250084b370692cc64e29fce4d65d51e41efe080663b2a1f1a51065f5f5451a3bd711c888491913eaa4c5aa1a1ecf2f331bfbe15722ca35c51616a8d1c5613441adb2ffd232572537683a82d1a20b08ba7bd6aeec4f2810653822bbcce7e15fd866e4087f86de5449872e248b2f3c6492fb061ebd89a12e01444eea8ad5cbf3dab7089c379a582751901eeab623653bbeea81adf397ccba904788fc13575aa30ec996e912d952f2f89610d9cd5627375cc09cee9f9a4959799402b826c1a043de8e149010a603dfdeb54689343074a7e1e0b0129e95d12f7074e3397c8b520c32b94c383a53d0ce15e73577abb2ff1d7b29289e72241cb8196e9ad4965f6bba2bd3c18cf554c9c5788b35f19069322726b328127b5cbc023a96d6928c6cfb99dc931d88b8d76337bb555ddc2c6f907c9a6d1f45fda0d3c9ed41e2e6fd133af397eea11825eaf684a765352e184091ab61185bb807179bf35d525c65e106293b6198009cb7edcaeab849ab3bb55873ce0e6a4098654887c0d0c54d68395a2ce40ef7c288668d9bc559ec981f391f72d942527c75f981c54948645d07c41f063b5754251de693fdde161f42599e247ad092d609cec7317688da8a1390f9fe6a5dea024fa26e217cf02015827aaec7b6ebfebed6e20f7a21b76fd5d7742a8299d844426480135d2edcb0e7ab6d7226a66fc967c2a2baf671c2be336a4b83224802d2e95f42fe91d44b6d32bcd2791b0e40e7cd10c4c264a31b5973205fd850c3f102c4343c4767d1860f118ad0c6bd8e42cc8d6e3cdfead086c982cb7f3ed1bcd7c9f4d1a282cb8a81d088f55bb37343f8e177364aed6dbf1691a734dff467cb203e0802388f88b8432b6b827b48fda5df1bdacee637ad0dcdc7b1bb9ba9e53d70f8a4488830eaefdf3f3ab3b06bf6859e3e9707a9ee4ba119f43223193204fabf9f0de60520799cafb7ba711a3b413014f13561cc449202d76101fe4a2a0c32ebd95c2ee3d823e880d2a4d3b2c34cb66810e91e92c6e3204beff61729463d7b65c0a3da2531c55651bfe23743f6bcec1ea96fec706df4f01a2094343a34cd28162bb009319c942e70df7dfcd4a69d177cf8f3107095457aa7ea3d52befc59aa60a6ccb3a62c93d5a038071b6e79d5d868b6b7d0714e257a0a52d81d8e814b60d1637314fd3047dd4b6146ab6373b67b25c250ae68258209926d0200f0fff5de177b21adf15e3590302c5d37738937828b1830e526c8185c2a5093a67d8186672ca7cb53f150bd7f28db6ca6b618bb6f1142015f94fcb9b884c8be24ebec21d91fe632a64f09fefdc92b18271cda9ae3bbf96fdfb0af2c17845e6bafc90112687046515a77460ae3560816a3fb0da46495f62640588b7cc1985446b1548d496ca454fea4799b241a5259c4a99e40a4755c56086c5e2dccae172326bc432a1b7323a590e704602c6469941ec57952f41dbdbe16021951ff6491d9c8418f8e786bc081d1da2d18ad6894d184192259c9d11aa8441fe98f62d1dc64e6437d34a5523c0b9f03ab629b096526dd7c27b19e8eac43d3d2001109f4e39faea38073dd37942f4088901f38978aa670e56935179394c9a510dee0bbcae8c7492831577114291461062cbee84e172059185a31ac77f3f1add00ce2b13213b6a671d6e3feda1fa386055d85f6b9e5611d5fd2144785a53835100b0e10ea6e423dc20bdf1fa5b85dba3a4458becb20e8746ef78bb39fffc11268163bfb7df38168f3fca551eceded58d48e22551a1798a01de5b2efefad8c14e8fd7c32ccbadf669ca5293d3574c829ed84f113afa07445cd9498f49c648974ec9d4c22adb64a0f7956c0adeaca5da03f0cb522511c0be6665c3c63f4e92aaf9679c92b6d1b3800e040b2a33efa1b992ba0b6e76ff324dbb6715d616802d1966565c1a8ea698699ab1d7ab7f29a886b487de411a580d49c10aafeb1079167df94e6ae2d1b31bb8e0f1116260c83eb8de383619f8b2385b7566943a60d6deb7a5343f132acd9327102d3869f70f045146935748b62ef767c0199265f120dfe168b6c7503b6c0ff0ce90b0027ad1d143b1fa8e44e3dc9616acd3b4d368025384052fc9d17f002890ea80b776e3f8a6d9ba4c79b9468b93b412aec571589aa1f5871869f3f08b423045d29a4c9f314947dae28d37c4a06782c70f89fe2d37be8bc6a37c5e6299285181bfa8c7acb1113a3b9bf551aca5f440d783ed4d42231036a1772ebd52ce841009c64cf9c5bbf246aa3673145141781fc5c48f5a50311b8f6bdf814bdc4bfaa5676d4d0a63a40135f32a2ef0b459d8904ac5bfa14f5c589d998f746cde16d39857570e29c62746c01e4b9c450f0e14d8fafa63b9bbe61ab0885772f9dcaf9566a42f5b585001b8b7c7f568b33616cf097ddc371bc296001801f4df2363062e8acd238c3cb0cc08d1cc5656159b6ace658d4353f0fd51c3199dc6f6108a1482f9a4eab3d9d1fb521bbb6860e5ac1e458adfeb894c8990fcf9dbd5a33cf53d16e2e8d77278fcfb66b414bb48d9b3ef9715deddb3a3e89f2f386b6f22d5741fd420149168ec8aa7fb5789710b98d2531061dc5857c78895bcfcfc492bdcaab9f98f1007963943f37ec4544b603d218d555efea997af6a3cfbf2222745c1ba5142618debb935375c89c3b9614e085d445df15f421d7756fe0d06eada70447a193508b087bec0512497021a6edd832289f4533dcd87ac839f3a9aee5249a0c890fee1d2721d5e65010ff89e9a49b14460d8cc36e3cf4895f96f980d45646225293ecec9f71a5fef2649eaf693e25fd46eace71bd9642ac8eecf978ef7ef89dc6cf6f47adfe6d41096621965350c8d2e820823ffe74b1a3f0747b4cc8c29913089d9213ce8180b0c8e001da0b6464c35ce8873fd5192057a94b79a19f8dfae0e9a1d908420e9c32e9e7b0a9f8494f36aaac0557f2b09727acfeea572f1332b4119b8334da616f6edf7b405478e135083c7226d656f1c2a7e84debd49242c6650ee08d51494336293f59d02185806a299bb4216ad41341a62ff35fcda90cd819c3d9f09943e6e918b7302358c16995436202adfbd6b476d68c0038d74778999636926f02772bfc68fd93812a0a3540c0e7ab8f343a1443c3c1bc84e3c56365ad7744179fa76adc374b8eaebb87cfe343a3bf20c9bc2455d6a895624b5618e0ad04fcbf39985898bf5762873e56ae8f2b31165ee0bad718083d30dbb6b9af190e6b3745337fb15ea222105f15cfea9c946228a7bfc8dfe05c1020b08045b60723f7495e6fb1a74ba97a7a7695d6e4127e63f5822fad256e5467b03ebf3a20cda7700f3c9e00df4bb0ba85f53bdd01f89da6c3caaded3e7162e4f97682e4dbca3c28bd83608c7bec73200c944b6bcd563a0ea77f8b895a54518e0e129bd1d8d4f3b1e16dd1245ae6edfce373d8150a584113699ee969c54bd6d71f3824d10ca488782629f6915f2bdee2b55291d4fc65cab3fca9bf08941f5807fc081656d223a34464cbcf6d917888046f659f7d91c3efc53f4af4ca02e5c4c522bfea8d265e4a3cd1af6ce9a1fb5ccb588bffd7cd11ef400f529ec862fae33b8f55358af254535e368c72041382a50bb747073381b82ce32645ee5a7bd003c4528d572c64782b09cf888bf55f0f1f9c6e4aaeff218027a2001a08aa1101407917ebdbc1e5dbcc582e18ff1d1004b7901be4becb78d9c6abb269aaa6a8babca78eb4216af121db4a43328903ee184e9af9833a35640f530d81dfd5ac29d7845eae41983cb1bd0a376657a588db38e52f2807d55fa3a6198ced5a956a200a67642e55272d12becbbe5f9ad3e6d786b80881acb6798593ed1c4d0fcc92ae2b1ccadc36e13bb77883c70f55cd5488bd22abd3cfc5cee6f2408f4a3bcea50f9b4bbc8b89d153b25f70f5c5cef04866c3ff5cba22d6210c75b96cf532d2dbced01355b2c8c85f36948fbcb66921b9f7eb4aad8d7f3002a23e3aabaa14d7c278a0490f7bdc5f4522903294f7b7fdbdaef8590ac9015ef35bb09690d4100930030376f5700ad5dc2bee9233874a3ac552e2396821e8334b8896a58ae5880ca1b4f782987ca63a6fcfafbbb1ba898735a906da974eb9af332a6560e1fae30245816333f18798ba8759ab00e1a882c87bad178e55fec51652a68a59120817c4230d80458ba8cf3239f296852cf862f4c937e3225209dd07c3c54de17904ca52415dea280d99c6df7e1ea8816fdb48534ba877fa9f2106865a65f4c7562134f543363cd66248ea690292d4b7cb24fca4d2c2acdd6eae90d75b0bcf393e49d7006372720b461516d3a6743acb2cbcb8d2266635e1977a82e69b45f402cf6d204169f5d3d5283b419ef6952360ea283faf90edd59ce3487b039203118dff397d2cdbbc98636cc05afa54bd97b4835d0c797d339fa4708e2dc90cf8ca8755192115bf875fd6d77aca8e6d1d697d2d508da1c8c07255530c128486240b17839c920108b640dddc43403ad5bcf43a24eecf6615b1e2d69e4a7aac1b5ff9171b9301cb8f2baf0f62273735e2d34e40c92b5723eefa4de99b80755f5bb833cafa8a3ff540430ac37b21b1da2084a750fb0fd42832aea9302a1461d301c53a285a66b99b746bcae4b3ef1e158a08c5ef5bd43cd6a373a226a47cffbbc93807fa1c40db9b698e5fbbac90e89c1050b4a022afa34003ff3b97ffce3e57bd9c77623ed2db40ebe01087ada521c3b8c4f98ac92f395d1a00e57f1df94a886976442142112495151d2a3b238d216c73db240558c2bf2a4296a2203b7c76f1744d4e35f2466d30d785ff5016f2c5bb866530b85394803bc61215d44caa6ab51474178c2be97ae2c1f4d9b97682cda4c6bd7c64e9e263c9ea85da83b3c1ec533731d32538de659808e5f6150c6a0c58c910fbc0091a9b86b49acdead68509f9c06e2f8694ecc5a57e3e81fd24ac2891ac0518f7ad498e2a336da66dbdee821642c7c83d6219bfedbb5f2c9bd12821bd7518b5b5002ac8267fba26213dd1a0980a496d14caad86b89673e32cf7c6ff1e827e7d0a3679a8f29d3fe7daf7a67df3c5ff099d105dc823052131cefed3ef7a4c2d1cf29cbdbcd5d7ea6cf93a21b92d4cdd159c92c4289cbb1398503eef0f85abbd94f8731570f190eadb691d23ba5fa0b1c31471481beaab7bcc2275b58a2d92a020c88a66a081845057bcf813e45029a6bfb5cf4ef007cdd0c2e5e473c8ca745335a4f1965bc63cf699c38afd3447d4aed9402b344810b7cfe4a65332aa49c4d05c836bd42099f1c1f59beacee5c3a80efd2e919c993953ca45204145850c835ccda3feb6a26332b9028eb11137ee22262d2b87f10db15a5d62473a6c2a19b26e1de495a85fc1a0728edd31864c99b6403e66489386738473654fe1f641e1d194e620b07fd91d019023c5423c0b9813c0775bd70a0a6f127207bf0684c31cfad4f1bae58420660ebe2369e54ac776fc22daecc0199a105f59af9996a30b05d9a8f0250819fb086c95d4e26a49fd0f68452bde829c41b153ab7361b9b06a35515e847fb074740b683f53b519f052529598eeee4727b119550ec0ab99dc92584de448e9997d0ff67fc2cc881ee13ffbd6a5de2acd5341773008eca11f1eeef7e8a46504e8417df4136d65450b2b6d14e471b098fea7f7d859991913050552566f92d1c4825ee530c3e6413b4eabb0ae25392fa2c46fa61aeaaaceee97fb12d9855a977a1abcee093c2d0214cd7f959e13b715c3374865bdc32c2551bbbbaa028fc64f66fbf3a6d4236192dd1b21c70772ccbccba64828d83e0a7242fed7041323eec5f2efcc61261ac46f1e082f993b25080ef820b68bd5ec411e379bc5ca89fc21dc5ec89c5d1ac28a19aceae6d814ae5d3be9070fd18e2ac0e23e411380a57a7814ae8c587b4910924fa02d65e950a17979dc4b2d55ab08d124ed4265f9f868ea4ef7448f15fa90d290192b21199a53407cc7c820d27eea033337cc95ceab0fae6dc2aafa758dee3d5bddacd74fd052f362f186d8ee289ecfd315c29e4753eac519efb869688793e8fccdad503a74ceda0096f3a1e306371870549f4c1ba7307de1414e879bbc5e8d9005817e2e87e0c1f882e3301d729589e7d1231034e9f1aba3fde1b956367afe0294f7b39021b539421b319e443bd78f7e1b8af02ab72cd522abccc4583426011efa4606f13d2c6d6a9ba5508b9f2a1e975bea8be762cf9b190101f920320c3598df86d76c1ce6a129ba320f7c8858445c52b67860bcddfe0fb76de1ba118afd4e55f43cbe7b6b8a8a722206a0ed2894d8541116285808ecff22981c0c51c92523d5a1956c321da27ee698fc5695c39330c5a3e457cdc42ead465b8a789f4c91597b23fc58411edb7d2ce8b24cc2a43ecabac2532468febb8fe676ce649ed94155f043fd27ce9e3c6f5fdf16db07ff6c7e3b97211b66f49bb78c7761eca48e76104b4828d67106b3072fdab0db4112167f8d3afa670432d5b39252b784862949cf675ad059f7381956c2e508f8bfcfaf9429271378deb7cc112026f330843a8a053c78d20d773d2d6715932b0c4c7b2bf240ca7a17f97aec74d9cd97d6396f6c78e88c266548345e373a26236e617d7c585b22ba88348e28b1c742e8ce4a0c2482312c1e080a223fcbf39a29b5fc682877004bae38c36657658c5cff654ddde357829f108c26449fd8e8268fcf51010ee6dc131ef6729cecb771df94fb07953dba5dfdf5b85d56680918cc8494a7d3eed15bf7a8f6d580935b826044db0fda4e4733b72cb0df5499bc4f1d55d346b9739169ea1dacfaaf0eebc347581ada537dc282bc78aabba86dd5cc2a6645a6bd19dc2e9a223ebbfe58358309ea7a8e922ea57d87051ad265b6801a01783ff5d8deb610db0d50b90eb93a47d3cb3d9874c893f15a08a4e9b2a1d3ec224f6cfad1a61a6d05e5f26ea93eba7302a43f73a5185bfe896c89ca3963c2ff29d29863243917a9d6d71848deead4749e15859fb6a6cf3e7478a17e7dc2c03c2b4bd8a5d1c3d2a41c9709dd59322b20a0fecf966a704b8dfa2661978b16d0633384310cad5f77408d478268069f5e95dd3ded61e67d0747739f11753fed98449d76fed4c8a307701afab1b6376588c23da6e8bfcb36cf6d603fbc97ce654b5b1e983fd4d9a5494e25b4533b013ed3b311e9393eeb7ea5c797b7f3ad8c578b45ea9f95bf26e09c1e59f8f36523395a17043b9022c1ad5c8c58ae26320ef26f0cbd4e52a3c6dba3c2e75206633250050443b52c45a58f6d3b7fb6d66abce060ca3ec411faff33afa9bb8287032b25ba818c669e0057faa75410e363375587152dbb6ed1342d59f72714e1f21184e8eddfa9701c7db3a0ddd58986f289837f92906354c04f5f13f179e9f92ff1604cc6e2bb42fa216c53c0c9800a6f19ae5c9ddbc76617c3ac93cfef1e0505d02e9ca4cc6804aa564f16148596cc3dd298cc982242ecc4f5eb607be6894a24fc3b79b8117c34f13748388f89e09f5ac58a2c57a2d84b1366fc1bf1c4c4e718dc24e46865fc596b45fb1063fb46bba93e5bb1ad7267c19efc1bda65e3f366f4279d561a29703a2174fefa9651695ee9430b661c8bc5f5f6375000d11ad1deb97fdf9dc61a7a5f71303ea900e8b1895a477b1f8ebf968244827e6f7b777447a140a3f7c838d5af7d9c324fe39c119c9a62c0f811b3fd511c4b0f9d55ddb811701ea0cc26019f19d6be2e3b6cdb319d2548aa67d8de992598e7b0d1dfacb08c6e4a1881d88fe2ab579e2db57ddf5eff9d8fafc26cf069f422e5b39030d95feb69107728d0291f04b10e1e6990a22d1e374e1c8d4a61b7c88577c3ca086598c3b826ae3c90e47a8935567726e47473e75cb1a08ed4e679cd6530e9df76a0264f4e55e905562a107c0bce69999f2aa474eba16de5bc42a6b44836701b7edc2ef98c5294054697379ccd0f16109f24bb3b5f7bf6890e26f0e2a917ee611d65a2b6165a40ee7cbb0af50f779423e6d68fb353a4b3e007e00363a9050870a13839f662066c50b4d85e26533e05e366c3708f71162792e3d776abef03f44933bd2c0bfb6c3efe0f04a463e298aa21e7e7b9bb3a1ccbb750830570885c679e3d8d3615605c5bcdebd243d154475b6f4f2f06a986a2eebb3410d0a43c3279bead416fd66fac2a3f46b1f5a3256dc91dcf805b4038f2cb7abe6e5ae8e9b4946e1f19feffee7558e382bcf74968407757ff4c4ce42a025327dfb4287c4131cdfefe33be6d5951024cbda5c47e3266e262689727e95adf3b70f6c4919fbf3e9340731fb98360827cbfd2aa7e6cfdccb5b1197ef6bcd2f7a2213662764fc9eb946d243fa6adabc12b409856b2661f795e341cae32ac15d9f2a3b97947516c8f71a850771c13bb46e5bad0762fbb93e1788f2132cfe95d0d5864cbc8f983a5cf905cb1c61020309f63c6bd741462246f66543ffa820b01c930840e4ab5f8c3844cbe92eae00063fb8572f8459642414240d436cef68e12b1b541b500adf79d22cc5e048c0dcbc6666a354099b195d38fcd67b8b4f62cf6a00e3373a93f2a2539071752fee7746b0004061003fbd64c3a3a9db8f0ecb2c65d38bccf2b01794d81d7f290e2c6ca354752475dc653248b1cf33048ed539d94038affcfcefceeaed6714a200ca72d74c88be4afde244a09c23b3a9768d427e41f61fdae2c77a33ff6b58e9eda0c91ef81c11758a5f692a943da564d2a9d97cfab1ef2af4a348d5c97ec1747e080149b1632e87e7de1e82ee5849c5b08cedcae518e7d25714513a862a41219191afd9df937bda8355ec3760604f1e00e6df2c1777a4cf59747d0259c027743a7c4f34ed54bfb1b27051fc66d31b835dafe431efb241ee06371912488e675bc5068d5d78d76bd3b7fa682024056dc