[ Bee-Box ] HTML Injection - Reflected(POST)

2020. 3. 27. 21:13·Archive/Hacking
728x90
반응형

 

 

POST 메소드를 사용하면 URL에 전송되는 변수 값이 노출되지 않습니다.

 

이번 포스팅은 버프스위트라는 프록시 툴을 사용해서 취약한 파라미터를 알아내고,

변수값을 전달하는 것을 다뤄보겠습니다!

 

 

 

 

우선 프록시 툴을 사용하려면, 프록시 설정을 먼저 해주어야합니다.

 

 

 

 

 

윈도우 키를 누르고 프록시를 검색하면 프록시 서버를 설정할 수 있습니다.

 

위의 그림과 같이 설정해주세요!

 

반드시 저장을 눌러주셔야 버프스위트가 정상적으로 동작할 수 있습니다.

 

 

다음은 버프스위트를 실행시키고, Proxy 탭에서 intercept is on 을 클릭합니다.

 

 

 

 

 

 

 

 

 

 

이와 같은 화면이 뜨면 됩니다.

 

 

 

 

 

 

 

프록시 서버를 설정하면 인터넷이 되지 않으므로, 프록시는

우리가 요청을 확인하고 싶을 때만 켜주면 됩니다.

 

 

 

 

 

HTML Injection - Reflected(POST) low(하)단계

 

 

 

 

 

 

 

 

첫번째 단계인 low는 get과 마찬가지로

 

 

hello

<h1>world</h1>

 

를 하면 h1태그를 인식합니다.

 

 

 

차이점이 있다면 POST방식에서는 URL에 취약한 변수가 보이지 않는다는 점 입니다.

 

 

버프스위트로 매개변수가 제대로 가는지 확인해보겠습니다.

 

 

 

프록시를 켜주시고,

우선 아무것도 넣지 않고 go를 눌러보겠습니다.

 

 

 

 

 

firstname이라는 매개변수와 lastname 변수가 보입니다.

태그값을 넣어보도록 하겠습니다.

 

 

 

 

 

 

매개변수에 각각 값을 넣고 Forward를 클릭하여 서버측으로 요청을 전달합니다.

 

 

 

 

 

 

 

 

버프스위트와 같은 툴을 통해 취약한 매개변수를 확인할 수 있고, 값도 변경할 수 있습니다.

 

 

 

 

 

 

 

HTML Injection - Reflected(POST) medium(중)단계

 

 

 

 

 

 

 

medium(중)단계는 h1태그를 문자로 인식하고 있는 것을 확인할 수 있습니다.

 

반사 POST 방식도 GET 방식과 같은 함수를 통해 값을 우회합니다.

 

 

GET방식과 같은 방식으로

 

hello

태그를 인코딩한 값을 넘기는 것을 버프스위트로 살펴봅시다.

 

 

 

 

go를 누르고 버프스위트로 요청값을 가로채서 확인해봅시다.

 

 

 

 

 

 

 

 

확인 결과 htmli_post.php 페이지는 더블인코딩을 사용합니다.

 

 

 

더블 인코딩?

 

더블인코딩이란, 인코딩에 사용하는 % 문자 또한 인코딩하는 것으로 % 문자를 인코딩하면 %25입니다.

만약 < 를 더블인코딩하면 %253C가 됩니다.

 

 

 

 

 

더블인코딩한 값을 서버에 넘겨주면 h1태그를 태그로 인식하는 것이 보입니다.

 

 

 

 

HTML Injection - Reflected(POST) high(상)단계

 

 

 

 

 

상단계의 함수도 GET방식과 같은 함수를 써서 서버에 데이터를 리턴해줍니다.

 

 

 

 

 

 

htmlspecialchars를 사용해서 특수문자를 우회하기 때문에 태그로 인식하지 않습니다.

 

 

 

 

 

 

HTML Injection 대응방안

 

 

 

HTML Injection 공격을 방지하려면 htmlspecialchars 함수를 사용해

태그에 사용하는 특수문자들을 인식할 수 없도록 인코딩해줍니다.

 

 

 

728x90
반응형

'Archive > Hacking' 카테고리의 다른 글

[ Bee-Box ] HTML Injection - Stored(Blog)  (0) 2020.03.29
[ Bee-Box ] HTML Injection - Reflected (URL)  (0) 2020.03.29
[ Bee-Box ] HTML Injection - Reflected(GET)  (0) 2020.03.27
[ Bee-Box ] 비박스란? + Bee-Box 설치하기  (1) 2020.03.23
Lord of SQL Injection 4단계, orc 풀이 + Python code  (1) 2020.03.22
'Archive/Hacking' 카테고리의 다른 글
  • [ Bee-Box ] HTML Injection - Stored(Blog)
  • [ Bee-Box ] HTML Injection - Reflected (URL)
  • [ Bee-Box ] HTML Injection - Reflected(GET)
  • [ Bee-Box ] 비박스란? + Bee-Box 설치하기
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    Oracle
    파이썬 백준
    비박스
    자바스크립트 객체
    자바스크립트
    카카오 100일 프로젝트
    오라클
    파이썬 기초 문제
    Git
    파이썬 기초
    백준
    코드업 파이썬 기초 100제
    docker
    장고
    oracle db
    Codeup
    백준 풀이
    자바스크립트 API
    Python
    javascript
    파이썬 알고리즘
    Django
    파이썬
    보안뉴스
    파이썬 문제
    백준 문제풀이
    백준 파이썬
    코드업 기초
    C++
    코드업
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
[ Bee-Box ] HTML Injection - Reflected(POST)
상단으로

티스토리툴바