728x90
728x90
1. 서론 본 포스트는 작은 서비스 규모에서의 각 Peer간의 서버측면 저비용 통신 서비스를 구현하는 것에 목적을 두고 있다. 물론 필자가 소개한 방법보다 더 효율적인 방법이 있을 수는 있다. 이에 대한 의견은 적극 수용하고 있으니 다른 의견이 있다면 댓글로 남겨주기 바란다. 2. 본론 2-1. 문제확인 Peer간 통신을 구현하는 방법으로는 여러방법이 있겠지만, 대표적으로 사용하는 방법으로 socket 통신이 있다. 특히 Web기반의 클라이언트에서는 앞에서 말한던 socket과 비슷한(엄밀이 말해서 둘이 다른 프로토콜이긴 함) WebSocket을 이용할 수 있다. WebSocket 서버를 가운데 두고 각 Peer가 WebSocket 서버에 바인딩이 되면 서버를 통해서 각 Peer가 Private Chan..
1. 서론 본 포스트는 Docker와 Jenkins를 이용한 Docker 배포 자동화를 구축하는 방법에 대한 내용을 다루고있다. 기본적으로 Ubuntu 기반의 환경을 기준으로 설정하고있음을 참고하길 바란다. 개발이 되는 중간중간에 배포가 필요할때 일일이 수작업으로 빌드하고 서버에 배포하는 반복과정을 여간 귀찮은 일이 아니다. 그래서 이러한 반복적인 빌드 및 배포과정을 편리하게 자동화할수 있는 CI/CD(Continuous Integration 지속적통합 / Continuous Deploy 지속적배포) 툴들이 많이 공개되어있다(역시 귀찮은거 못참는건 누구나 다 똑같다.) 그래서 이 Jenkins를 이용하여 Docker에 서비스를 빌드하고 배포하는 과정을 자동화해보려 한다. 그리고 Jenkins가 UI가 좀..
1. 서론 본 포스팅 시리즈는 webhacking.kr의 문제 풀이를 하면서 정리한 자료이다. 필자가 풀이한 방법들이기 때문에 완벽하지 않을 수도 있다는 점을 참고 바란다. (지적과 조언은 언제나 환영이다) 이번 문제는 old-24, PHP extract 함수의 취약점 활용이 필요한 문제이다. 2. 본론 이번 문제를 처음 접속하면 이러한 화면을 볼 수 있다. client ip라는 항목으로 접속자의 ip 주소가 보이고, 바로 아래에는 접속자의 브라우저 정보가 보인다. 그리고 표 아랫쪽에 "Wrong IP!"라는 문자열이 눈에 띈다. 아마 ip 주소를 조작해야하는 문제인 듯하다. 이건 이번 문제의 소스코드이다. 일단 문제 해결조건은 $ip 변수이 값이 "127.0.0.1"이 되도록 하는 것이다. 그럼 $ip..
1. 서론 본 포스팅 시리즈는 webhacking.kr의 문제 풀이를 하면서 정리한 자료이다. 필자가 풀이한 방법들이기 때문에 완벽하지 않을 수도 있다는 점을 참고 바란다. (지적과 조언은 언제나 환영이다) 이번 문제는 old-23, NULL Byte Injection 활용이 필요한 문제이다. 2. 본론 이번 문제에 접속하면 이런 화면을 볼 수 있다. 이번엔 이 페이지에 ""를 삽입하는 것이 목표이다. 그래서 우선 여러가지 케이스들을 넣어보고 상태를 관찰해보았다. 기본적으로 문자열을 입력한 후 submit을 하면 입력 폼 윗쪽에 흰색 텍스트로 나타나게 되는데, 일부 케이스에 경우 입력한 값이 그대로 출력되지 않고 "no hack"이라는 문자열이 나타난다. 현재까지 확인한 케이스들을 기반으로 규칙을 추정해..
1. 서론 본 포스팅 시리즈는 webhacking.kr의 문제 풀이를 하면서 정리한 자료이다. 필자가 풀이한 방법들이기 때문에 완벽하지 않을 수도 있다는 점을 참고 바란다. (지적과 조언은 언제나 환영이다) 이번 문제는 old-19, 쿠키와 Base64 활용이 필요한 문제이다. 2. 본론 이번 문제에 처음 접속하면 이러한 화면을 볼 수 있다. 따로 제공되는 소스코드도 없고 id 입력창과 제출버튼이 있다. 그리고 제출버튼을 눌러보면 GET 파라미터 "id"로 "admin"이라는 문자열이 전달되었고 페이지에는 "you are not admin"이라는 문자열이 출력된다. 아마 이번 문제는 admin으로 로그인하는 것이 해결 목표인듯하다. 그래서 이번엔 "admin"이라는 문자열 대신 다른 임의의 문자열을 보내..
1. 서론 본 포스팅 시리즈는 webhacking.kr의 문제 풀이를 하면서 정리한 자료이다. 필자가 풀이한 방법들이기 때문에 완벽하지 않을 수도 있다는 점을 참고 바란다. (지적과 조언은 언제나 환영이다) 이번 문제는 old-18, SQL injecion과 정규표현식 활용이 필요한 문제이다. 2. 본론 이번 문제에 처음 접속을 하면 처음부터 SQL injection을 시도하라고 친절하게 입력폼까지 제공해준다. 이번 문제의 해결조건을 파악하기 위해 소스코드를 확인해보겠다. 이게 이번 문제의 소스코드인데, 눈의 띄는 부분이 두 군데가 있다. 첫째론 정규식필터를 이용해 특정 문자열을 필터링하고 있는 것이고, 둘째론 쿼리를 요청하는 부분인데 거기에 주석으로 "admin의 no는 2"라고 써져있는 점이다. 이번..