문제에 접속하니 위와 같은 페이지가 나왔다.아마 password를 맞추는 것이 문제인 것 같다. 하이퍼링크가 걸린 숫자들을 하나씩 눌러보자.숫자를 누르면 no 파라미터를 통해 해당 숫자값이 전송되는 것을 확인 할 수 있었고 각각 위와 같은 결과가 나왔다. 마지막으로 3을 눌러보니 secret이라는 문구와 함께 속성이 id,no 이며 no=3의 id 값이 password라고 언급됐다.아마 DB의 테이블의 속성이 id,no 두 가지이며 우리가 구해야하는 password는 no가 3인 레코드의 id값인듯 하다. 결론적으로 password인 no=3의 id값을 구하는게 이번 문제의 목표가 될 것이다. no=3의 id값을 구하기 위해서는 blind sqli를 진행해야 하는데 사실 딱봐도 no 파라미터를 이용해야..
문제에 접속하니 "done!" 라는 문구와 함께 소스가 주어져있다. 소스를 봐보도록 하자. 소스코드를 분석해보자. 1. 클라이언트의 브라우저, os 정보를 가져와 공백제거 후 $agent 변수에 저장(2번 줄)2. 클라이언트의 ip 주소를 가져와서 $ip 변수에 저장(3번 줄)3. $agent 변수에 "from"이 포함되어있으면 프로그램 종료(4~7번 줄)4. chall8 테이블의 id 속성의 레코드 갯수를 가져온 후 $count_ck 변수에 저장 (10번 줄)만약, $count_ck 값 즉, 카운팅 갯수가 70이상이면 chall8 테이블을 삭제 (브루트 포스 방지용 인 것 같다.) (11번 줄)5. 클라이언트의 http_user_agent 정보를 가져와 그 정보에 해당하는 id 속성값을 가져와 최종적으..
문제에 접속하니 Admin page 가 나타났다. auth 버튼을 눌러보니 "access denied" 가 뜨는 것을 확인 할 수 있다.이번문제는 admin page에서 admin이라는 것을 버튼을 눌러서 인증을 해내는 것이 목표가 될 것 같다.다음으로 소스를 봐보자. 소스를 간단히 분석하면 다음과 같다.1. "val" 라는 파라미터의 값을 받고 $go 변수에 저장 후 5번줄을 통해 그 값을 정규표현식을 이용하여 필터링 검증을 받는다. (2,5번줄)2. rand(1,5)를 통해 1~5 까지 숫자중 랜덤값을 받고 if문으로 들어간다. (7~22번줄)3. 들어간 if문의 sql 쿼리를 실행하고 그 결과(레코드)를 $data 변수에 넣는다. (8~22번줄)4. $data[0] 즉, 결과로 받은 레코드의 l..