Web Hacking/Webhacking.kr 8

[Webhacking.kr] old-6

이 창이 뜨면서 시작한다.ID와 PW가 적혀있는걸 보니 ID와 PW를 찾는 문제같음.소스코드로 들어가 보면 이렇게 되어있다.  for($i=0;$i처음 코드를 보면 id를 20번의 인코딩을 한 후에 쿠키값에 저장해준다.현재는 첫 화면에 있던 ID: guest PW:123qwe 로 들어가있다. for($i=0;$i 디코딩도 같은 방법으로 20번의 디코딩을 한다.그리고 마지막 줄을 보면 if($decode_id=="admin" && $decode_pw=="nimda"){solve(6);아이디는 admin 패스워드는 nimda 일때 문제가 해결된다고 한다.그래서 admin과 nimda를 20번 인코딩해봤다. - 사용한 인코딩 프로그램 코드20번 인코딩이된 ID와 PW값을 쿠키에 넣은 후 forward를 눌렀더..

[Webhacking.kr] old-31

이 창이 뜨고 시작한다. $port = rand(10000,10100); // 10000~10100 사이의 랜덤한 포트 번호를 생성하여 $port 변수에 저장.$socket = fsockopen($_GET['server'],$port,$errno,$errstr,3) or die("error : {$errstr}"); // 특정서버와 포트로 연결시도 , 연결 실패시 에러번호, 에러메시지 저장, 타임아웃3초 에러메시지Warning: fsockopen(): unable to connect to 218.39.203.58:10003 (Connection timed out) in /var/www/html/challenge/web-16/index.php on line 23 error : Connection timed..

[Webhacking.kr] old-17

입력창이 뜨고 시작. check를 눌러봤더니 Wrong이라고 뜬다.그래서 소스코드를 열어봤다. passwd를 찾아내면 되는 거 같다.unlock에 엄청 긴 계산식이 있는데 function sub(){ if(login.pw.value==unlock){ location.href="?"+unlock/10; } else{ alert("Wrong"); } } 이 부분을 보면 unlock을 계산해 넣어보면 될 거 같았다.그래서 저 수식을 계산할 방법을 찾아봄. 시도1) gpt 한테 계산하라하기.→ 계속해서 다른 값을 줘서 정확하지 않음.시도2) 개발자 도구 사용.GPT한테 웹페이지에서 소스코드 계산식 계산하는법을 물어보니 개발자 도구를 이용한 방법을 알려줬다  알려준 방법 그대로 계산식을 넣어 계산한 값을 입력창에..

[Webhacking.kr] old-39

이런 창이 뜨고 시작한다.아무 값이나 넣어서 제출을 눌러도 아무 변화가 없어서 소스코드를 봤다.     '{$_POST['id']}")) 이 부분을 보면 ' 가 안 닫혀있는데 '를 닫아서 아이디를 입력해야 해결창이 뜬다.하지만 $_POST['id'] = str_replace("'", "''", $_POST['id']); 이 부분에서 '를 ' '로 대체한다고한다.아이디 길이는 14미만이어야 하기때문에 15번째에는 '를 넣고 앞엔 문자와 공백으로 채워준다. **궁금한점 : aaaaaaaaaaaaa '는 a가 13글잔데 왜 안되는가.→ '까지 총 14글자로 인식하기 때문에다시시도 : aaaaaaaaaaaa ' a가 12글자이하부터는 됨.

[Webhacking.kr] old-16

한버니 완전 첫 워게임 풀기 성공 location.href=string.fromCharCode(cd)+”.php”;//do it! 이 써있고 마지막 한 줄만 다른이 부분이 수상했음.뭔가를 하면 location.href 때문에 페이지 이동을 할 거 같다. 시도1) 먼저 cd== 124를 URL에 추가해봄.  작은별의 색만 달라지고 페이지 이동은 안한다.  시도2) 아스키코드에 맞게 넣어보기fromCharCode()는 문자를 아스키코드로 변환하는 함수.cd= 124 니까 124번인 코드를 찾아봤더니 이게 나왔다.  로그인하라는 창이 뜸. ….?  다시했더니잘뜸.

[Webhacking.kr] old-26

view-source를 클릭하면 .php파일이 나오고 시작한다. if(preg_match("/admin/" ,$_GET['id'])) {echo"no!"; exit(); } id 에 문자열로 admin이 들어가있으면 no라고 뜨고 나가짐. 디코딩 후에 정확히 “admin” 과 일치해야 해결되는데,그러려면 디코딩 전에 문자열은 “admin”아니지만 디코딩 후에는 “admin”이 출력돼야할 거 같음.admin 글자사이에 특수문자를 넣거나 디코딩 시에 인식되지 않는 문자를 넣어야될듯.혹은 디코딩을 우회하는 이중 인코딩방법도 있음.*이중 인코딩(Double(URL) Encoding)이란: 동일한 인코딩 체계를 사용해 이중으로 인코딩한 것.→ url인코딩 된 값을 필터링에 한번 적용시킨 경우 이중 인코딩을 통해 ..

[Webhacking.kr] old-15

첫 화면은 Access_Denied가 뜬다.   alert(”Access_Denied”)가 html에 들어있어 시작할 때 이 창이 뜸.  확인 버튼을 누르면 홈화면으로 돌아감.*location.href(페이지 이동) 루트 화면으로 돌아가지 않고 Get Flag가 있는 다음 페이지로 넘어갈 수 있게 location.herf=’/’ ; 줄 전체를 삭제해봄.풀렸음. alert : 대화상자location.href= : 페이지 이동document.write : 출력