분류 전체보기

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번 해싱하기 전의 값인 평문을 알아내야 하는 문제이다. 쉽게 말하면 역으로 복호화해서 값을 알아내야 한다...

webhacking.kr

[webhacking.kr] old-03

문제분석 & 풀이문제에 접속하면 다음과 같이 Nonogram 게임 판이 나온다. nonogram은 일본의 퍼즐게임으로 규칙은 인터넷에 치면 나온다. nonogram 문제를 해결하면 위와 같은 페이지로 넘어간다. 유저의 이름을 입력하면 유저이름,정답,IP의 형태로 기록이 남는 것 같다. 페이지의 취약점을 찾기 위해 개발자도구(F12)를 이용하여 소스를 보았다. 유저의 이름을 입력한 후 기록을 남기는 과정에서 index.php로 값을 전송하는데이때, "answer"이라는 이름을 가진 값을 hidden으로 같이 보내는 것을 확인 할 수 있는데이 부분이 유일하게 sqli가 가능해보이는 부분이다. 만약 sqli가 가능하다면? 서버의 DB에 정답이 저장되어있다면? 서버쪽 코드에서는 select [answer] fr..

webhacking.kr

[webhacking.kr] old-02

문제분석 & 풀이클라이언트 IP 주소를 기록 중이라고 한다. 개발자도구(F12)로 코드를 확인해보자. 접속시간이 기록됐고 admin.php에 대한 언급이 있다. admin.php에 접속하면, pw를 입력할 수 있는 구성이다.  admin의 pw를 입력하면 되는 것 같다.코드를 다시 보면, 상단부에 접속한 시간이 새로 갱신이 되지 않는 것을 확인할 수 있었다. 새로고침을 해봐도 갱신되지 않는다. 이 점이 이상하게 느껴져서 쿠키를 확인했다. "time" 이라는 쿠키가 존재했고 접속한 시간을 의미하는 것을 알 수 있다. "time" 쿠키값을 1로 변경하고 갱신된 시간을 확인했다. 갱신된 시간을 확인해보니 시간이 이상하게 나오면서 끝이 1인 것을 확인할 수 있다. 2,3,4,..등 값을 바꿔가면서 시간을 갱신해..

webhacking.kr

[webhacking.kr] old-01

문제분석 & 풀이1번 문제에 접속하면 다음과 같은 화면이 뜬다. 아래의 링크에 접속하면 소스를 보여주는 것 같은데 소스를 먼저 봐보도록 하자. 위 소스를 보면 SetCookie() 를 이용하여 "user_lv" 라는 쿠키가 생성되어있으며,if문을 확인해 보면 "user_lv" 쿠키의 값이 3보다 크고 4보다 작으면 solve(1)이 실행되어 문제가 해결되는 것 같다. 우선 쿠키를 확인하기 위해 F12(개발자 도구)를 킨 후 Application 탭에서 Cookies를 열어보았다. "user_lv"라는 이름의 쿠키가 존재하는 것이 확인되었고 값은 1로 저장되어있다. 소스를 통해 "user_lv" 쿠키의 값이 3보다 크고 4보다 작아야된다고 했음으로 3.5로 값을 변경 후 새로고침을 해보겠다. 클리어!!  ..

keyme
'분류 전체보기' 카테고리의 글 목록 (32 Page)