Wargame(Web)/Webhacking.kr Writeup
Webhacking Writeup 61번 문제
Webhacking Writeup 61번 문제입니다. 아무것도 없으니 소스코드부터 보겠습니다. 코드를 해석하면 id를 입력하는데 addslashes함수로 싱글쿼터, 더블쿼터, 널, \ 를 치환해 한번 거름망 역할을 하고 필터링으로 괄호, select , from, 콤마, by , 점(.) 이 걸려있습니다. 또한 id의 길이는 15를 넘어서면 접근불가가 출력됩니다. 여기서 작성자가 느끼기에 가장 생소한건 select 다음으로 id가 있는점입니다. 평소에는 where 조건부분에 값을 입력하는 방식이였는데 어떻게 시작할지 몰라 지인에게 힌트를 조금 받았습니다. select 구문을 좀더 공부해보라더군요 select에 대해 검색하다보니 값을 고정해서 출력하는 as 문을 찾을 수 있었습니다. 이 자료를 참고로 처음..
Webhacking Writeup 56번 문제
Webhacking Writeup 56번 문제입니다. 문제사이트에 접속하면 admin과 guest의 subject링크를 제공해줍니다 먼저 guest를 들어가보면 hello~ 가 존재하고 admin은 접근불가 라고 합니다. 여기서 의문이였던게 search는 무엇을 하는 녀석인가를 생각했었는데 처음에는 1, 0도 입력해보고 admin guest도 입력해봤으나 값이 나오지를 않았습니다. 계속 시도하다가 a 같은 문자열 하나를 입력해보니 admin이 출력되는 것을보고 DB내부의 값을 검색한다는 것을 알았습니다. 무슨 구문으로 검색하는지 찾기위해 guest를 이용해 시도를 해보니 guest가 검색됩니다. 그렇다면 like%seacrh% 형태로 이루어져있다는 것을 예상할 수 있었습니다. 해서 와일드카드인 _로 확인..
Webhacking Writeup 42번 문제
Webhacking Writeup 42번 문제입니다. 사이트에 접속해보면 test.txt 다운로드와 flag.docx 다운로드링크가 있습니다. 먼저 test.txt를 다운로드 해보면 파일이 다운로드 되었습니다. 그러면 flag.docx 다운로드 링크를 클릭해보면 접근 불가 입니다.... 제공되는 소스가 없어서 개발자모드를 열어 살펴보겠습니다. 링크가 test는 down=dGVzdC50eHQ= 로 잡혀있으나 flag는 자바스크립트 alert로 잡혀있어서 접근 불가였던것입니다. 두개를 계속보다보니 뭔가 이상하더라구요 URL링크맨뒤가 원래 '='로 끝나는가 싶더라구요. 보통은 'down=aa' 처럼 영문자로 끝나는게 일반적인데 고민하다 기억났던게 다른문제를 풀다 알게된 "base64 암호화는 비트값을 맞추기 ..
Webhacking Writeup 4번 문제
Webhacking Writeup 4번 문제입니다. 본 Writeup은 다음 라이트업을 보고 작성하였습니다. https://esyeonge.tistory.com/83 Webhacking.kr old 4번 문제 풀이 view-source를 눌러서 소스 코드를 보자. 코드를 해석하면 다음과 같다. 1. 10000000부터 99999999 숫자 중 하나 + salt_for_you를 더한 문자열을 hash에 저장한다. (ex. 10001111salt_for_you) 2. 1에서 수행한.. esyeonge.tistory.com 먼저 사이트에 접속하면 암호화된 값과 패스워드 입력창이 있습니다. 소스코드를 제공해주니 소스코드를 살펴보겠습니다. 필요한 부분만 캡쳐했습니다. 해석해보면 post 방식으로 key값을 전달받..
Webhacking Writeup 27번 문제
Webhacking Writeup 27번 문제입니다 사이트에 접속하니 소스코드를 줍니다. 소스코드를 열어보겠습니다. 봐야할 부분만 캡쳐해봤습니다. 해석해보면 일단 no라는 값을 GET방식으로 전달받되 #, select, ( , 공백, limit, =, 0x 를 필터링한다고 합니다. 다음구문을 보면 chall27 이라는 테이블에서 id를 조회하되 조건은 id=guest로 고정되어있고 우리가 입력한 no를 전달받는 구문입니다. guest로 로그인하면 guest를 출력하고 admin으로 로그인하면 문제가 해결된다고 합니다. 주석으로 admin의 no=2라고 힌트를 제공해줍니다. 즉 admin으로 값을 도출하는 방식도 가능하지만 여기서는 no=2라는 방식을 이용해 해결해보라는 것으로 알 수 있습니다. 일단 1을..
Webhacking Writeup 39번 문제
Webhacking Writeup 39번 문제입니다. 사이트에 접속하니 소스코드를 제공해 줍니다. 소스코드를 먼저 열어보겠습니다. 봐야할 부분만 캡쳐해봤습니다. 해석해보자면 먼저 POST 형태로 id값을 전송받습니다. 그런데 입력한 id값의 str_replace 함수로 \ 를 사용시 없애버리고, 싱글쿼터( ' )를 사용시 싱글쿼터 두개로 치환해 버려서 열었던 싱글쿼터를 닫아버립니다. 또한 substr함수로 전달받은 id를 15개만 받고 그 이상은 입력이 되지않는것 같습니다. 다음이 제일 중요한데 "select 1 from member where length(id)
Webhacking Writeup 9번 문제
Webhacking Writeup 9번 문제입니다. 사이트에 접속하면 1 2 3과 패스워드 제출칸이 존재합니다. 일단 1 2 3하나씩 들어가 보겠습니다. 3번째의 id가 password라고 알려줍니다. 그럼 id를 찾아야 한다는건데 url을 보면 no=( )를 기준으로 값이 증가하면서 페이지가 넘어가길래 4이상이 있나 입력해봤습니다. 페이지가 존재합니다.... 이상하네여 아까 메인페이지에서 입력하면 될걸 왜 4이상의 페이지가 존재하고 입력이 가능할까요? 이걸 계속고민하다 Los orc문제를 해결하러 도망갔었습니다. 못풀어서요.... orc문제를 풀고 돌아와서 생각해보니 블라인드SQL이 가능하겠더라구요. 블라인드 문제를 지금까지 True 와 False를 구분지어서 풀었다면 여기서는 찾아야할 id값이 존재할..
Webhacking Writeup 20번 문제
Webhacking Writeup 20번 문제입니다. 사이트에 접속해보면 입력칸이 3개 존재하고 마지막 입력은 봇방지를 위한 흔히보는 문자입력 방식입니다. 그런데 우측 위에 시간제한이 2초라고 되어있는데 이게 뭔소리인지 모르겠어서 입력해서 submit 해봤더니 느려서 실패라는것 같습니다. 일단 구조를 확인하기 위해 코드를 살펴보겠습니다. 필요한 부분만 캡쳐해왔는데 해석하면 submit을 클릭하면 ch()가 실행되는 구조입니다. ch( )는 id 값이 비어있으면 안되고, cmt 값도 비어있으면 안되며, captcha값이 비어있으면 안되는데, 이값을 출력되어있는 captcha값과 같아야 한다고 합니다. 이 모든것을 True 해야만 submit이 수행되는 것같습니다. 이것이 모두 2초만에 수행되어야 한다는 애..