old(14)
-
webhacking.kr 32번 문제(old)
위의 사진처럼 32번 문제에 들어가면 순위표 ? 비슷한게 보입니다. 그리고 아무 닉네임이나 클릭하면 아래와같이 분명 첫번째 사진에서 랭킹 2위의 값이 47 이였는데 클릭하니 48로 바뀌었다. 그러고 보니 ctrl + f 키를 눌러서 내 아이디 값을 찾은 후 그 점수를 100점으로 맞추어보자. 내 아이디를 누르니 이미 투표를 진행했다며 점수가 올라가지 않는다. 쿠키를 확인해보자. vote_check 라는 쿠키가 만들어져 있고 그 값에 ok 라고 적혀있다. 아마 이 쿠키값을 다른 값으로 바꾸면 투표가 진행 될 것 처럼 보인다. 하지만 그렇다면 100번의 쿠키값을 변경해 주어야 하기 때문에 ok 라는 값을 에초에 차단을 시켜보자. vote_check를 차단시켜버리니까 쿠키가 생기지 않아서 클릭만하면 생성되었다..
2019.11.08 -
webhacking.kr 49번 문제(old)
49번 문제를 들어가면 위와같은 페이지가 출력된다. 소스를 확인해보자. lv를 GET 방식으로 입력받고 결과값(ID)을 출력해준다. 이 값이 admin 이면 문제가 풀리는 형식인것 같다. 싱글쿼터와 더블쿼터가 우회되어있으니 id='admin' , id="admin" 과 같은 방식으로는 admin을 만들어주지 못할것 같다. 그래서 16 진수나 char() 함수를 이용해서 admin을 만들어보자. 0x61646d696e -> 16진수로 표현한 admin char(97,100,109,105,110) -> char() 로 표현한 admin 이 값들을 공백과 or,and 연산자 그리고 =을 피해서 대입해주면 문제가 풀릴것 같다. ?lv=1%0a%26%26%0aid%0alike%0a0x61646d696e - %0a..
2019.10.18 -
webhacking.kr 54번 문제(old)
이 문제를 들어가자마자 Password is 하고 어떤 문자들이 미친듯이 출력된다. 바로 소스코드를 확인해보자. 이 스크립트 때문에 password 가 출력되는 것 같은데 우선 이 코드를 복사해서 개발자도구인 console 창에 입력해보자. 그렇다면 다시 스크립트 함수가 실행되서 password 가 출력되는 것을 볼 수 있다. 여기서 알아야할 함수는 setTimeout() 함수인데 이 함수는 일정시간마다 계속 함수를 불러와서 실행해준다. 1000 단위마다 1초이기 때문에 이 문제는 1초보다 빠르게 글자가 바뀌는 것으로 보이니 setTimeout("answer(+i+),20); 부분이 실행되는 것 같다. 그렇다면 저 코드에서 answer 함수를 0.02초마다 실행해 주는데 그 값을 계속 덮어쓴다. 그래서 ..
2019.10.18 -
webhacking.kr 53번 문제(old)
53번의 문제는 이러하다. 소스코드를 해석해보면 숨겨진 테이블의 이름을 찾아내고 그 값을 answer 에 입력해주면 풀리는 문제인것 같다. 여기서 문제를 풀기전에 procedure analyse() 함수에 대해서 알아야한다. mysql> select id from test where no=1 procedure analyse(); +--------------+-----------+-----------+------------+------------+------------------+-----+ | Field_name | Min_value | Max_value | Min_length | Max_length | Empties_or_zeros | Nulls | +--------------+-----------+-..
2019.10.18 -
webhacking.kr 25번 문제 (old)
25번 문제에 들어가면 출력되는 화면이다. -rw-r--r-- 1 root root 이런식으로 적혀있습니다. 이 기호는 리눅스에서 쓰이는 기호입니다. 그리고 문제의 주소창을 보면 GET 방식으로 파일명을 받아오는것 같습니다. 그리고 그 파일을 저 회색 화면에 출력하는것 같습니다. 근데 화면에는 파일명이 hello.php 라고 출력이 되어있는데 왜 주소창에는 hello 만 적혀져 있는것일까요? 아마도 주소창에서 받은 값에 .php 라는 문구를 더해줘서 ?file=hello 라고 적었으면 ?file=hello.php 라고 인식되는것 같습니다. (뇌피셜...) 그러니 일단 flag.php 파일을 열기 위해서 주소창에 flag 를 입력해봅시다. 위의 사진을 보면 FLAG is in the code 라는 문구가 ..
2019.10.16 -
webhacking.kr 7번 문제 (old)
7번문제에 들어가면 다음과같은 화면을 볼 수 있다. 바로 auth 를 눌러서 인증을 해보자. 역시 바로 인증 권한을 주진 않는것 같다. 그럼 소스를 확인해보자. 소스를 확인해보면 GET방식으로 받은 값을 go 변수에 저장하고 필터링을 거친 후에 아래 5개의 조건문으로 거쳐가는것 같다. 마지막 elseif 부분을 보자면 data 의 값이 2이면 solve함수가 실행된다. 이 것을 보면 go 의 값에 2라는 값을 넣어주어서 lv를 2로만들어주면 풀릴 것 같다. 하지만 그전에 preg_match() 함수를 통해서 사칙연산과 2 , = 등을 필터링해주어서 2를 직접적으로 입력하거나 또는 1+1 , 3-1 등과같은 결과값으로 2를 만들어 주지 못한다. 하지만 절대 2를 만들수 없는건 아니다. char() 함수나 ..
2019.10.16