Web/Web Hacking (Wargame)

    [webhacking.kr] old-10

    ✏️ Check 기본 초기화면에서는 확인할 수 없지만, 오른쪽으로 당겨보면 Goal 라인이 있는 것을 볼 수 있다. 아마 왼쪽의 O를 Goal 라인 밖으로 보내면 문제가 해결될 것 같다. 🔎 Analyze 개발자도구를 통해 확인해보면 O 라는 요소는 "hackme"라는 이름을 가진 것으로, HTML 코드 수정을 통해 해결할 수 있을 것 같다. 해당 부분의 코드는 아래와 같다. O 초기 위치는 가장 왼쪽으로(left: 0), 해당 요소를 클릭했을 때, left 위치 값을 +1 한 뒤, left 위치 값(왼쪽의 픽셀값)이 1600인 경우 ?go=1600을 자동으로 전달되도록 한다. 🔓 Exploit 이를 이용해 hackme의 style 중 left 값을 1599로 바꾼 후 클릭했더니 익스플로잇되었다!

    [webhacking.kr] old-07

    ✏️ Check 가장 첫 페이지는에서는 auth(인증)버튼과 소스코드 링크가 첨부되어 있다. 이 상태 그대로 auth 버튼을 클릭하면 "Access_Denied!"라는 메시지창이 나타난다.

    [webhacking.kr] old-05

    ✏️ Check 문제에서 제공하는 사이트에 접속하면 다음과 같이 Login 버튼과 Join 버튼이 있다. Login 버튼을 선택하면 말그대로 로그인을 할 수 있는 창이 나타난다. Join 버튼을 선택하면 Access_Denied 의 알림창이 나타난다. . . . . . . . 가장 첫 페이지의 소스코드는 위와 같다. Join 버튼을 눌렀을 때, join.php 등의 페이지로 넘어가는 것이 아니라 무조건 no()라는 함수가 호출되어 경고창만 출력되도록 되어 있다. 🔎 Analyze 📑 login.php 일단 접속할 수 있는 Login 페이지에서 분석을 시작했다. 아무 ID와 PW를 입력하면 Wrong password라는 문구와 함께 로그인이 되지 않는다. 여기서 주목해볼만한 부분은 URL이다. https:..

    [webhacking.kr] old-06

    ✏️ Check 문제에서 제공하는 페이지에 접속하면 ID와 PW가 출력되고 source code를 볼 수 있도록 링크가 첨부되어 있다. 내부적으로 decode_id와 decode_pw의 값이 'admin'과 'nimda'일 때 문제를 해결할 수 있다. 🔎 Analyze 📑 소스코드 분석 코드를 나눠서 분석해보자! if($_GET['view_source']) view_source(); if(!$_COOKIE['user']){ $val_id="guest"; $val_pw="123qwe"; for($i=0;$i

    [webhacking.kr] old-02

    🔎 Check & Analyze webhacking.kr의 old 2번 문제 문제에서 제공하는 페이지에 접속하면 위와 같은 페이지가 나타난다. 주석에는 현재 시간과 admin.php에 접속하면 ass를 kick 해버리겠다는 메시지를 확인할 수 있다. 🍪 time 쿠키 변조 쿠키를 확인해보면 time 값이 따로 있는 걸 볼 수 있다. 이 값을 변조해보자! 입력한 쿠키의 값이 반영되는 것을 확인할 수 있다. time 에 대한 값이 실제로 코드에 반영이 되는 반면, 0(거짓)으로 변조하는 경우에는 초기의 코드로 돌아가는 것을 확인할 수 있다. 만약 거짓에 대한 결과가 궁금하다면 SQL 문으로 거짓 값을 입력해줄 수 있다. 이로써 확실히 SQL 구문이 적용되는 것을 알 수 있다. ⬛ Blind SQL Injec..

    [Dreamhack] Carve Party

    🧐 Wargame - Carve Party Web Hacking 코스의 DevTools를 공부하고 난 후에 관련된 문제로 Carve Party를 추천하셨길래 풀어봤다! 💁‍♀️풀이 (1) - 실패 문제 설명을 읽었을 때 가장 먼저 10000번 클릭해서 플래그를 얻으라는 말에 클릭 횟수를 강제로 10000으로 만들면 되지 않을까?!라는 생각으로 관련된 부분에 breakpoint를 걸고 counter 변수의 값을 10000으로 설정했다. 하지만 호박도 제대로 Jack'o'lantern이 되지 못하고.. 플래그도 얻지 못했다.. 💁‍♀️풀이 (2) - 성공 $(function() { $('#jack-target').click(function () { for(var j = 0; j

    [HackCTF] hidden

    페이지 문제 페이지에 들어가면 "5번 파일에 플래그가 있다악!!!!!!!!!!!"라고 적혀있지만 5번 파일은 보이지않는다 solution 개발자 도구를 열고 나오는 소스코드에 5번 버튼을 생성해준다. 5번 버튼이 생긴 것을 확인할 수 있다! 5번 버튼을 눌러보면

    [HackCTF/Web] 1번. /

    문제 페이지 이런 식으로 로봇 사진과 함께 Hidden Flag라는 글을 볼 수 있다. source code (HTML) 로봇 사진과 Hidden Flag가 사이트에 보여지는 것을 확인할 수 있다. 솔직히 여기서 어떻게 해야하는지 잘 모르겠어서 write-up을 찾아봤다. solution robots.txt 사이트의 크롤러 트래픽을 관리하고 일반적으로는 웹 페이지, 미디어 파일, 리소스 파일을 표시하지 않기 위해 사용한다. https://developers.google.com/search/docs/advanced/robots/create-robots-txt?hl=ko robots.txt 파일을 생성하는 방법을 보면 robots.txt의 역할에 대해 좀 더 잘 이해가 된다! /robot_flag/ 디렉터리..

    [LOS] 3. goblin

    source code 이번에는 필터링되는 문자들이 추가되었다 ⇒ 따옴표들을 사용할 수 없다! _ . \ ' " ` 이번에는 화면에 출력되는 쿼리문 중 id 값은 항상 guest로 고정되어 있다. id는 입력받지 않고, "no" 변수만을 GET 방식으로 입력받는다. id 변수에 직접 입력받지 않고 no 를 통해 'id' 값을 admin으로 수정해야한다. id 의 값이 True일 때 Hello __ 문이 출력된다. id의 값이 admin일 때 goblin 해결이다. try 우선 어떻게 해결해야할 지 감이 오지 않아 no 변수에 0부터 값을 넣어봤다. 0을 넣을 때는 출력되는 쿼리창의 no 값이 0으로만 바뀐다. 1을 넣었을 때 Hello guest 가 출력된다. 즉, id=1 & no=1 일 때 True가 ..