VRChat 마이너 갤러리 저장소

제 목
유치원 데1스1건 만들었따 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
글쓴이
댕댕충
추천
14
댓글
9
원본 글 주소
https://gall.dcinside.com/vr/4311925
  • 2024-11-08 04:57:42
														

05b2de23fcd139ab2eed86e7429c756c6234547c8eb2c4a5497e108cbbce011b559ab6477b5cecf0d89421efac


어제 고아건이 안먹히는 월드가 있다고 누가 제보했는데

나는 그거 때문에 브챗이 아니라 월드에 취약점이 있다고 생각했음


아바타 고아건은 우리가 블락하면 안보이니까 상관없어지는데

월드는 숨길수도 없고 블락한 유저가 보낸 데이터도 동기화되니까 먹힌다는거임

즉 월드 고아건이라고도 할수잇을거같음


그래서 월드에 있는 어떤게 취약점이 있는가하고 생각해봤을 때

가장 많이 사용하는 펜 에셋인 QvPen을 먼저 떠올렸음 (사실 오래전에 친구가 넌지시 말한건데 누가 QvPen을 이용한거라고 이미 분석한걸로 착각했음)

그래서 QvPen을 테스트용 월드에 넣고 코드를 이리저리 살펴봤는데 실제로 고아건으로 작동할만한 부분이 있더라고


아래부터는 그냥 어떤 부분인지 설명하는거라 마지막 움짤이랑 결론만 읽어도 됨


viewimage.php?id=3baf&no=24b0d769e1d32ca73de98ffa1bd62531904e3409f6e528d418e9c4060d2f664aed2f5aa61b935ffb3bf503abfddfbeb50ddf37251b48ed0cc5


이 메서드인데 선의 점 데이터를 받아서 유니티 LineRenderer로 오브젝트화 하는 메서드임

여기서 눈여겨볼건 983번째 줄의 positionCount를 설정하는 부분인데

여기서 positionCount를 data.Length - GetFooterLength(data)로 결정하고 있음


나는 처음에는 엄청 큰 데이터를 보내서 렉을 유발하는걸로 생각했는데 그건 아니었음

브챗에도 대역폭 제한이 있어서 큰 데이터를 보낼수도 없고 빨리 보내려고 해도 엄청 느리게 보내짐

그래서 우동으로 동기화되는 data의 길이인 data.Length는 문제가 아님


viewimage.php?id=3baf&no=24b0d769e1d32ca73de98ffa1bd62531904e3409f6e528d418e9c4060d2f664aed2f5aa61b935ffb3bf505aaf8dcbcb7432f35eca508621865


위는 GetFooterLength 메서드의 코드야

QvPen은 동기화할때 추가 정보를 뭔가 다른 변수로 공유하는게 아니라 Vector3 배열 끝에 넣어서 공유하더라고

여기서 주목할 점은 GetData(data, FOOTER_ELEMENT_DATA_INFO).z 인데

그냥 Vector3 배열의 정해진 부분을 읽고 z 원소를 쓰는거임

저 부분의 z 원소에는 footer size라는게 들어가는데


viewimage.php?id=3baf&no=24b0d769e1d32ca73de98ffa1bd62531904e3409f6e528d418e9c4060d2f664aed2f5aa61b935ffb3bf506aaf3d2bab1acfd8924ac6615711b


위 메서드로 클라이언트 측에서 결정해서 넣어서 보내는거임

나도 정확히 뭘 위한건지 모르겠지만 아무튼 중요한건 저 footer size가 들어가는 부분을 클라이언트가 결정한다는 거임


viewimage.php?id=3baf&no=24b0d769e1d32ca73de98ffa1bd62531904e3409f6e528d418e9c4060d2f664aed2f5aa61b935ffb3bf508a7fad8bdb83ace3222e9b5293f7d


그러면 위에 CreateInkInstance 메서드의 983번 줄로 돌아가보면

결국 data의 footer length가 들어가는 부분에 큰 음수값을 넣으면

positionCount에 큰 양수가 들어가게 됨

정확힌 모르지만 line renderer에 positionCount에 큰 값을 넣으면 그 만큼 배열 할당하면서 CPU랑 메모리도 올라갈거임

footer size를 클라이언트가 패킷에 넣어서 보내는 방식이기 때문에 해커들이 뭔가 엄청난걸 할 필요도 없고 걍 보내는 데이터에 저 부분만 조작하면 됨


이걸 테스트하기 위해서 저 부분에 원하는 값을 넣어서 보낼 수 있는 버튼을 만들었음


viewimage.php?id=3baf&no=24b0d769e1d32ca73de98ffa1bd62531904e3409f6e528d418e9c4060d2f664aed2f5aa61b935ffb3bf509abfad9beb506657b92b2d53115fa


저렇게 원하는 footer size 값을 정해서 넣을 수 있음

대충 -10000000 넣어봤음

이러면 positionCount가 5 - 10000000 = 9999995가 됨


05b2de23fcd139ab2eed86e7429c756c6234587c8eb0c4a2487e1085bbce011b8eaac7130e7f6bf9f181ba29fb30


위는 버튼 눌렀을 때 다른 유저 메모리가 폭증하면서 튕기는걸 재현한 모습

버튼 누른 쪽은 안튕기는데 이건 버튼 누른 사람은 펜으로 안그려지게 QvPen 코드 약간 수정했음 (어차피 해커들은 걍 패킷 바로 쏘는거일테니 별 상관없음)

근데 문제는 펜을 끄면 동기화가 안일어나서 안튕긴다는 거임

그래서 꼭 이게 지금 유행하는 고아건이 사용하는 방식이라는 법은 없긴함


[세줄 요약]

1. 지금 유행하는 고아건은 월드의 특정 에셋의 취약점을 이용하는 "월드 고아건" 인거같다.

2. QvPen에도 쉽게 조작할 수 있는 취약점이 있다.

3. 지금 유행하는 고아건이 꼭 QvPen을 이용한거라는 법은 없다. 다른 에셋에도 혹은 VRChat 자체에도 비슷한 취약점이 있을 수 있음.

기름참치 QV 펜 이 역적놈 2024.11.08 04:58:38
메이윤 왤케똑똑함 2024.11.08 05:00:06
ㅇㅇ1 저런게 있노 125.137 2024.11.08 05:00:12
햄계란 와 이게 뭐야.. - dc App 2024.11.08 05:00:32
매장 2024.11.08 05:01:52
Retrika 2024.11.08 05:02:21
모생선 2024.11.08 05:04:04
ㅇㅇ2 이걸로 고아들 그룹 월드 터트려줭 210.101 2024.11.08 05:04:06
ㅇㅇ 2024.11.08 05:16:24
번호 분류 제목 글쓴이 날짜 추천
4405543 유치 화본역 제작자한테 블락먹은거 풀림.. 12 보라지도댕이 2024-12-18 11
4405234 유치 저 이제 못 돌아갈거같아요 17 Witch 2024-12-18 11
4405193 유치 방금 여친 구했다 후욱후욱♡ 11 아이디뭐였더라 2024-12-18 12
4405102 유치 뭣도 아닌놈이 념글 무료옷 피드백 살짝만 할게 22 ILE 2024-12-18 14
4404780 부스 아이리 무료 의상 올렸어 보고가 29 새이렌 2024-12-18 17
4403972 유치 for two든 머든 어차피 항상 혼자면 개추 ㅋㅋ 11 풀잎숲 2024-12-18 11
4403877 유치 저 진짜 암살 당했음... 갤럭시가 사회적 자살을 종용함 37 lia 2024-12-18 10
4403871 유치 야 눈싸람!!!!!!! 내가 복수해쭗께!!!!! 22 초코맛새우튀김 2024-12-18 12
4403750 유치 나 요번년도 브갤 열심히했는데 24 새하양 2024-12-18 13
4403462 유치 님들아 제가요 오늘 생일인데요 14 샤니_ 2024-12-17 14
4403075 유치 (혐/공포주의) 아이리 어때 29 새이렌 2024-12-17 12
4402932 유치 저 사실 공대장 잡으러왔어요 22 Witch 2024-12-17 14
4402804 유치 처음엔 분명 이뻐서 호감이였거든? 23 ㅇㅇ 221.151 2024-12-17 13
4401062 창작 뉴비 브챗 시작하는 만화 그렸어 21 B.C. 2024-12-16 17
4400661 유치 개추워어어어어어어어어 9 라임소다 2024-12-16 14
4399747 유치 마누카 꾸며봤는데 평가좀 25 매장 2024-12-16 11
4399498 ♿️ 대표한테 사진 잘못 보낸 후기 44 따뚜샤 2024-12-16 11
4399315 유치 ㅅㅂ 유동햄ㅋㅋㅋ 6 Revy 2024-12-16 17
4398270 유치 . 13 새이렌 2024-12-15 11
4398214 유치 @반고닉 마테리얼 산거 적용하는법 24 으애애 2024-12-15 18
4398182 유치 내가 한마디 소신발언 하자면. 2 ㅇㅇ 211.235 2024-12-15 11
4398106 유치 애미뒤진 반고닉새끼 영상 찍어달래서 찍는데 독촉에 저격에 온갖욕을다하노 25 으애애 2024-12-15 18
4396172 유치 마누카+시나노 1.16.1 무료 다운로드 16 ㅇㅇ 2024-12-14 12
4395638 유치 할게 없어서 게임메카를 지우냐ㅋㅋ 6 헤르만 2024-12-14 12
4395474 유치 " 좆병신 " 1 플랫화이트 2024-12-14 14
4395447 유치 회사 진짜 개추워요 18 꽃과봄 2024-12-14 11
4395176 유치 여의도 지나가는데 이거 뭐냐? 16 ㅇㅇ 183.109 2024-12-14 13
4394230 유치 좆소 브붕이 인생 망했다 시발 25 따뚜샤 2024-12-13 25
4394055 유치 저번에 누가 기부하길래 나도함 16 OculusQuest 2024-12-13 11
4393978 창작 눈 텍스쳐 무료로 올렸습니다! 19 ㅇㅇ 2024-12-13 17
4393920 부스 프리웨어) 마누카전용 X-MAS 코스튬 배포 9 큐동 2024-12-13 10
4392419 창작 뉴비 카린 낙서함 14 SoundCosmos 2024-12-12 15
4391990 유치 나 주딱 줘바 11 도라지 2024-12-12 13
4391386 유치 공포주의) 행복해진 버터캣 20 ㅇㅇ 2024-12-12 11
4391317 유치 닭이 된 버터캣 17 소라껍데기 2024-12-12 11
4391158 유치 아니 ai개웃기네ㅋㅋㅋㅋㅋ 20 koper 2024-12-12 12
4391133 유치 요1도보여용 모르는 사람을 위한 요약 3 ㅇㅇ 211.235 2024-12-12 14
4391084 유치 요도보여용 10 ㅇㅇ 106.102 2024-12-12 13
4389963 유치 에휴 저댄 누가 열어주냐 7 ㅇㅇ 223.38 2024-12-11 19
4388572 유치 인생 망한 거 같으면 개추 ㅋㅋㅋ 13 보마절대지켜 2024-12-11 12
념글 삭제글 갤러리 랭킹