목록전체 (42)
whois
[그림 1] 54번 문제 54번 문제를 클릭하게 되면 잠시 있다가 ? 자리에 문자와 숫자들이 빠르게 바뀌는 것을 볼 수 있다. [그림 2] 문제 소스 크롬에서 54번의 소스를 확인해 보았다. 중요한 부분은 answer 함수로 GET 메소드를 통해 m이라는 변수에 값을 넣어주게 된다. run 함수의 반환 텍스트를 aview.innerHTML 변수에 넣고 반복적으로 i 값을 증가시키며 함수를 실행시키다가 공백 문자를 만나면 aview.innerHTML 변수를 ?로 치환하는 흐름이다. [그림 3] 개발자 도구의 네트워크 탭 크롬에선 단축키 F12 개발자 도구를 열어 네트워크 탭에 들어가 확인해 보았더니 그림 2에서 설명한 것과 동일하게 m의 값이 1씩 증가하면서 각각은 다른 문자 또는 숫자를 담고 있는 것을 ..
HTTP는 메시지 기반 모델로서 클라이언트가 요청 메시지를 보내고 서버가 그에 대한 응답 메시지를 보내는 방식이다. 요청과 응답에 대한 교환은 독립적으로 취급돼 각기 다른 TCP 연결을 사용한다. 따라서, 비연결지향적 프로토콜이라고 한다. HTTP 메소드- GET 메소드 : 웹서버에 있는 자원을 얻을 때 사용하며, 요청된 자원의 URL 쿼리 문자열에 인자 값을 보내는 용도로도 사용할 수 있다. 이를 통해 사용자들은 URL을 동적인 자료로 즐겨찾기에 저장해두고 나중에 같은 자원을 찾을 때 활용할 수 있다.- POST 메소드 : 특정 행동을 시작할 때 사용한다. POST 방식을 이용해 요청 인자를 URL 쿼리 문자열이 아닌 메시지의 바디에 보낼 수 있다.- HEAD 메소드 : 요청과 비슷하게 작동하는 메소드..
HTTP는 가볍고 비접속 기반이다. 일반적으로 알려진 취약점- 인증 실패 : 이 범주의 취약점은 애플리케이션의 로그인 메커니즘상의 다양한 취약점을 아우르는 것으로, 쉽게 추측 가능한 비밀번호를 허용한다든지 무차별 대입 공격을 허용하거나 인증을 우회하는 것을 허용하는 취약점이 포함된다.- 접근 제어 실패 : 이 범주는 애플리케이션이 민감한 데이터나 기능에 대해 불법적인 사용자의 접근을 제대로 제어하지 못하는 것으로 공격자가 서버 내의 다른 사용자의 민감한 데이터를 열람한다든지 서버 관리자용 업무를 임의로 수행하는 것을 차단하지 못하는 것을 가라킨다.- SQL 인젝션 : 이 취약점은 공격자가 웹 애플리케이션에 특별히 조작된 입력 값을 제공해 해당 애플리케이션이 뒷단의 데이터베이스와 연동하는 과정에서 공격자가..
[그림 1] 10번 문제 10번 문제를 클릭하게 되면 그림 1과 같은 화면을 볼 수 있다. O를 움직여 buy lotto까지 가게 만들면 문제를 풀 수 있을 것 같다. [그림 2] O 클릭 머리를 쓰기 전에 무식하게 O를 클릭해 보았더니 오른쪽으로 열심히 이동하는 것을 볼 수 있었다. 계속 클릭하면 어느 순간 도달할 수도 있겠지만 손가락이 아프기에 전략적으로 풀어볼 방법을 궁리했다. 아 참고로, 크롬에서는 제대로 동작 안해서 IE를 열어 문제를 풀었다. [그림 3] 소스 보기 F12 개발자 모드를 열어 소스를 보게 되면 O를 클릭하면 왼쪽에서 +1 되어 오른쪽으로 이동하게 되는데 왼쪽에서 800만큼 떨어질 때 go라는 변수를 넘겨주는 것을 알 수 있다. 따라서, 우리는 800이라는 숫자를 맞춰줘야 한다...
임베디드 시스템이란?임베디드 시스템은 하드웨어와 소프트웨어의 조합으로 특정 기능을 수행하는 컴퓨터 시스템이다. 또한, 많은 시스템의 한 부분 또는 독립적인 형태이다. 임베디드 시스템의 3가지 요소① 하드웨어를 갖는다.② 애플리케이션 소프트웨어를 갖는다.③ 애플리케이션을 관리하는 실시간 운영체제를 갖는다. M2M(Machine to Machine): 기계간의 이루어지는 통신. IoT(Internet of Things): 사물간의 통신에 "지능"이라는 특성이 더해지고 보안의 중요성이 강조됨. Malware 획득 관점① 외부 인터페이스 빈약(FTP, Telnet, UART, USB, JTAG, Display) 등.② Memory chip-off를 통해 추출 가능. Malware 분석 관점① 다양한 CPU 코어..
[그림 1] 17번 문제 17번 문제를 클릭하게 되면 그림 1과 같은 창을 볼 수 있다. 어떠한 값을 넣고 제출하면 flag를 던져주는 방식인 듯 하다. [그림 2] 17번 소스 소스 보기를 하면 그림 2와 같은 코드가 나오게 되는데 unlock이라는 변수를 주고 클라이언트가 입력한 값과 같다면 "Password is ______"를 띄워주고 다르다면 Wrong 띄우는 루틴이다. [그림 3] unlock 값 필자는 문제를 풀 때 크롬을 사용하는데 F12 버튼을 누르면 개발자 모드가 열리게 된다. unlock의 식을 복사하여 개발자 모드의 콘솔 창에 붙여 넣으면 자동으로 계산해준다. unlock의 값이 '9997809307'이라는 것을 알았다. [그림 4] flag 그림 3에서 얻은 unlock의 값을 그..
[그림 1] 16번 문제 16번 문제를 클릭하게 되면 그림 1과 같은 화면이 뜨게 된다. 큰 * 한 개와 작은 * 두 개가 검은 바탕에 찍혀 있는 것을 볼 수 있다. [그림 2] level16 소스 그림 1을 보고 막막해서 먼저 소스 보기를 하였더니 그림 2와 같은 코드를 볼 수 있었다. mv 함수에서 키보드로 입력한 값을 받고 kk 함수를 실행하여 '*'을 찍게 된다. mv 함수의 젤 마지막 부분 코드를 보면 인자로 받은 cd 변수의 값이 124이면 문자열이 들어 있는 위치로 이동하게 된다. 여기서 문자열이 flag라는 것을 유추할 수 있다. 이 때 124란 10진수를 뜻하며 ASCII 코드를 확인 하였을 때 shift+\ 즉, '|' 키 값을 의미한다. [그림 3] flag '|' 키를 누르면 웹 페..
[그림 1] 15번 문제 15번 문제를 클릭하게 되면 그림 1과 같은 '접근 거부'라는 문구가 뜨게 된다. [그림 2] flag 그림 1 메세지 창에서 확인 버튼을 누르면 새로운 웹 페이지로 이동하면서 그림 2와 같은 문구가 잠깐 뜨고 다시 http://webhacking.kr/index.php?mode=challenge 페이지로 이동하게 된다. [그림 3] flag 입력 Webhacking.kr 상단바에 있는 Auth 버튼을 클릭하게 되면 그림 3과 같은 창이 나오는데 그림 2에서 본 'off_script'를 입력하고 제출한다. [그림 4] 성공 혹시나 하고 넣어 봤는데 50점짜리답게 쉽게 풀렸다!
[그림 1] 6번 문제 6번 문제를 확인해보니 정보들이 꽤나 많다. ① 힌트는 base64. ② index.phps. ③ ID와 PW는 각각 guest, 123qwe [그림 2] 소스 확인 index.phps로 들어가라고 유도했으니 먼저 확인해 보았다. 그림 2는 왼쪽에서 오른쪽으로 이어지는 소스이다. 초기 쿠키로 user와 password 변수를 주고 값은 val_id, val_pw를 각각 20번씩 base64 인코딩한 값을 담고 있다. 그리고 문제가 풀어지는 조건은 20번 디코딩한 user와 password의 쿠키 값이 admin이여야 한다는 것이다. [그림 3] base64 인코딩 코드 작성 온라인 base64 인코딩 사이트를 이용해 20번씩이나 손수 돌리긴 귀찮으니까 간단한 base64 인코딩 코..
[그림 1] 4번 문제 4번 문제를 들어가면 그림 1과 같은 창을 볼 수 있다. 초록색 글씨로 된 부분을 보자마자 드는 생각은 base64이기에 디코딩 해보았다. [그림 2] base64 디코딩 그림 1에서 보이는 초록색 값을 복사 붙여넣기 하여 디코딩 해보면 그림 2와 같은 결과 값이 나온다. 나온 결과 값을 그림 1에서 보이는 Password 박스에 넣어 제출하였더니 아무 반응을 보이지 않아 살짝 당황했었다. 'c4033bff94b567a190e33faa551f411caef444f2' 이 값을 한 번 더 base64 디코딩 하여도 아무 값이 안 나온다. [그림 3] 첫 번째 SHA-1 디코딩 곰곰히 생각하다가 그림 2에서 얻은 결과 값의 글자 개수를 세아려 보니 40글자였다. 'md5가 32개의 헥사..