ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Easy] Micro-CMS v1
    Wargame/Hacker101 CTF 2019. 6. 13. 17:58


    게시판 형식의 페이지가 주어진다.

    차례대로 접근해보았다.


    우선, Testing 페이지에 들어가보았다.



    딱히 뭐가 없다.

    Edit this page 클릭



    script문을 삽입해보았다.

    flag가 나오면 좋겠지만,, script가 아래와 같이 필터링되어 있다.



    Markdown Test 페이지에 들어가보았다.

    /page/2

    Testing은 /page/1 이었는데 숫자로 인덱싱되는 것 같다.



    해당 페이지에는 버튼이 있다.

    클릭해보니 아무일이 일어나지 않는다. 소스를 보니 그냥 <button>으로 선언만 되어있다.

    쓸모없는 버튼이다..ㅎ

    Edit this page로 가서 버튼에 이벤트를 넣어주었다.



    돌아와서 클릭해보니,,

    alert창이 뜬다..!



    올..

    필터링되어 있을 줄 알았는데, 아니다.

    어떻게 삽입되었는지 소스 코드를 확인해보았더니,,.!



    flag를 얻었다 :)


    다시 메인페이지로 돌아가서,

    Create a new page를 클릭해 새로운 페이지를 만들어보자.



    script문을 삽입해 flag를 얻었기 때문에, Title과 내용에 script문을 삽입하였다.



    흠,,

    아무일도 일어나지 않았고, Title의 script문은 문자열로 인식된 것 같다;;


    하.지.만

    생성한 페이지는 /page/3 이 아니라 /page/9 이다.

    뭔가 의심스럽다.

    3 ~ 8의 페이지가 존재하지만 숨겨져 있는 것 같다.


    /page/3



    Not Found..!


    /page/4



    Forbidden..!


    4의 인덱스를 가진 페이지가 존재한다.

    (4 빼고는 모두 Not Found이다.)

    어떻게 접근할 수 있을까,,,?!


    edit 페이지들이 존재하니까 4 페이지의 edit으로 접근해보았다.


    /page/edit/4



    접근 성공!


    다시 메인 페이지로 가보니,,



    올,,

    개.이.득

    flag가 떴다..!!



    어찌된 것인지 확인하기 위해 소스 코드를 확인해보니

    문자열로 인식되었던 script문이 메인 페이지에서는 script문으로 인식되었다.


    전혀 노리지 않았지만,,

    저렇게도 공격이 가능하다니 신기하다. 앞으로는 저런 부분도 신경써봐야겠다.


    이제 하나의 flag만 남았는데, 도저히 모르겠어서 힌트를 보았다.



    XSS, SQL injection, path injection,,,

    SQL injection..?

    form submission 뿐만이 아니다...?


    뭔가 form이 아닌 곳으로 SQL injection을 해야하는 것 같은 느낌이 많이 든다.

    form이 아닌 데이터를 전송할 만한 부분은 URL이다..!

    URL에서 SQL injection을 할 만한 것은 page 인덱스이다.


    /page/0' or true



    Not Found


    /page/edit/0' or true



    Get Flag~!!


    'Wargame > Hacker101 CTF' 카테고리의 다른 글

    [Easy] Postbook  (0) 2020.04.04
    [Moderate] Micro-CMS v2  (0) 2019.06.21
    [Trivial] A little something to get you started  (0) 2019.06.13

    댓글

@Jo Grini's Blog