webhacking.kr

webhacking.kr

[webhacking.kr] g00gle1

문제분석 & 풀이 페이지에 접속하면 flag를 원하는지 묻는 구글 폼이 나온다. 두 가지의 선택지가 있는데 특이하게도 "yes" or "no" 가 아니라 "yes" or "sure"다. 미심쩍긴 했지만 flag를 원하기 때문에 아무거나 눌렀다. 눌러보니 0개의 옵션을 선택해야한다고 한다. 그래서 이번에는 아무것도 선택을 안하고 제출하니 필수 질문이라고 뜬다. 우선 코드를 확인하기위해 개발자도구(F12)로 봤다. 페이지에서 가장 눈에 띄는 "Do you want flag?" 라는 질문이 어떤 코드에서 사용되는지 확인했다. 검색결과 하단부 내부에 있었고 덤으로 flag까지 같이 얻었다! 클리어!!

webhacking.kr

[webhacking.kr] old-61 (sqli -> alias)

문제에 접속하니 소스만 있어서 바로 분석해봤다. 1. id 파라미터가 없으면 id 파라미터 값을 "guest"로 설정한다. (5번줄) 2. id에 addslashes()로 이스케이프 처리를 한다. (8번줄) 3. id에 ( , ) , select , from , 콤마 , by , . 이 있으면 access denied 를 띄우면서 종료된다. (9번줄) 4. id의 길이가 15자리가 넘으면 프로그램 종료된다. (10번줄) 5. sql 쿼리를 실행해서 결과 id가 "admin"이면 문제가 해결된다. (11~14번줄) select id from chall61 order by id desc limit 1 우선 chall61 테이블에 존재하는 id 값 중 가장 높은 순서의 값이 뭔지 보기 위해 id 파라미터에 i..

webhacking.kr

[webhacking.kr] old-60 (Race Condition)

문제분석 & 풀이 페이지에 접속하면 idx 값을 알려주고 "access denied"라고 한다. 코드 분석 1. 세션 idx 값을 화면에 출력해 알려준다.(5번줄) 2. PHPSESSID 쿠키의 값이 숫자가 아닌경우 "Access Denind"를 출력하고 프로그램 종료(6번줄) 3. 1초 뒤 mode 파라미터 값이 auth 이면 ./readme/{$_SESSION['idx']}.txt 경로 파일을 읽고 $reuslt에 저장한다. (8~10번줄) 4. $result에 idx 값이 들어있으면 문제가 클리어된다. (11~15번줄) 5. ./readme/{$_SESSION['idx']}.txt 경로 파일을 열어서 파일에 idx 값을 쓴다. (18~20번줄)6. 클라이언트 ip 주소가 "127.0.0.1"이 아니..

webhacking.kr

[webhacking.kr] old-59 (sqli → reverse)

문제분석 & 풀이 ID 와 phone를 이용해서 계정을 가입하고 로그인 할 수 있게 구성됐다. 코드를 분석해보자.

webhacking.kr

[webhacking.kr] old-58

문제분석 & 풀이 문제에 접속하니 USER Console 이라는 간단한 콘솔창이 구현되어있다. 콘솔창에 무슨 명령어를 쳐봐야될지 모르겠어서 우선 간단한 리눅스 명령어들을 쳐보니 ls 명령어만 정상적으로 출력된다. 계속 여러 명령어들을 쳐보던 중 대다수의 명령어들이 찾을수 없다고 떠서 명령어 문제는 아니라고 판단했고 혹시? 하는 마음에 flag를 입력해봤다. flag를 입력해보니 접근이 불가능하며 admin만 접근이 가능하다고 뜬다. admin만 가능하다는 것은 나는 admin이 아닌 다른 계정을 사용중이라는 것인데 그것을 알아보기 위해 개발자도구(F12)를 이용하여 찾아봤다. 간단하게 소스를 분석해보자. 1. username은 "guest" 2. guest:[입력한 명령어] 의 형태로 서버에 데이터를 전..

webhacking.kr

[webhacking.kr] old-57 (sqli → Time Based)

문제분석 & 풀이 페이지에 접속하면 message를 제출하는 칸이 있다. 하단에 소스가 있어서 분석해봤다. 1. msg, se 파라미터 값을 받아서 addslashes() 를 통해 이스케이프 처리해준다. 2. se 파라미터에 select, and , or , not , & , | , benchmark 가 있으면 프로그램 종료된다. 3. sql 쿼리를 실행하여 DB에 flag값과 함께 데이터를 추가한다. 4. rand(0,100)으로 나온 값이 1이면 DB의 chall57 테이블의 데이터는 삭제된다. 결론적으로 3번에서 insert 문으로 데이터가 추가될 때 같이 저장되는 $flag값을 알아내는 것이 이번 문제의 목표이다. 인젝션을 통해 DB에 저장된 $flag값을 빼내야 할 것이다. 그러나 소스를 보면 ..

keyme
'webhacking.kr' 태그의 글 목록