[webhacking.kr] old-5 문제
·
워게임/webhacking.kr
1. 문제 정보문제 번호 : old -5문제 점수 : 30점2. 문제 분석문제에 들어가면 join과 login이 보인다. 조인을 누르면 access denied가 뜬다. 로그인을 보자 로그인 창이 나오고 아이디 비밀번호를 마구잡이로 입력해도 안된다. https://webhacking.kr/challenge/web-05/mem/login.php에서 mem이 새로 있길래 혹시 웹서버의 Directory Listing(디렉토리 리스팅) 취약점이 있을 거 같아서 요청해보니까 index가 나왔다, join을 들어가보니 join에서 bye가 뜨고 엑세스가 거부되었다. 코드를 봐보자 l='a';ll='b';lll='c';llll='d';lllll='e';llllll='f';lllllll='g';llllllll..
[webhacking.kr] old-3 문제
·
워게임/webhacking.kr
1. 문제 정보문제 번호 : old -3문제 점수 : 30점2. 문제 분석문제에 들어가면 nonogram이 나오고 nonogram을 처음 풀어봐서 위키 피디아를 참고해 룰을 보았다.https://ko.wikipedia.org/wiki/%EB%85%B8%EB%85%B8%EA%B7%B8%EB%9E%A8#:~:text=%EB%85%B8%EB%85%B8%EA%B7%B8%EB%9E%A8(%EC%98%81%EC%96%B4%3A%20Nonogram%20%2C,%EB%84%A4%EB%AA%A8%EB%84%A4%EB%AA%A8%20%EB%A1%9C%EC%A7%81%EC%9D%B4%EB%9D%BC%EA%B3%A0%20%EB%B6%88%EB%A6%B0%EB%8B%A4. 노노그램을 풀면 아래 그림처럼 나온다.클리어하면 l..
[webhacking.kr] old-7문제
·
워게임/webhacking.kr
1. 문제 정보문제 번호 : old -7문제 점수 : 30점2. 문제 분석문제에 들어가면 admin page라고 나오고 아무것도 없다. auth를 누르면 access_denied가 뜬다. 소스코드를 확인해보자val을 받아서 정규식과 매치한 다음에 rand값에 맞춰 query를 가져온 다음 data [0] 값이 2이면 문제가 풀린다. "); }echo("Admin page");if(preg_match("/2|-|\+|from|_|=|\\s|\*|\//i",$go)) exit("Access Denied!");$db = dbconnect();$rand=rand(1,5);if($rand==1){ $result=mysqli_query($db,"select lv from chall7 where lv=($go)..
[webhacking.kr] old-11 문제
·
워게임/webhacking.kr
1. 문제 정보문제 번호 : old -11문제 점수 : 30점 2. 문제 분석문제에 들어가면 wrong이라고 뜨고 아무것도 안뜬다 소스코드를 봐보자 Wrong"); echo("");?>view-source 소스코드에서는 val을 입력받아 preg_match즉 정규식을 받아서 처리하고 있다. 알맞은 정규식을 val로 보내 통과해보자3. 풀이$pat="/[1-3][a-f]{5}_.*$_SERVER[REMOTE_ADDR].*\tp\ta\ts\ts/"; 을 통과하려면 [1-3] 문자열의 시작은 숫자 1, 2, 3 중 하나여야 한다.[a-f]{5} a부터 f 사이의 소문자 알파벳이 정확히 5개 이어져야 한다._ 밑줄(_) 문자가 하나 있어야 한다..* 줄바꿈을 제외한 임의의 문자가 0개 이상 올 수 있..
[webhacking.kr] old-4 문제
·
워게임/webhacking.kr
1. 문제 정보문제 번호 : old -4문제 점수 : 30점 2. 문제 분석문제를 보면dd156f7cf80164fd8afbc11c95d0e33e237d0275 가 있고 password를 제출하는 칸이 보인다. 코드를 확인해보자. Password[view-source] 가장 중요한 부분은 천만~1억 사이의 숫자에 salt_for_you 더 한값을 session값에 저장하고 sha1을 으로 500번 더한 값을 $hash로 나타낸다. 그 값이 처음 문제에 나온 값이다.dd156f7cf80164fd8afbc11c95d0e33e237d0275 게다가 한번 잘못 요청하면 값이 바뀐다. 3. 풀이이 문제는 90000000번 동안 루프를 돌아 맞는 값을 찾을 수 도 있지만 메모리가 너무 많이 든다.따라서 100000..
[webhacking.kr] old-56 문제
·
워게임/webhacking.kr
1. 문제 정보문제 번호 : old -61문제 점수 : 25점 2. 문제 분석56번 문제에 들어가면 BOARD가 들어가고 search가 나온다. subject에서 readme를 누르면 access denied가 뜨고 hi~를 누르면 hello가 나온다. read me에 내용을 읽어야할 것 같다.search버튼에 1,id, sub,0을 눌러도 아무것도 안나온다 하지만 hi를 눌러보면 admin이 나왔다그래서 내용을 기반으로 검색하는 거 같아 hello를 검색하니 guest가 나왔다. sql에서 검색을 아래 쿼리로 하고 있는 것 같다.SELECT * FROM board WHERE content LIKE '%{검색어}%'3. 풀이내용을 바탕으로 검색하니까 readme의 내용을 유츄해보면 flag가 있을 것이..
[webhacking.kr] old-59 문제
·
워게임/webhacking.kr
1. 문제 정보문제 번호 : old -61문제 점수 : 20점 2. 문제 분석문제에 들어가면 join과 login에 맞춰 제출 버튼이 나온다. 아마도 join으로 회원가입 후 login으로 들어가는 것 같다.join에 a랑1을 입력하고 login을 해보면 이렇게 나온다 소스코드를 봐보자 소스코드를 보면 lv값이 admin이여야 solve함수가 호출된다. lv : {$result['lv']}"; if($result['lv'] == "admin"){ mysqli_query($db,"delete from chall59"); solve(59); } echo "view-source"; exit(); } } if($_POST['id'] && isset($_POS..
[webhacking.kr] old-61 문제
·
워게임/webhacking.kr
1. 문제 정보문제 번호 : old -61문제 점수 : 20점 2. 문제 분석문제에 들어가면 view-source만 나온다 소스코드를 확인해보자소스코드눈 PHP로 되어 있으며 id값을 파라미터로 받아서 addslash와 preg_match로 필터링하고 있다. 또한 최대 id값은 15개이다."; echo "view-source"; $_GET['id'] = addslashes($_GET['id']); if(preg_match("/\(|\)|select|from|,|by|\./i",$_GET['id'])) exit("Access Denied"); if(strlen($_GET['id'])>15) exit("Access Denied"); $result = mysqli_fetch_array(mysqli_..
[webhacking.kr] old-10 문제
·
워게임/webhacking.kr
1. 문제 정보문제 번호 : old -10문제 점수 : 25점2. 문제 분석 문제를 들어가면 0이 보이고 코스가 보인다. 0을 누르면 y0u가 나오고 앞으로 한칸 간다.goal까지 들어가야하는 문제 같다. 소스코드를 보면 한번 누를때마다 1씩 올라가고 1600번에서 if문이 실행된다. O||||Goalno hack 3. 풀이this.href='?go='+this.style.left를 보고 ) ?go=1600px를 해봤는데 no hack이 나온다. 자바스크립트 콘솔에서 hackme.style.left = "1590px"를 하고 10번 클릭하니까 성공했다. 주소에서 바로 안되는 이유는 주소창에 직접 입력했을 때 no hack이 뜨는 이유는 서버가 요청의 출처(Referer)를 검사하기 때문일 가능성이 매..