>운영 및 유지보수 >안전 >공동 구매 웹 사이트의 허점에 대해 토론하십시오.

공동 구매 웹 사이트의 허점에 대해 토론하십시오.

王林
王林앞으로
2021-02-20 10:58:222641검색

공동 구매 웹 사이트의 허점에 대해 토론하십시오.

서문:

지난 9월 동료가 공동구매 사이트에서 냄비정식을 구매한 후 거의 매일 구매했습니다. 설날을 맞아 단체 구매 사이트에서는 'VIP 회원은 0원에 빨간 봉투를 받습니다' 활동을 시작했습니다. 빨간 봉투 받기를 싫어하는 사람이 있을까요? 그래서 나도 그 일에 참여하게 됐다.

그래서 과감하게 회원가입에 들어가 구매를 누르고 장바구니에 넣고 주문확인을 눌렀죠? "이 이벤트는 VIP 회원에게만 제한됩니다"라는 알림이 표시되는 이유는 무엇입니까? 첫 번째 반응은 페이지 소스 코드를 보는 것이었습니다(이벤트가 종료되어 구매 페이지에 들어갈 수 없기 때문에 여기서는 의사 코드를 사용하여 표현해야 합니다):

//确认订单按钮的点击事件function btn_click(){     
    ajax获取当前用户的类型    
        如果不是VIP,alert("本活动仅限VIP会员参与");     
            否则 form1.submit();
            }

그런 다음 주소 표시줄에 입력했습니다. : javascript:form1 .submit(); 입력하세요! 결제 페이지로 이동한 후 확인을 클릭하세요. 알겠죠? 구매 성공! 5위안짜리 빨간 봉투를 받았어요!

공동 구매 웹 사이트의 허점에 대해 토론하십시오.

정말 대단해요! ! ! 새 계정을 등록하고 위의 단계를 반복하여 5위안 빨간 봉투를 성공적으로 받았습니다.

이 버그에 대해 설명하기 위해 즉시 고객 서비스에 메시지를 남겼지 만 오늘까지 응답이 없습니다. 하하.

이 취약점의 핵심은 개발자가 form1.submit()의 백그라운드 코드에서 현재 사용자가 VIP 회원인지 확인하는 것을 잊고 자바스크립트 확인에만 의존했다는 것입니다.

프런트엔드 검증은 아무 소용이 없고, 완전히 우회할 수 있으며, 백엔드 검증이 가장 중요합니다! !

아침에 얻은 내용으로 1일 밤에도 다른 공동구매 사이트에서 계속해서 허점을 찾았고, 아니나 다를까 더 심각한 허점을 발견했습니다.

공동구매 사이트에서는 설날 황금알 깨기 추첨도 진행했는데, 이것도 무료로 참여 가능했어요. 구매 후 황금알 깨기 기회를 얻으려면 이벤트에 친구를 초대해야 한다는 걸 알게 됐어요. 친구를 초대하면 사진과 같이 한 번 더 기회가 주어집니다.

공동 구매 웹 사이트의 허점에 대해 토론하십시오.

황금알을 클릭하자마자 "더 이상 로또 기회가 없습니다. 친구를 초대해주세요!"라는 알림이 떴습니다. 음, 또 자바스크립트야? 먼저 코드를 살펴보겠습니다.

공동 구매 웹 사이트의 허점에 대해 토론하십시오.

황금알의 클릭 이벤트입니다. AJAX를 사용하여 액세스한 lottery1.php 페이지가 있으며, 전달될 기회 변수는 현재 사용자에게 기회여야 합니다. 계란을 깨려고.

(학습 영상 공유: 프로그래밍 입문)

lottery1.php?chance=1에 직접 접속하려고 했는데 lottery1.php?chance=0에서도 오류가 발생했습니다. lottery1.php?chance. =- 1. 오류도 반환하는데 아무런 영향이 없나요? 황금알 깨기 페이지를 새로 고쳤어요, 와! !

공동 구매 웹 사이트의 허점에 대해 토론하십시오.-1을 전달했는데 오버플로가 발생했나요? 몇개 부숴서 매번 상품권을 받았어요! ! 정말 대단해요. 그러다가 바우처를 사용해 주문을 해보니 몇 달러를 절약하는 데 성공했어요

하지만 한 주문에 바우처 하나만 사용할 수 있거든요 ㅎㅎ (물론 결국 테스트 주문을 취소했습니다. , 저 그렇게 나쁜 사람은 아니예요 와 카카)

바로 고객센터에 연락했는데 퇴근하고 보니 QQ가 온라인도 아니고 전화도 연결이 안되서 문자를 남겨야 했네요. 메시지.

다음은 무엇입니까? 계란을 깨뜨려라! 42억개의 황금알은 JS를 작성하면 자동으로 깨집니다! 지금까지 총 3588개의 황금알을 깨뜨렸는데 그 중 적어도 2000개 이상은 제가 깨뜨렸습니다. 와, 많은 상품권을 받았습니다:

총 185페이지, 하하, 정말 대단합니다. 의! ! !

공동 구매 웹 사이트의 허점에 대해 토론하십시오.2일 공동구매 사이트의 코드를 다시 확인해 보니 더 심각한 문제를 발견했습니다.

JS에도 그런 메소드가 있습니다

얼핏 보면 관련이 있는 것 같습니다. 돈, 들어오는 사용자 ID 및 금액이 어떤 효과가 있는지 확인하십시오.

공동 구매 웹 사이트의 허점에 대해 토론하십시오.사용자 ID는 어떻게 얻나요? 걱정하지 마세요. 페이지에 있습니다:

이 96204는 내 현재 계정의 ID입니다. 방문 후 "오프라인 충전 성공"이 반환되었습니다. 와, 정말 멋지죠? 충전 페이지에는 권한 확인이 없나요?

공동 구매 웹 사이트의 허점에 대해 토론하십시오.계정 잔액을 확인해 보니 확실히 충전이 성공했습니다.

제 동생 잔액이 20,000인데, 와! ! 이 취약점은 매우 치명적입니다. 즉시 고객 서비스에 메시지를 남겨주세요. 메시지를 남기자마자 개발자가 저에게 전화를 걸어 저와 논의했습니다

황금알 깨기 취약점 문제, 새롭게 발견된 취약점을 함께 알려주세요. 개발자들은 설날 저녁 10시 이후에도 여전히 코드를 변경해야 하기 때문에 힘든 생활을 하고 있습니다.

수정하고 나서 사장님이 선물을 주실 수도 있다고 하셔서 정말 기대가 되네요 하하.

드디어 그 사람이 내 계좌 잔고를 치웠고 나는 마음 속으로 외쳤습니다. 안 돼, 내 2만 위안~~~~~~~~

결론적으로 프론트 데스크에서의 확인은 신뢰할 수 없습니다. 필요한 경우 배경을 확인해야 하며, 관리 페이지에 액세스 권한을 추가해야 합니다. 배경으로 전달된 데이터는 계란 깨기 매개변수와 같이 전달될 필요가 없는 매개변수인지 확인해야 합니다. , 생각이 나지 않습니다. 현재 사용자가 소유한 계란 깨기 기회가 왜

백그라운드로 전달되어야 하는지, 데이터베이스에서 직접 읽을 수 없는 이유를 이해하십니까? 사용자 ID는 일반 텍스트로 표시되어서는 안 됩니다. 또한 XSS 크로스 사이트 스크립팅 공격(일반적으로 호스트 헤더를 판단하여)을 방지해야 합니다.

내 웹사이트: http://i.goto327.top:85/

관련 권장 사항:

웹사이트 보안

위 내용은 공동 구매 웹 사이트의 허점에 대해 토론하십시오.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제