예, 정확히 JavaScript입니다. 방금 그런 벌레를 만나서 해독하려고했습니다.
실제 문제는 무엇입니까?
최근 Facebook 웜은 사용자가 페이지를 방문하도록하여 주소 표시 줄에 JavaScript 문자열을 삽입하여 실행시킵니다.
따라서 주소 표시 줄에 JavaScript 코드를 복사 하지 마십시오 . 이것이 주요 문제입니다. 신뢰할 수없는 링크를 클릭하지 마십시오. 또는 개인 정보 보호 모드 (Firefox) 또는 시크릿 모드 (Chrome)를 사용하여 새 창에서 해당 링크를 열면 Facebook 세션에 액세스 할 수 없습니다.
해커들은 사람들이 무엇을하고 있는지 깨닫지 못하도록하기 위해 무엇을 했습니까?
스크립트 탈출
URL 표시 줄에 복사 한 문자열은 대부분 실행되는 다른 JavaScript에 연결됩니다. 이 스크립트는 실제로 엔티티로 디코딩됩니다. 따라서 문자열 문자를 사용하는 대신 전체 스크립트를 문자열에 넣고 이스케이프 처리하여 사람이 처음부터 읽을 수 없도록했습니다.
예를 들어, 매우 악의적 인 기능을 가지고 있다면 이스케이프 처리하고 사용자는 다음 만 볼 수 있습니다.
함수 % 20test % 28 % 29 % 20 % 7B % 20alert % 20 % 28 % 22LOL % 22 % 29 % 3B % 20 % 7D
이스케이프 처리되지 않은
함수 테스트 () {alert ( "LOL"); }
따라서 스크립트는 실행되기 전에 "자체"를 이스케이프 처리합니다.
난독 화
이제 추악 해지고 있습니다. 피하기 전에 함수 이름 _____x
과 변수가 같은 사악한 JavaScript 코드가 난독 화 aLDIWEJ
됩니다. 이것은 여전히 자바 스크립트에는 의미가 있지만, 인간에게는 전혀 읽을 수 없습니다. 이는 Facebook 해커의 의도를 숨기려고 다시 수행됩니다.
이 시점에서 코드는 다음과 같이 보일 수 있습니다.
스크립트가하는 일
이 스크립트가하는 일은 현재 Facebook 세션을 취하는 것입니다. 사이트에 로그인했기 때문에 귀하의 이름으로 무엇이든 할 수 있습니다. 예를 들어 Facebook API를 통해 수행 할 수있는 작업은 다음과 같습니다.
- 같은 이벤트 만들기 "OMG 나는 나를 스토킹 누가 볼 수 있습니다!"
- 사람들과 채팅
- 상태 업데이트 게시
- 기타
이 모든 것은 일부 Facebook API 페이지 (일부 PHP 페이지, 어떤 것을 잊었는지)를 호출하여 발생합니다.