2016-08-18 3 views
1

HPP (HTTP Parameter Pollution) 공격에 대해 이해하려면 link을 검토했습니다.CSRF와 HPP (HTTP 매개 변수 오염)의 차이점은 무엇입니까?

HPP 공격의 경우 공격자가 HTTP 매개 변수를 수정하고 수정 된 URL을 피해자에게 보냅니다. CSRF 공격과 같지 않습니까? 그렇지 않다면 누군가 CSRF & HPP의 차이점을 말해 줄 수 있습니까?

답변

1

HTTP 매개 변수 오염은 응용 프로그램이 다른 시스템에 대한 백엔드 HTTP 요청을 만들고이 매개 변수를 주 응용 프로그램에 입력하여 조작 할 수있는 경우입니다. HPP는 공격자가 중복 매개 변수 이름을 백 엔드 요청에 전달하도록하여 응용 프로그램이 명시 적으로 전달하는 매개 변수 값을 무시하므로 정의됩니다. 유사한 취약점 인 HTTP Parameter Injection은 공격자가 다른 시스템에 의해 해석되는 백엔드 요청에 새 매개 변수를 추가하여 정의됩니다. 따라서 HPI는 새로운 매개 변수를 추가하는 반면 HPP는 기존 매개 변수를 무시하거나 새로운 방식으로 해석합니다.

HPP의 견본을 보려면 my answer here을 참조하십시오.

CSRF에는 백 엔드 HTTP 요청이 필요하지 않습니다. 이것은 프론트 엔드 요청이지만 지식이없는 피해자가 작성한 것입니다. 기본적으로 피해자의 브라우저와 피해자의 승인 쿠키를 사용하여 악의적 인 요청이 이루어짐을 의미합니다. 그것은 공격자의 페이지에 숨겨진 이미지로 간단 수 : 피해자가 공격자의 페이지를 방문 할 때마다이 발생됩니다

<img src="https://bank.example.com/transfer_money?toAmount=999&toAccount=12345678" /> 

, (예를 들어, 그들에게 이메일로 전송 링크 또는 뭔가 포럼에 게시 된 다음).

POST 메서드를 사용하는 다른 예는 my answer here을 참조하십시오.

간혹 CSRP를 통해 HPP 취약점을 악용 할 수 있습니다. 예를 들어 피해자가 HPP를 통해 악용 될 수있는 시스템에 로그인해야합니다. 예 : https://www.example.com/transferMoney.php에 대한 POST는 toAccount=9876 POST 매개 변수를 전달하여 피해자가 www.example.com의 자동 실행 쿠키를 사용하여 승인되지 않은 계정으로 돈을 이체하도록 할 수 있습니다.

질문에서 기사와 관련하여 상태 변경을 유발하는 모든 동작은 기사에서 설명한대로 POST 방법과 GET 링크를 통해 구현되어야하므로 현실적인 HPP 공격이라고 생각하지 않습니다. 실제로 현재 페이지에서 생성되는 액션 링크를 얻습니다 (하지만 어쨌든 가능합니다). 이것이 바로 HPP가 실제 백엔드 요청에 더 많은 이유입니다.

+0

설명해 주셔서 감사합니다. 당신이 말했듯이 HPP는 CSRF를 통해 악용 될 수 있습니다. 따라서 CSRF 보호 메커니즘이 적절한 지 공격자가 사용자를 속여서 HPP를 수행 할 수는 없다고 생각합니다. 그러나 CSRF 필터는 HPP 예제에서 언급 된 상황을 막지 못합니다. 실제 공격자는이를 사용하는 사용자입니다. – SSB

+0

수정. HPP는 매개 변수가 의도하지 않은 방식으로 해석되는 중복을 가짐으로써 "오염 된"경우입니다. 다른 대답은이 중요한 사실을 언급하지 않습니다. – SilverlightFox

1

링크 된 기사에서 설명한대로 HPP는 반환 된 페이지의 내용을 수정하기 위해 요청 매개 변수를 수정하는 특정 유형의 주입 공격 인 것으로 보입니다. 어떤면에서 반사 된 XSS 공격의 좀 더 일반화 된 버전입니다. XSS를 사용하면 요청을 변경하여 악의적 인 자바 스크립트를 삽입하고 실행하려고 시도하는 반면 HPP에서는 악의적 인 데이터를 주입하기 위해 모든 데이터 (예 : URL 생성에 사용 된 데이터)를 수정하려고합니다.

그러나 CSRF는 대개 예기치 않은 동작이나 원치 않는 동작으로 이어지는 컨텍스트에서 완전히 유효한 요청이 서버로 전송되는 공격을 설명하는 데 사용됩니다. 다소 표준적인 예는 사이트의 링크를 클릭하도록 사용자를 속여서 사용자의 은행 계좌 (사용자)가 자신의 계좌에서 귀하의 계좌로 돈을 이체하도록 요청하는 것입니다.

공격자가 CSRF 공격으로 HPP 또는 XSS 공격을 사용하는 것을 차단하는 방법은 없습니다. XSS 또는 HPP 공격은 응답의 일부로 나중에 반환되는 사용자 입력 처리에서 유효성 검사의 부족을 이용합니다. CSRF 공격은 응용 프로그램 흐름에서 "시퀀스 위반"을 이용하여 의도하지 않은 동작을 유발합니다.

+0

시간을내어 문제를 해결해 주셔서 감사합니다. – SSB

+0

HPP는 응답하는 응용 프로그램이 원본이 아닌 공격자의 복제본을 처리하도록 속이는 중복 매개 변수를 사용하여 요청을 만드는 것을 의미합니다. 나는 희망을 갖고 일들을 정리하기 위해서도 대답했다. – SilverlightFox