2016-10-18 7 views
0

원격 서버가 브라우저에 반환 한 특정 파일 본문을 대체 할 수 있지만 원래 응답 헤더는 거의 변경되지 않고 그대로/변경되지 않음/변경되지 않음/변경되지 않은 상태로 두려면 어떻게해야합니까? (이 문맥에서 어떤 영어 단어가 최상인지 모르겠다. 제 질문을 수정하십시오!) 이것은 침입 테스트 프록시 (Burp, OWASP ZAP, Charles, Fiddler, Paros 등)를 사용하여 수행 할 수 있지만, 중요한 헤더 필드 (Set-Cookie, Content-Type 등)를 삭제하지 않고 응답 본문을 로컬 파일 본문에 매핑하는 데 적절한 옵션을 찾습니다. 정규 표현 패턴을 사용하여 몸체의 일부만 다시 작성하는 데는 문제가 없습니다. URL을 기반으로 전체 파일을 다시 매핑해도 문제가되지 않지만 서버에서 반환 한 원본을 복제하는 대신 새 헤더를 생성합니다. 로컬 파일의 크기가 서버의 크기와 다를 수 있으므로 Content-Length 필드를 프록시로 변경해야합니다. 침투 테스트 도구로 수정해야하는 다른 필드가 아마도 Set-Cookie, Content-Type 및 다른 선택되고 모든 사용자 정의 된 필드 (접두사가 X- 인 필드)가 보존되어야하는 필드가있을 수 있습니다.브라우저에 제공된 대부분의 원본 헤더 필드를 보존하면서 서버 응답 본문을 바꾸거나 다시 매핑하십시오.

이러한 도구에 확장 기능이나 스크립트를 써야합니까? 그렇다면 선택한 도구의 API 참조를 검색 할 수 있지만 어느 침투 테스트 도구를 Python이라는 필자가 선호하는 언어로 작성해야합니까? 이 목적에 필요한 특정 API를 가리키는 데 도움이 될 것입니다. 이 스크립트해야한다 : 특정 URL에

  • 읽기를 중단 점을 설정하고 서버에서 반환 헤더를 기억하여

    • 차단 HTTP 응답
    • 로드 로컬 파일 요청 된 URL
    • 체크 파일 크기와 연관 Content-Length 헤더를 수정 필드
    • 전송 수정 된 헤더
    • 전송로드 파일
    ,

    위 목록은 나를 가리키는 데 필요한 API 요소를 제안합니다. 이상적으로는 어떤 툴에서든 설명 된 태스크를위한 내장 옵션이 존재하지만, 그런 옵션이 존재하지 않는다면 어떤 툴을 사용해야할지 파이썬에서 코딩하는 법과 API 부분에 특별한주의를 기울여야합니까? 이식성 때문에 선택된 도구는 .NET에 종속되어서는 안됩니다 (Fiddler를 사용하면이 상황에서 문제가 될 수 있습니다). 이식성있는 Java 실행 환경의 사용에는 문제가 없기 때문에, Java에 의존하는 툴은 괜찮습니다.

  • 답변

    0

    예, OWASP ZAP으로이 작업을 수행 할 수 있습니다.

    ZAP은 python (실제로 jython;)을 비롯한 많은 스크립팅 언어를 지원합니다. 프록시 스크립트를 사용하여 요청 및 응답과 관련된 사항을 변경할 수 있습니다. 요청 및 응답, 모든 ZAP 기능 및 로컬 파일 저장소에 대한 모든 정보에 대한 완전한 액세스 권한이 있습니다. 그 예 https://github.com/zaproxy/community-scripts/tree/master/proxy 아무도 실제로 파이썬을 사용하지,하지만 당신은 파이썬 스크립팅 부가 기능에있는 필요한 템플릿이 포함되어 설치해야합니다 https://github.com/zaproxy/community-scripts/tree/master/payloadgenerator 의 예를 파이썬 스크립트가 :

    우리는 여기서 몇 가지 예를 https://github.com/zaproxy/zap-extensions/wiki/HelpAddonsJythonJython

    ZAP 스크립팅에 대해 궁금한 점이 있으시면 해당 목적을위한 그룹 만 있습니다 : http://groups.google.com/group/zaproxy-scripts