문제에 접속하니 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..
문제분석 & 풀이코드와 계정이 주어진다. 코드를 분석하면 인코딩 , 디코딩 2가지로 나뉜다. "); exit;}인코딩 부분은 "user" 라는 쿠키가 없는 경우 id='guest', pw='123qwe'를 각각 base64 인코딩을 20번 한 후, 그 값들을 replace를 이용하여 여러번의 치환과정을 거치고 각각 "user" , "password" 라는 쿠키에 넣고 있다. view-source");echo("ID : $decode_idPW : $decode_pw");if($decode_id=="admin" && $decode_pw=="nimda"){ solve(6);} 디코딩은 인코딩과 반대로 "user" , "password" 쿠키의 값을 가져와 인코딩과 반대로 replace를 이용하여 여러번의..
문제분석 & 풀이login, join 2가지 버튼이 존재한다. join을 눌러보니 접근이 불가능하다고 떠서 login부터 시도했다. blind sqli를 하는 문제인가 싶어서 여러가지 방법으로 sqli를 시도해보았지만 wrong password 라고만 뜬다. 디렉토리 리스팅 취약점이 존재하나 싶어서 mem 디렉토리에 접근해보니 접근이 된다. 이전에 접속하지 못한 join.php가 보이는데 접속해보자. "bye" 라는 경고창이 뜨면서 빈 화면만 뜬다. 개발자도구(F12)를 이용해서 코드를 분석해보자. 코드가 난독화됐다. 여러 변수가 선언됐고 복잡한 변수들로 하단 HTML 코드가 작성되어있다. 변수를 각각 대입하여 HTML 코드를 번역해야 할 것 같다. HTML 코드를 번역하면 위와 같이 나온다. ○ 코..