필터 우회 및 일부 16진법으로 해킹된 신용 카드 번호는 여전히 Google에서 사용할 수 있습니다.
게시 됨: 2022-03-11신용 카드 해킹에 대한 한마디
저를 아시거나 제 이전 게시물을 읽으셨다면 제가 Toptal에 합류하기 전에 매우 흥미로운 회사에서 일했다는 것을 아실 것입니다. 이 회사에서 우리의 결제 제공업체는 하루에 $500,000 정도의 거래를 처리했습니다. 제 업무 중 일부는 우리 제공업체가 PCI-DSS를 준수하도록 하는 것이었습니다. 즉, 지불 카드 산업 - 데이터 보안 표준을 준수하는 것입니다.
이것은 마음이 약한 사람들을 위한 직업이 아니라고 말하는 것이 안전합니다. 이 시점에서 저는 신용 카드(CC), 신용 카드 해킹 및 웹 보안에 대해 전반적으로 매우 친숙합니다. 결국 우리의 임무는 사용자 데이터를 보호하고 해킹, 도난 또는 오용되는 것을 방지하는 것이었습니다.
Slashdot에 대한 Bennett Haselton의 2007년 기사: CC Numbers는 여전히 찾기 쉬운 이유는 무엇입니까? 간단히 말해서 Haselton은 Google을 통해 신용 카드 번호를 찾을 수 있었습니다. 먼저 "nnnn nnnn" 형식으로 카드의 처음 8자리를 검색한 다음 나중에 번호 범위를 기반으로 한 고급 쿼리를 사용했습니다. 예를 들어, 그는 "4060000000000000..4060999999999999"를 사용하여 CHASE(모든 카드가 4060으로 시작하는 카드)의 16자리 기본 계정 번호(PAN)를 모두 찾을 수 있습니다. 그건 그렇고: 다음은 발급자 ID 번호의 전체 목록입니다.
그 당시에는 Google에서 Bennett이 사용하는 쿼리 유형을 즉시 필터링하기 시작했기 때문에 크게 생각하지 않았습니다. 당신이 그런 범위를 구글에 시도했을 때, 구글은 "당신은 나쁜 사람입니다"라는 라인을 따라 무언가를 말하는 페이지를 제공할 것입니다.
약 6개월 전, 오랜 친구와 추억을 떠올리며 이 신용카드 번호 해킹이 다시 떠올랐다. 얼마 지나지 않아 놀라운 사실을 발견했습니다. 별로 놀랍지는 않지만 확실히 놀라운 일이므로 Google에 알리고 기다렸습니다. 한 달이 지나도 회신이 없자 다시 통보했지만 소용이 없었습니다.
Haselton의 오래된 트릭을 약간 수정하여 Google 신용 카드 번호, 사회 보장 번호 및 기타 민감한 관심 정보를 얻을 수 있었습니다.
베넷
어제 제 친구(buhera.blog.hu 및 _2501)가 최근 Slashdot 게시물을 제 관심을 불러일으켰습니다. 신용 카드 번호는 여전히 Google을 사용할 수 있습니다.
이 기사의 저자이자 2007년에 원본 기사를 작성한 Bennett Haselton은 신용 카드 번호는 여전히 Google에서 검색할 수 있다고 주장합니다. 숫자 범위 쿼리 해킹은 사용할 수 없지만 여전히 수행할 수 있습니다. 단순한 범위를 사용하는 대신 쿼리에 특정 형식을 적용해야 합니다. "1234 5678"과 같은 것입니다(가운데 공백에 주의). 이 쿼리에 대해 많은 조회수가 발생하지만 실제 관심이 있는 조회수는 거의 없습니다. 참가자 중에는 전화번호, 우편번호 등이 있습니다. 매우 놀라운 것은 아닙니다. 그러나 여기에 신용 카드 해킹 트위스트가 있습니다.
방법론
2007년에도 온라인으로 신용 카드 번호를 얻을 수 있는지 궁금했습니다. 훌륭한 엔지니어로서 저는 보통 최대한 정밀하게 완벽하게 실행해야 하는 적절하게 해석되고 지능적인 계획을 사용하여 일에 접근합니다. 당신이 그 방법을 시도했다면, 당신의 신중한 계획과 노력이 헛되이 실패할 수 있다는 것을 알게 될 것입니다.
IT에서 우리는 그것이 정당하지 않은 경우에도 지나치게 지능화하는 경향이 있습니다. 나는 내 친구와 동료들이 겉보기에 무작위 입력을 사용하여 응용 프로그램을 완전히 중단시키는 것을 보았습니다. 그들의 성공률은 놀랍고 그들이 들이는 노력은 0에 가까웠습니다. 그때 나는 문을 열려면 때로 노크만 하면 된다는 것을 배웠다.
신용 카드 해킹
이전 단락은 내가 "엘리트 해킹 기술"을 과시할 때 나를 바보처럼 보이게 하기 위해 교묘하게 위장한 시도였습니다. 죄송합니다.
먼저 여러 범위 쿼리 기반 접근 방식을 시도했습니다. 그런 다음 고급 쿼리와 한 시간 정도 안에 생각해낼 수 있는 거의 모든 것을 살펴보았습니다. 그들 중 누구도 의미 있는 결과를 얻지 못했습니다.
그러다가 엉뚱한 생각이 들었습니다.
필터링 엔진과 실제 백엔드 간에 불일치가 있는 경우 어떻게 됩니까? 내가 Google로부터 받은 메시지("당신은 나쁜 사람입니다")가 백엔드 자체가 아니라 Google이 나와 같은 쿼리를 검열하기 위해 구현한 지정된 필터링 엔진에서 온 것이라면?
건축학적 관점에서 많은 의미가 있을 것입니다. 그리고 그러한 버그는 매우 일반적입니다. 우리는 ITSEC, 특히 IDS/IPS 솔루션에서 항상 볼 수 있지만 일반 소프트웨어에서도 볼 수 있습니다. 데이터를 처리하고 데이터가 허용 가능/악의적이지 않다고 판단되는 경우에만 백엔드에 제공하는 필터링 절차가 있습니다. 그러나 백엔드와 필터링 서버는 입력을 정확히 동일한 방식으로 구문 분석하지 않습니다. 따라서 겉보기에 유효한 입력이 필터를 통과하여 백엔드에 큰 피해를 주어 필터를 효과적으로 우회할 수 있습니다.
일반적으로 다양한 인코딩으로 입력을 제공하여 이러한 유형의 동작을 트리거할 수 있습니다. 예: 십진수(0-9)를 사용하는 대신 16진수, 8진수 또는 2진수로 변환하는 것은 어떻습니까? 글쎄, 무엇을 추측…

이것을 검색하면 Google에서 당신이 나쁜 사람이라고 말할 것입니다: “4060000000000000..4060999999999999”
이것을 검색하면 Google이 기꺼이 "0xe6c8c69c9c000..0xe6d753e6ecfff"를 요구할 것입니다.
신용 카드 번호를 10진수에서 16진수로 변환하기만 하면 됩니다. 그게 다야
결과는 다음과 같습니다.
- 잠재적으로 민감한 정보로 가득 찬 방대한 CSV 파일.
- 전자상거래 로그 파일에 결함이 있습니다.
- 해커 사이트(심지어 Facebook)에서 공유되는 민감한 정보.
정말 무서운 내용입니다.
나는 이 버그가 보안 연구에 영감을 주지 않을 것이라는 것을 알고 있지만 당신은 그것을 가지고 있습니다. Google은이 boo-boo를 만들고 나에게 답장을 보내는 것을 소홀히했습니다. 글쎄, 그것은 일어난다. 그러나 나는 큰 G의 보안 직원을 부러워하지 않습니다. 그들은 조심해야 할 것들이 많이 있어야 합니다. 이 신용 카드 번호 해킹에 대해 게시하는 이유는 다음과 같습니다.
- 상대적으로 영향이 적습니다.
- 관심이 있고 동기가 부여된 사람은 지금쯤이면 이를 알아차렸을 것입니다.
- Haselton의 말을 인용하자면, 큰 플레이어가 이러한 공격에 대한 책임을 지고 행동하지 않는다면 "해야 할 올바른 일은 문제를 조명하고 가능한 한 빨리 수정하도록 주장하는 것입니다."
이 트릭을 사용하여 전화 번호, SSN, TFN 등을 조회할 수 있습니다. 그리고 Bennett이 쓴 것처럼 이 번호는 신용 카드보다 변경하기가 훨씬 더 어렵습니다. 신용 카드는 은행에 전화하여 카드를 취소하기만 하면 됩니다.
샘플 쿼리
경고: 자신의 신용 카드 번호 전체를 Google에 표시하지 마십시오!
4060으로 시작하는 CC PAN을 찾으십시오: 4060000000000000..406099999999999 ? 0xe6c8c69c9c000..0xe6d753e6ecfff
공급자 'Telenor'의 일부 헝가리 전화 번호? 문제 없습니다: 36200000000..362099999999 ? 0x86db02a00..0x86e48c07f
사회보장번호를 찾습니다. 고맙게도 많은 의미 있는 결과를 반환하지 않습니다. 100000000..999999999 ? 0x5f5e100..0x3b9ac9ff
훨씬 더 많습니다.
매우 놀라운 사실을 발견하거나 신용 카드 해킹에 대해 궁금한 점이 있으면 댓글에 남겨주시거나 이메일 [email protected] 또는 Twitter @synsecblog로 연락해 주십시오. 이러한 경우 경찰에 신고하는 것은 일반적으로 무의미하지만 시도해 볼 가치가 있습니다. 해당 판매자 또는 카드 제공업체는 일반적으로 문제를 해결하는 데 더 열성적입니다.
여기에서 갈 곳
글쎄요, 구글은 비자나 마스터카드와 같은 대기업의 도움으로 분명히 이 문제를 해결해야 합니다. 사실, Haselton은 위에 링크된 두 기사에서 흥미로운 제안을 많이 제공합니다.
그러나 당신이 해야 할 일은(그리고 내가 이 포스트를 쓴 이유) 소문을 퍼뜨리는 것입니다. 신용 카드 사기는 큰 산업이며 단순한 인식만으로도 피해자가 되는 것을 막을 수 있습니다. 또한 전자 상거래 사이트가 있거나 신용 카드 처리를 처리하는 경우 보안을 확인하십시오. PCI-DSS는 좋은 지침이지만 완벽하지는 않습니다. 또한 "site:mysite.com" 고급 쿼리를 사용하여 사이트를 Google에 검색하여 민감한 숫자를 찾는 것이 좋습니다. 무엇이든 찾을 수 있는 가능성은 매우 희박합니다. 하지만 발견했다면 즉시 조치를 취해야 합니다.
또한 약간의 친절한 조언: 신용 카드 정보를 누구 에게도 알려주지 마십시오. 제 조언은 가능할 때마다 PayPal 또는 이와 유사한 서비스를 사용하는 것입니다. 다음 링크에서 추가 정보를 확인할 수 있습니다.
- Visa의 신용카드 안전 수칙
- Citi의 신용 카드 안전 수칙
그리고 몇 가지 일반적인 팁: 요청하지 않은 것을 다운로드하지 말고, 스팸 이메일을 열지 말고, 은행에서 절대 비밀번호를 묻지 않는다는 점을 기억하십시오.
그건 그렇고: 이러한 신용 카드 해킹 기술에 빠지거나 인터넷에서 신용 카드 정보를 유출할 만큼 어리석은 사람이 없다고 생각한다면 @NeedADebitCard를 살펴보십시오.
안심하세요 여러분!