ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • BWAPP 2주차(reflected-post, stored)
    보안/WEB HACKING 2024. 3. 14. 09:49

    1. burp suite 를 다운로드 받는다. Download Burp Suite Community Edition - PortSwigger
    2. proxy 서버-option 변경
    3. 컴퓨터 환경 설정에서 프록시 서버 사용 변경
    4. burp suite 안에서 인터넷 접속 - ip 주소 url 입력 - bwapp 들어가서 풀기
    5. bwapp 들어가면 로딩 중이라고 계속 뜨면 forward 계속 클릭하면서 로딩 확인하고 풀기

    프록시 서버 변경하면 다른 서버에서 하던 활동 (블로그 글쓰기 등) 을 못하게 되는 경우가 발생했음.. 어쩔 수 없는 것 같아서 그냥 끄고 문제 풀고 난 후 프록시 서버 다시 변경해주었다.


    Quest. 분명 당신은 검색 창에 아무 의미도 없는 값을 입력했습니다. 하지만 burp suite라는 취약점 분석 도구를 통해 아래의 유의미한 결과를 출력할 수 있게 되었습니다. 이 도구를 통해 아무 값을 입력하여 아래 두 번째 사진과 같이 출력하세요.

    난이도 low

     

    hint1. GET 방식과 다르게 POST 방식은 전송되는 변수 값이 보이지 않습니다. 하지만 burp suite를 이용한다면 클라이언트에서 서버로 전송되는 값이 모두 보입니다. 이걸 이용하여 값을 조작해봅시다.

    • proxty-intercept 를 보며 해결한다.
    • SUCCESS 태그와 image 를 입력한다.


    난이도 medium

     

    hint1. 페이지 소스 코드를 확인해봅시다.

    <p>Enter your first and last name:</p>

    <form action="/bWAPP/htmli_post.php" method="POST">

    <p><label for="firstname">First name:</label><br />

    <input type="text" id="firstname" name="firstname"></p>

     

    <p><label for="lastname">Last name:</label><br />

    <input type="text" id="lastname" name="lastname"></p>

     

    <button type="submit" name="form" value="submit">Go</button>

    </form>

     

    우리는 form의 정보가 htmli_post.php로 전달됨을 알 수 있습니다.

    hint2. htmli_post.php 파일에 include("functions_external.php");라는 코드가 있습니다.

    일부 함수를 functions_external.php 파일에 저장하는 듯 합니다.

    hint3. <과 >을 인코딩 했는데도 여전히 풀리지 않습니다. 더블 인코딩에 대해 알아봐야 할 것 같습니다.

    • htmli_post.php 에 들어간다. medium 이므로 case 1이다. xxs_check_1은 functions_external.php에 들어간다.

    • xxs_check_1은 functions_external.php에 들어가므로 functions_external.php에 들어가보자.
    • first name과 last name에 대입해도 안 풀린다.
    • < 과 >를 인코딩 해도 안 풀리는 이유는 xxs_check_1에 쓰여져있으므로 더블 인코딩을 해준다.

    • first name과 last name에 넣어주자.

     

    난이도 high – 풀 수 없는 이유를 설명하세요.

     

    hint1. 서버에서 변수를 처리할 때 값을 조작하는 것 같습니다. php 파일을 살펴보면서 변수가 전달되는 과정을 지켜보면 답이 나올 듯 합니다.

     

    + burp suite가 작동하지 않을 때는 인증서 설정을 확인해보세요.

    • 더블인코딩을 해도 풀리지 않는다.
    • hint 1을 참고하자. htiml_post.php에 의하면 high 레벨은 case 2이다.
    • case 2 는 xxs_check 3와 연관이 있다.
    • xxs_check 3가 있는 functions_external 파일에 들어가자.

     

     

    • xxs_check 3가 있는 functions_external 파일을 보자.
    • htmlspecialchars 함수는 특수문자를 UTF-8로 반환해주는 함수
    • htmlspecialchars 함수는 특수문자를 UTF-8로 반환해주는 함수이다. Post 도 Get처럼 htmlspecialchars 함수를 사용하므로 high 는 풀 수 없다.


    HTML Injection – stored (Blog)

     

    Quest. HTML Injection stored이 무엇인지 간단하게 정리하시오.

    공격자가 악의적인 HTML 태그를 삽입한 글을 저장하여 게시글을 열람한다면 공격자가 삽입해놓은 스크립트가 실행되는 것이다.


    Quest. 문제 페이지에 코드를 삽입하여 아래와 같이 이전 QUEST인 html injection - reflected (POST)를 해결하세요.

     

     

    난이도 low

     

    hint1. 우리가 배운 범위 내에서 해결할 수 있습니다.

    hint2. form 태그를 사용해보세요.

    hint3. form 태그를 이용해 reflected (POST) 문제 페이지로 전송해보세요.

    • 처음 보는 화면이니까 여러가지를 넣어보자.
    • 처음에는 그냥 글자, h1태그, 이미지를 넣어봤다.
    • 출력물을 통해 하얀 칸 안에 뭔가 쓰면 entry에 값이 나온다는 것을 알 수 있다.
    • 그렇다면 여기에 first name, last name을 적어주는 페이지 소스를 넣고 h1태그와 꿀벌 이미지를 넣어주면 될 것 같다는 생각이 든다. (hint 2 참고해서 form 태그 찾기)
    • form 태그를 이용해 reflected (POST) 문제 페이지로 전송해보세요. 라는 hint 3를 이용해서 post에 있는 form 태그를 데려오자.
    • first name 과 last name 에 post low level 에서 쓴 내용을 입력한다.

    난이도 medium – 풀 수 없는 이유를 설명하세요.

     

    hint1. 서버에서 변수를 처리할 때 값을 조작하는 것 같습니다. php 파일을 살펴보면서 변수가 전달되는 과정을 지켜보면 답이 나올 듯 합니다.

    • medium 입력 시
    • htmli_stored.php로 이동
    • 현재 level 은 medium 으로 security level 이 1이다. (low=0, medium=1, high=2)
    • level = medium or high 이면xxs_check_3를 지난다는 것을 알 수 있다.
    • functions_external 파일에서 xxs_check_3를 찾아보자.
    • htmlspecialchars 함수는 특수문자를 UTF-8로 반환해주는 함수이다. Stored도 Post와 Get처럼 htmlspecialchars 함수를 사용하므로 high 는 풀 수 없다.

    '보안 > WEB HACKING' 카테고리의 다른 글

    XSS game 01, 02 (6주차)  (0) 2024.03.14
    BWAPP 5주차(cross-site scripting stored)  (0) 2024.03.14
    BWAPP 4주차(cross-site scripting get, post)  (0) 2024.03.14
    BWAPP 3주차(post, search)  (0) 2024.03.14
    BWAPP 1주차(reflected-get)  (0) 2024.03.14
Designed by Tistory.