목록전체 글 (151)
김승현
문제는 이렇게 생겼다. 코드를 자세히 살펴보자. login_chk(); $db = dbconnect(); if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); if(preg_match('/ /i', $_GET[pw])) exit("No whitespace ~_~"); 제일 먼저 login을 했는지 체크함 db연결 필터링 목록 no hack 1. prob 2. _ 3. . 4. ( 5. ) no whitespace 1. 띄어쓰기 $query = "select id from prob_wolfman where id='guest' and pw='{$_GET[pw]}'"; echo "query : {$query} "; $result = @mysq..
문제 문제는 이렇게 되어 있고 그냥 admin이 id로 입력되어 있고 pw에만 쿼리를 입력해서 sqli를 성공시키는 문제인 것 같다. 쿼리문을 확인해보면 select id from prob_orc where id='admin' and pw='{$_GET[pw]}' 이렇게 생겼다. pw에 적당한 값을 입력해보자. 이런 식으로 id가 admin이면 되게 했는데 Hello admin는 떴지만 orc clear! 가 뜨지 않았다. if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orc"); 자세히 코드를 보면 위의 내용을 볼 수 있는데 result의 pw가 파라미터인 pw와 동일해야지 문제가 풀리는 방식이다. blind sqli로 비밀번호를 한 자리 ..
7번 문제에 접속해보면 admin page라고 뜨고 auth라고 적힌 버튼이 하나 있고 밑에는 소스를 보는 링크가 있다. 여기 주소를 보면 val이라는 파라미터가 처음부터 주어져 있는 걸 볼 수 있는데 저걸 활용해서 푸는 문제인 것 같다. auth 버튼을 누르면 access_denied! 뜬다. 소스코드를 확인해 보자.
문제 분석 접속하면 이런 어두운 화면에 소스 보기와 id, pw를 볼 수 있다. 소스부터 확인해 보자. 이번 문제는 되게 간단한 문제이다. 대충 코드를 분석해보면 val_id에 guest, val_pw에123qw를 저장 val_id와 val_pw를 20번 base64 인코딩 함 두 변수들에 있는 1~8의 숫자들을 새로운 특수문자로 인코딩 함. user이라는 쿠키에 val_id 값을 저장, password라는 쿠키에 val_pw 값을 저장(time()내용은 만료시간인데 신경x) --------------------------------------------인코딩 파트↑ ↓디코딩 파트--------------------------------------------------------------- decode..
문제 분석 접속하면 이렇게 검은 화면에 login과 join 버튼이 있다. login은 말 그대로 login을 하는 창이 뜬다. join을 누르면 Access_Denied가 뜨면서 거절됐다고 뜬다. 개발자도구로 소스코드를 확인해보자. 풀이 login과 기본 페이지를 확인해봤는데 딱히 특별한 건 없어서 주소를 살펴봤더니 login 페이지의 주소가 mem/login.php인 걸 볼 수 있었다.비슷하게 mem/join.php로 한 번 접속해보자. 사진에서 볼 수 있듯이접속해보면 bye가 뜨고 그냥 검은 화면만 보인다. 소스코드를 확인해보자. 부분에 난독화된 javascript를 볼 수 있다. beautify js 사이트를 이용해서 일단 보기 좋게 만들어보자. l = 'a'; ll = 'b'; lll = 'c'..