webhacking.kr

webhacking.kr

[webhacking.kr] old-09

문제에 접속하니 위와 같은 페이지가 나왔다.아마 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 파라미터를 이용해야..

webhacking.kr

[webhacking.kr] old-08

문제에 접속하니 "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 속성값을 가져와 최종적으..

webhacking.kr

[webhacking.kr] old-07

문제에 접속하니 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..

webhacking.kr

[webhacking.kr] old-06

문제분석 & 풀이코드와 계정이 주어진다. 코드를 분석하면 인코딩 , 디코딩 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를 이용하여 여러번의..

webhacking.kr

[webhacking.kr] old-05 (directory listing)

문제분석 & 풀이login, join 2가지 버튼이 존재한다. join을 눌러보니 접근이 불가능하다고 떠서 login부터 시도했다. blind sqli를 하는 문제인가 싶어서 여러가지 방법으로 sqli를 시도해보았지만 wrong password 라고만 뜬다.  디렉토리 리스팅 취약점이 존재하나 싶어서 mem 디렉토리에 접근해보니 접근이 된다. 이전에 접속하지 못한 join.php가 보이는데 접속해보자. "bye" 라는 경고창이 뜨면서 빈 화면만 뜬다. 개발자도구(F12)를 이용해서 코드를 분석해보자. 코드가 난독화됐다. 여러 변수가 선언됐고 복잡한 변수들로 하단 HTML 코드가 작성되어있다. 변수를 각각 대입하여 HTML 코드를 번역해야 할 것 같다. HTML 코드를 번역하면 위와 같이 나온다.  ○ 코..

webhacking.kr

[webhacking.kr] old-04 (rainbow table)

문제풀이40자리 해시가 있고 password를 입력해서 제출하는 구성이다. 새로고침을 할 때마다 해시값이 바뀌는 것을 확인할 수 있다. 조건에 맞는 password를 입력하면 문제가 해결되는 것 같다. 코드를 분석해보자. 1) key(password)가 chall4 세션과 동일하면 문제가 해결된다.2) [10000000~99999999 사이 랜덤값] + "salt_for_you"을 $hash 변수에 저장하고 chall4 세션에 저장한다.3) $hash를 500번 sha1 해싱하고 결과를 화면에 출력한다. 정리하면, 처음에 화면에 출력된 40자리 해시는 500번 해싱한 결과다. 이 값을 이용해서 500번 해싱하기 전의 값인 평문을 알아내야 하는 문제이다. 쉽게 말하면 역으로 복호화해서 값을 알아내야 한다...

keyme
'webhacking.kr' 카테고리의 글 목록 (9 Page)