원격 서버가 브라우저에 반환 한 특정 파일 본문을 대체 할 수 있지만 원래 응답 헤더는 거의 변경되지 않고 그대로/변경되지 않음/변경되지 않음/변경되지 않은 상태로 두려면 어떻게해야합니까? (이 문맥에서 어떤 영어 단어가 최상인지 모르겠다. 제 질문을 수정하십시오!) 이것은 침입 테스트 프록시 (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에 의존하는 툴은 괜찮습니다.