Maru's
25번 화면의 페이지의 문제는 file에 입력받아 그 입력된 것에 따라서 출력 되는 것으로 보입니다. 소스를 확인해보면 아무것도 힌트를 얻을 수 없습니다. 혹시나 파일에 다른것을 입력 해보지만 아무런 반응이 없습니다. 여기서 예상 해 볼 수 있는 것은 hello.txt의 내용이 hello world이고 hello를 입력 값으로 주었을 때 hello.txt가 출력된 다고 볼 수 있습니다. 그러므로 입력 값 뒤엔 .txt가 붙는 소스가 첨가 되 있을 것 같습니다. 문제에 문자열끝을 알려주는 널문자를 첨가하여 File에 Password.php%00을 넣어준다면 널문자까지 문자열 끝으로 인식해 password.php가 출력 됩니다.
26번 문제를 들어가면 index.phps라는 링크가 나온다. 클릭해보면 이런 소스를 볼 수 있다. 소스를 보자면 eregi함수로 GEt[id]가 admin일 경우 no!를 출력한다. 그리고 GET[id]는 Urldecode되어서 다시 GET[id]로 들어간다. 그 이후 if문이 나오는데 GET[id]가 admin일 경우 문제가 해결된다고 되어있다. 일반적으로 admin을 URL인코딩 해서 입력하면 된다고 생각 할 수 있다. 하지만 no!를 출력한다. 그 이유는 기본적으로 URL인코딩 되어 넣어주면 그 값을 디코딩을 한번 해주기 때문이다. 그렇기 때문에 admin의 인코딩 값인 %61%64%6d%69%6e를 다시 인코딩 해준다. 값을 넣어주면 풀리는 걸 알 수 있다. 주의점은 admin을 두번 인코딩 해..
처음 클릭해 보면 client ip(현재 제 IP가 나오기 때문에 지웠습니다) agent가 나옵니다. 그리고 소스를 보려 Burp Suite로 확인해 보면 주석처리된 source : index.phps를 볼 수 있습니다. 그리고 index.phps로 이동할 수 있습니다. index.phps에 들어가서 소스를 보면 extract($_SERVER); extract($_COOKIE); 로 서버와 쿠키의 배열의 키값을 변수화 주게 된다. 그리고 ip변수에 REMOTE_ADDR(사용자가 현재 페이지를 보고 있는 시스템의 IP 주소 환경변수임)를 넣어주고 agent에는 USER_AGENT 값을 넣어줍니다. 그리고 그 밑의 if문을 보면 문자열 변경함수로 ip의 변수값에 12가 잇으면 공백 7.이 있으면 공백 0.이..