ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • picoCTF 2019 Web Exploitation write up
    $ Capture The Flag $ 2019. 10. 15. 19:10

    Insp3ct0r

     

     

    사이트에 들어가 보면 아래와 같습니다.

     

    How 를 눌러보면 다음과 같습니다.

     

    HTML, CSS, JS 에 FLAG가 나눠져 있는 것 같습니다.

     

    페이지 소스 보기를 하면 Flag 1/3을 찾을 수 있습니다.

     

    Flag1 :  picoCTF{tru3_d3

     

    mycss.css 파일에 들어가 보면 아래와 같습니다.

     

    Flag2 : t3ct1ve_0r_ju5t

     

    myjs.js 에 들어가면 마지막 flag를 찾을 수있습니다.

     

    Flag3 : _lucky?e85ef63c}

     

    Flag : picoCTF{tru3_d3t3ct1ve_0r_ju5t_lucky?e85ef63c}

     

    ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

    dont-use-client-side

     

     

    사이트에 들어가보면 아래와 같은 화면을 확인 할 수 있습니다.

     

    소스코드를 확인하면 아래와 같습니다.

     

    Flag를 조합 할 수 있을 것 같습니다.

     

    Flag : picoCTF{no_clients_plz_4a60f3}

     

    ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

    logon

     

     

    사이트에 들어가서 로그인을 막하면 다음과 같은 쿠키가 생성됩니다.

     

    True로 바꿔주면 Flag를 출력합니다.

     

    Flag : picoCTF{th3_c0nsp1r4cy_l1v3s_6f2c20e9}

     

    ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

    where are the robots

     

     

    robots문제이므로 robots.txt 관련 문제 일 수 있다.

     

    /0194a.html 에 들어가 보겠습니다.

     

     

    Flag : picoCTF{ca1cu1at1ng_Mach1n3s_0194a}

     

    ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

    Client-side-again

     

     

    사이트의 소스코드를 확인해 보면 js코드가 난독화 되어 있습니다.

     

    아래의 사이트에서 난독화를 풀어주겠습니다.

    주소 :  https://www.strictly-software.com/unpack-javascript

     

    난독화를 해제하면 아래와 같습니다.

     

    Flag 를 유추해보면 아래와 같습니다.

     

    Flag : picoCTF{not_this_again_ea9191}

     

    ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

    picobrowser

     

     

    browser를 picobrower로 만들면 되는 문제인것 같습니다.

     

    사이트에 들어가서 FLAG를 눌러보면 아래와 같습니다.

     

    picobrowser가 아니라고 뜹니다. 

     

    프록시 툴인 burp suite를 이용해서 변경해 주겠습니다.

    첫번째 프록시는 넘겨 주고 response 되서 돌아오는 값을 변경해주면 됩니다.

     

     

    User-Agent를 picobrowser 로 변경해 주면 아래와 같이 Flag 가 출력이 됩니다.

     

     

    Flag : picoCTF{p1c0_s3cr3t_ag3nt_55e7edbc}

     

    ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

    Open-to-admins

     

     

    admin이어야 하며 time이 1400이어야 한다고 합니다.

     

    그렇기 때문에 쿠키값을 다음과 같이 추가해 주도록 하겠습니다.

     

     

     

    Flag : picoCTF{0p3n_t0_adm1n5_2e8d3883}

     

    ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

    Irish-Name-Repo 1

     

     

    사이트에 들어가서 왼쪽 상단의 목차를 누르면 admin login 이라는 곳이있다.

    들어가서 기본적인 admin   //   ' or '1=1 을 입력해 보겠습니다.

     

     

    Flag :  picoCTF{s0m3_SQL_0397f20c}

     

    ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

    Irish-Name-Repo 2

     

     

    똑같은 sql injection 문제 이지만, 필터링이 강력해 졌다고 합니다.

     

    hidden 타입의 debug가 있습니다.

     

    value의 값을 1로 하면 보이지 않았던 입력 쿼리문을 확인 할 수 있습니다.

     

    이를 이용해서 확인한 바로는 or 만 필터링이 되는것 같지만 || 는 사용할 수 없는 것 같습니다.

     

    그래서 아래와 같이 입력해 줌으로서 필터링을 우회했습니다.

     

    Flag :  picoCTF{m0R3_SQL_plz_83dad972}

     

    ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

    Irish-Name-Repo 3

     

     

    이번에는 암호화가 되어있다고 합니다.

     

     

    debug의 value 값을 1로 변경한뒤 ' or '1=1 을 입력해서 쿼리문을 보겠습니다.

     

    or이 be로 바뀝니다.

     

    이를 보고 다시 be를 입력하면 or로 바뀔수도 있겠다는 생각을 했습니다.

     

    ' be '1=1 을 입력해서 확인해 보겠습니다.

     

     

    Flag :  picoCTF{3v3n_m0r3_SQL_9a2f17b3}

     

    ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

     

    제가 푼 문제들이 전부가 아닙니다.

    제가 개인 공부를 해야해서 개인 사정으로 인해 풀다가 만것이기 때문에

    직접 사이트에 들어가셔서 즐햌 하시길 바랍니다!!

    댓글

Designed by Tistory.