본문 바로가기

인젝션

webhacking.kr [문제 22번] 오늘은 22번 문제를 풀어보겠다. 사실은 며칠전에 풀었지만, 포스팅하지 못하였다. 해당 문제의 배점은 500point이며, 점수 배점이 높은거로 봤을 때, sql injection문제가 아닐까 조심스레 예상해본다. 해당 페이지 접속시, 다음과 같은 로그인 폼이 보인다. 힌트에 유의해야 할 부분이 있는 데, if($id=='admin') echo("good! Password is $solution"); 해당 부분에서 로그인한 아이디($id)가 'admin'이면 패스워드를 출력하는 것으로 확인된다. 먼저 해당 입력폼의 임의의 아이디를 넣고 로그인해보자. 역시나 Wrong! 이라는 메세지를 보여주면서 로그인 실패한다. 한번 회원가입해볼까? username은 'lidron'으로 password는 'crack'으.. 더보기
webhacking.kr [문제 13번] 3번째 라인으로 넘어가서 문제 13번을 풀어보겠다. 해당 문제의 배점은 1000point이며 지금까지 나온 문제 중 제일 높은 배점을 갖고있다. 클릭해보자. SQL INJECTION기법으로 푸는 것으로 예상되며 힌트로 select flag from prob13password라고 주어져 있다. 그렇다면 시험삼아 인젝션을 시도해보자. 몇가지 문자들이 필터링 되어있는 것 같다. 다사다난한 삽질(?)이 예상된다. 임의로 여러가지를 테스트해보자. 1) 0을 입력시 아무런 반응이없다. 2) 1을 입력시 3) 2를 입력시 4) 2이상을 입력시 해당 결과를 토대로 예상해보면 result가 1일때는 참 0일때는 거짓으로 나온다고 생각된다. 해당 가설을 검증해보자. no=2 or 1 (참) 이라는 쿼리를 보내서 해당 결과.. 더보기
webhacking.kr [문제 2번] 문제 2번을 풀어보겠다. 500 point나 하는 2번 문제를 클릭해보겠다. 길동이 성님이 젠야타 자세로 반겨준다. 뭐 어쩌라는건지 모르겠다. 이곳저곳을 둘러보자. 별다른 특이 사항이 없지만 Board를 클릭시 게시물 한개가 보이고, 이를 클릭해보니 비밀번호가 걸려있는 상당히 의심스러운 글이다. 한번 해당 비밀번호를 알아내보기위하여 소스코드를 살펴보자. 무엇을 의미하는지 딱히 정확한 정보가 없어서 index홈페이지로 돌아가 소스코드를 찬찬히 살펴본결과 두가지 의심스러운 점을 발견했다. 네비게이션 바의 등록되지 않은 admin이라는 페이지가 있고, admin이라는 페이지에 접속해보자. 아니나 다를까 어드민페이지에 비밀번호가 걸려있고, 또한 가지 index에서 이상한 점이 시간정보가 주석 처리되어있다. 굳이.. 더보기