목록분류 전체보기 (194)
Information Security
자바스크립트 퍼즐. 그냥 즐기세요! 퍼즐 조각을 클릭하면 옆으로 옮겨진다. QR 코드가 되도록 퍼즐을 맞추면 된다. 즐기고 싶지 않다면 소스를 확인한다. img 태그에 src 속성이 없다. $('#join_img').attr('src',unescape('.%2f%69%6d%67%2f%71%72%2e%70%6e%67')); 소스 위 쪽을 보니 jquery의 attr() 함수를 이용해서 src 속성을 설정해주고 있다. ※ unescape는 escape로 이스케이핑 된 문자열을 정상적인 문자열로 되돌려주는 역할을 한다. https://opentutorials.org/course/50/199 참고 src 속성의 값을 Console에서 확인해보니 ./img/qr.png이다. 해당 경로를 url로 접속해보니 QR ..
Wargame.kr wargame.kr에 접속하여 로그인 후 [Wargame] -> [Challenge]에 들어가면 문제를 풀 수 있다. 문제를 풀 때마다 포인트가 오른다. HTTP Response 헤더를 볼 수 있나요? -> [Start] 클릭 당신은 이미 키를 가지고 있습니다! 개발자 도구(F12)의 [Network] 탭에서 Response Header를 확인할 수 있다. Response Header에서 FLAG 값을 찾았다. 이렇게 FLAG 값을 넣어주고 [Auth]를 누르면 문제가 해결된다.
[OverTheWire] NATAS8 encodeSecret 함수가 정의되어 있다. POST 방식으로 전달된 값은 해당 함수를 통하여 암호화될 것이다. 그 값이 코드의 맨 위에서 정의되어 있는 encodedSecret 변수의 값과 같아야 패스워드가 출력된다. encodedSecret 변수의 값을 복호화하는 함수 decodeSecret를 작성했다. hex2bin 함수를 사용할 수 없어서 pack()함수로 대체했다. ※ The pack() function packs data into a binary string. 작성한 PHP 코드를 실행해서 복호화한 값을 얻었다. 해당 값을 전달하면 encodeSecret 함수에 의하여 다시 암호화될 것이다. 그리고 encodedSecret 변수의 값과 같아져서 if 문에..
[OverTheWire] NATAS7 소스를 확인해보니 GET 방식으로 page 변수를 정의하고 있다. page 변수의 값으로 home을 주면 위와 같은 메시지가 출력된다. home 파일에 접근해보았다. 파일의 내용은 위와 같다. page 변수에 파일을 주면 그 내용이 출력되는 것이다. 그럼 이제 힌트를 확인한다. natas8의 패스워드는 /etc/natas_webpass/natas8에 있다. page 변수의 값으로 패스워드가 있는 파일의 경로를 전달했더니 패스워드가 출력되었다.
[OverTheWire] NATAS6 [View sourcecode]를 클릭하면 PHP된 서버의 코드를 볼 수 있다. POST 방식으로 전달 받은 secret 변수의 값이 secret 변수와 같으면 된다. 그런데 현재 페이지에서는 secret 변수가 정의되지 않고 있다. include "includes/secret.inc"; includes/secret.inc 파일을 include하고 있어서 해당 파일에 접근해보았다. 해당 파일에서 secret 변수를 정의하고 있다. secret 변수의 값을 POST 방식으로 전달했다. 패스워드가 출력되었다.
[OverTheWire] NATAS5 또 접근이 허용되지 않고 있다. 당신은 로그인하지 않았습니다. 헤더에서 쿠키를 확인해보니 loggedin이라는 변수가 존재한다. You are not logged in 이라는 말은 변수 loggedin의 값이 0이라는 말과 같다. loggedin의 값을 1로 주기 위해서 패킷을 변조한다. 접근이 허용되면서 패스워드가 출력되었다.
[OverTheWire] NATAS4 [Refresh page]를 클릭 접근이 허용되지 않는다. 당신은 http://natas4.natas.labs.overthewire.org로부터 방문하고 있다. http://natas5.natas.labs.overthewire.org로부터 방문해야 한다. 처음에는 어디로부터 방문하고 있는지 출력하지 않다가 [Refresh page]를 클릭하니 하이퍼 링크를 통해 index.php로 이동하면서 http://natas4.natas.labs.overthewire.org로부터 방문하고 있는 것을 출력한다. Request 헤더의 Referer 헤더를 출력하고 있는 것이다. Referer 헤더는 어떤 페이지로부터 현재 페이지를 접속했는지를 표시한다. 현재 Referer 헤더는 ..
[OverTheWire] NATAS3 이번에도 페이지에 아무것도 없다. 소스에도 주석 한 줄 밖에 없다. 더이상 정보 유출은 없고 심지어 구글도 이번에는 못찾을 것이라고 한다. ★ robots.txt 사이트에서 검색 엔진 크롤러(로봇)가 접근하지 않기 바라는 부분을 표시한다. 이 파일에 등록된 디렉터리는 검색이 되지 않는다고 한다. 그래서 구글(로봇)도 못 찾는다고 했나 보다. robots.txt 파일은 웹 사이트의 최상위 경로(루트)에 위치 한다. 확인해보니 s3cr3t 디렉터리에 접근하기를 원하지 않고 있다. 접근을 원하지 않는 걸 보니 비밀이 있는 것 같다. secret 디렉터리에 접근을 시도한다. users.txt 파일이 있다. 이렇게 natas4 패스워드를 확인할 수 있다.
[OverTheWire] NATAS2 이번에는 페이지에 아무것도 없다. 소스를 봐도 패스워드가 없지만 갑자기 img 태그가 있다. 수상해서 클릭해보았다. 저 하얀색 점이 이미지인가 보다. 이미지 파일이 없는 것처럼 보이려고 한 것이다. pixel.png 파일은 files 디렉터리의 하위에 위치한다. 한 번 files 디렉터리에 접근을 시도해보았다. files 디렉터리에서 파일 users.txt를 발견했다. 앨리스, 밥, 찰리, 도청자 이브, 공격자 맬로리의 패스워드 사이에서 natas3의 패스워드를 발견했다. 이렇게 사용자들의 패스워드가 들어있는 파일을 URL을 통해 접근이 가능한 것은 웹 서버가 매우 취약하다는 것이다. 중요한 디렉터리는 접근 제한을 해야 한다. 찾아보니 이렇게 웹 서버의 디렉터리에 접..