컴퓨터 썸네일형 리스트형 webhacking.kr [문제 7번] 두번째 라인의 첫번째 문제인 7번 문제를 풀어보자. 문제의 점수는 300point이다. auth 버튼을 클릭해보자. 당연히 나에게 인증권한을 쉽게 줄리가 없다. 이제 한번 소스코드를 확인해보자. 소스코드를 확인해본 결과 val값이 2일때 admin mode를 주어진다고 나와있으며 해당 서버의 php파일은 index.phps로 되어있다. 한번 val값을 2로 설정한 후 해당 페이지를 확인해보자. 다시 해당 페이지의 소스코드를 확인해보자. 별 내용이 없으므로. 이제 index.phps를 확인해보자. 해당 소스코드를 보니 라는 힌트와 함께 언뜻봐서 쿼리를 날리는 코드가 보인다. 생각보다 소스코드가 길다. 이제 해당 소스코드를 분석해보자. 해당 파트를 확인해보면 GET방식으로 넘어온 변수 val값을 받아서 go.. 더보기 webhacking.kr [문제 6번] 첫번째 라인의 마지막 문제인 6번 문제를 풀어보겠다. 문제의 점수는 100point이다. 상대적으로 다소 쉬운 문제일 것으로 예상된다. 힌트가 base64로 주어져있다. 이를 볼때 base64를 이용한 문제풀이일 것으로 예상된다. index.phps를 클릭해보자. 해당 페이지의 소스코드 일부이다. 이제 해당 소스코드를 조금더 구체적으로 분석해보자. 해당 소스코드에 주석을 달아놓았다. 소스코드를 보고 생각하여 보면 문제 해결 전략이 나온다. 두번째 파트의 디코드 과정을 거쳐서 decode_id와 decode_pw에 담긴 문자열이 모두 "admin"이 되게끔 하면 된다. 디코드 과정전의 변조할 쿠키의 값을 알아보면 되는데, 해당 과정을 시중에 나와있는 소스코드를 조금 수정하여 작성하였다. import bas.. 더보기 webhacking.kr [문제 4번] 4번 문제를 살펴보면 해당 점수가 150point로 확인된다. 특정한 문자열을 보여주며 해당 비밀번호를 입력하게 되어있다. YzQwMzNiZmY5NGI1NjdhMTkwZTMzZmFhNTUxZjQxMWNhZWY0NDRmMg== 특정한 문자열을 일반적으로 볼수없는 형태의 문자열이며 무언가 숨겨져있다는 생각이 든다. 그러한 이유에서 조금더 고려해보면 해당 문자열이 암호화 되어있지 않을까라는 전제에 도달한다. 해당 문자열은 마지막에 추가로 '=' padding 문자가 붙게되는 데 이를 통해 base64로 인코딩 되어있다는 것을 알 수 있다. 과연 해당 널패딩이 붙게되면 왜 base64로 인코딩 되어있다고 생각할 수 있을까 base64 인코딩 방식을 확인해보자. base64란 무엇일까? 컴퓨터는 기본적으로 1과 .. 더보기 인공지능, 머신러닝 그리고 딥러닝 2016년 3월 인류에게 있어서 잊지못할 하나의 사건이 발생했다. 알파고와 이세돌 9단과의 바둑 경기에서 이세돌 9단이 승리할 것이라는 모두의 예상과는 달리 알파고(AlphaGo)의 불계승으로 경기는 종료되었다. 과연 인공지능이라는 것이 무엇이기에, 사람의 지혜와 경험을 넘어서는 인류최고의 발명품이라고 불리는 것일까. 그동안의 바둑이라는 스포츠는 컴퓨터가 인간을 뛰어넘을 수 없는 창의적 사고활동이라는 말이 있었다. 이유를 구체적 살펴보면 컴퓨터는 전기 신호를 이용하기 때문에 계산이 엄청나게 빠르지만 그래도 바둑의 모든 경우의 수를 전수조사하기 위한 한계가 있다. 네덜란드의 컴퓨터 과학자 존 트럼프는 바둑판의 격자가 2x2인 경우부터 착수 경우의 수와 해당하는 착수 비를 계산하였다. 결과는 다음과 같았다... 더보기 python을 이용한 파일 송수신 프로그램 다음 프로젝트는 서적 '초보자를 위한 파이썬 200제'를 기반으로 한 포스팅입니다. 현재 21세기에서 우리는 네트워크를 통해 수많은 데이터를 주고받는다. 예를들어 우리가 아는 아프리카 TV는 UDP 이용한 동영상 스트리밍 서비스가 될 수 도있고, 즐겨하는 게임의 설치파일을 다운로드 하는 등의 다양한 파일이란 데이터도 주고 받을 수 있다. 이번 예제에서는 소켓을 이용한 파일의 송수신을 다뤄보겠다. 먼저 임의의 파일을 제공하기 위한 파일을 가지고 있는 서버가 필요하며, 실제로 파일을 요구하는 클라이언트가 필요하다. 이해를 돕기위한 모식도를 그려보면 다음과 같이 왼쪽의 3가지 컴퓨터(노트북, 스마트폰, 데스크톱)이 실제로 인터넷을 통해 서버에 파일을 요청하는 것을 알 수 있다. 그렇다면 우리는 파일을 제공하기.. 더보기 python을 이용한 간단한 슈팅게임 만들기 다음 프로젝트는 서적 '초보자를 위한 파이썬 200제'를 기반으로 한 포스팅입니다. C나 C++을 이용해서 일반적인 게임을 구현하기 위해서는 파이썬에 비해 상대적으로 고려해야 할 것이많다. 허나 파이썬에서는 pygame이란 SDL(Simple DirectMedia Layer)기반의 게임 제작을 위해 사용되는 파이썬 확장 라이브러리를 이용하여 보다 손쉽게 게임을 개발할 수 있다. SDL은 C언어로 구현된 크로스플랫폼 멀티미디어 라이브러리이며, 비디오, 오디오, 사용자 입력 등과 같은 관련된 처리를 편리하게 수행 할 수 있도록 해준다. 실제로 만들 게임은 비행기(플레이어)가 날아오는 적을 격추시키는 간단한 형태의 슈팅게임인데, 시간이 지날수록 적의 속도가 빨라진다. 일반적인 게임의 규칙은 적과 비행기(플레이.. 더보기 python을 이용한 웹서버 로그 처리하기 다음 프로젝트는 서적 '초보자를 위한 파이썬 200제'를 기반으로한 포스팅입니다. IT시대에서 많은 사람들은 인터넷 익스플로러나 크롬 등과 같은 인터넷 웹브라우저를 이용하여 웹서버에 접속하여 다양한 콘텐츠를 제공받습니다. 웹서버는 웹브라우저의 요청에 대해 필요한 작업을 수행하고 HTML 페이지를 구성한 후 웹브라우저로 응답합니다. 이때 웹서버는 웹브라우저의 요청에 대한 응답 내용을 요약하여 접근로그(access log)파일에 기록합니다. 아파치 웹서버에서는 접근로그의 파일을 다음과 같은 형식의 로그로 저장합니다. 127.0.0.1 - - [01/Oct/2016:13:55:36 +0900] "GET /apache_pb.gif HTTP/1.0" 200 2326 각 형식의 요소는 다음과 같이 분리됩니다. Ho.. 더보기 python을 이용한 연도별 출생아 수 계산하기 다음 프로젝트는 서적 '초보자를 위한 파이썬 200제'를 기반으로한 포스팅입니다. 미국의 Social Security Administarion은 1880년 이후 현재까지 미국에서 출생한 남녀 아기들의 이름별 출생아 수를 년도별로 저장한 데이터를 일반인에게 공개하고 있다. 다음의 링크 https://catalog.data.gov/dataset/baby-names-from-social-security-card-applications-national-level-data로 접속하면 다음과 같은 홈페이지를 확인할 수 있다. 다음의 압축파일을 다운로드 한뒤 압축 해제하게 되면 연도별로 이루어진 텍스트 파일을 확인할 수 있으며,그 중 하나를 확인해보자 아기이름,성별,출생아수 로 이루어진 데이터들을 확인할 수 있다. .. 더보기 이전 1 2 3 4 다음