일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Linux
- 피들러
- C
- setCookie
- 실습문제
- ARP Redirect
- 자바
- 파이썬챌린지
- 해커스쿨
- 웹
- 석문초등학교
- hackerschool
- webhacking.kr
- Web
- html5
- SuNiNaTas
- 대외활동
- 파이썬
- 명품자바프로그래밍
- 리버싱
- java
- pythonchallenge
- 암호수학
- C언어
- 써니나타스
- 경기대학교
- 쏙쏙캠프
- 리눅스
- 웹해킹
- FTZ
- Today
- Total
목록CHALLENGE (25)
Hongfluenza
1번 URL 주소 : http://www.pythonchallenge.com/pc/def/map.html 1번 문제는 다음과 같다. 예전에 암호수학 시간에 배웠던 개념이 생각나서 a-z까지 알파벳을 옆으로 두 칸 밀어보았더니 해답이 보였다. 코딩을 하기 전에, 간단하게 디자인을 해보았다. 1. a-z까지 알파벳을 원소로 갖는 리스트 a를 생성한다.2. 리스트 a를 옆으로 두 칸 밀어 c-b까지 알파벳을 원소로 갖는 리스트 b를 생성한다.3. 문제에 주어진 문장을 넣을 리스트 c를 생성한다.4. 공백(' ')은 건너뛰고, 리스트 c의 원소와 리스트 a의 원소가 일치할 때, a의 인덱스 위치를 가져와, 리스트 b의 동일한 인덱스에 있는 값을 리스트 c의 원소에 대입해준다. 소스코드 >> 12345678910..
파이썬 챌린지 첫 페이지 화면 URL 주소를 바꾸는 게 힌트. URL 주소에 0.html을 2의 38승으로 바꾸면 될 것 같았다. 0.html => 274877906944 로 바꾸면 끝. 쉽군 근데 생각해보니 파이썬 챌린지니까 넘나 간단
SuNiNaTaS 06번 문제이다. 이 문제는 SQL Injection과 관련이 있는 문제였다. 이 부분은 공부해서 따로 올릴 예정이다. 처음에 ' or '1'='1' 을 쓰니 막힌다고 하여 참이 될 수 있는 다른 조건을 넣어주었다. 다음과 같은 alert가 뜨고, auth key를 얻어낼 수 있다. 그리고 확인을 누르자, 접근권한이 없다는 다음과 같은 alert가 떴다. 문제에서 알려준 사이트를 통해 authkey를 MD5 방법으로 Hash 해보았다. 다음과 같은 결과가 나왔다. 접근권한은 쿠키와 관련이 많다고 하여 쿠키를 사용해 보았다. 쿠키의 값을 HASH한 결과 값으로 바꾸어 주었다.다음과 같은 화면이 나오는데 소스 코드에서 다음과 같은 힌트를 얻을 수 있었다. 정답은 Augustus
써니나타스 5번 문제이다. 너무 볼 것이 없어서 페이지 소스를 보았다. 핵심이 될 만한 코드는 이 함수였다. eval(function(p,a,c,k,e,r) 이 부분을 알기 위해 구글링을 한 결과, 자바스크립트 난독화가 되어있었다는 것을 알게 됐다. 간단한 자바스크립트 난독화를 해제해주는 사이트도 많았다. https://www.strictly-software.com/unpack-javascript 이 사이트를 통해서 해제 해보았다. 소스코드에서 힌트가 될 만한 내용은 다음과 같다. atom을 이용해 다음과 같은 코드에 alert(PASS(12342046413275659)) 를 추가시켜 실행해보았다. 1234567891011121314151617181920212223!DOCTYPE html> var dig..
4번 문제를 클릭하면 이러한 화면이 나온다. 뭘까 싶지만 일단 페이지 보기를 클릭해보았다. 역시나 힌트가 있을 줄 알았다. Point를 50으로 바꾸라는 소리 같아서 일단 4번 문제의 plus를 눌러 50까지 바꿔보기로 했다. 50까지 plus 를 누르려고 했는데 25까지 누르니까 이러한 콘솔창이 떴다. 그리고 point 의 값은 더 이상 올라가지 않았다. 그렇다면 문제에서 User-Agent의 힌트를 찾아서 문제를 풀어보도록 하자. 일단, 이 문제를 풀기 위해서는 Fiddler(피들러)라는 툴이 필요하다. 피들러를 다운받은 후에, SuNiNaTaS를 25까지 수행시켜 놓고, 피들러를 켠다. RePlay - Reissue and Edit 을 클릭한다. Raw에서 User-Agent를 SuNiNaTaS로 ..
3번 문제 NOTICE 게시판에 글을 쓰라는 의미다. NOTICE 게시판에 들어갔는데 글쓰기 버튼이 없었다. Q&A 게시판을 가보니 WRITE 라는 글쓰기 버튼이 있었다. Q&A 게시판에서 글쓰기 버튼을 눌렀을 때 나오는 화면이다. 그 때 URL은 다음과 같다. 한 가지 떠오른 생각은 Q&A 게시판은 Free와 NOTICE 게시판은 notice와 연관이 있을 것 같다는 생각이 들었다. 그래서 URL을 다음과 같이 수정해주었다. URL을 바꾸었을 때 나오는 화면은 다음과 같다. 글을 쓴 다음에, submit을 눌러주면 authkey 값을 얻을 수 있다. 끝 엄청 간단한 문제였다.
클릭하면 나오는 화면이다. 먼저 페이지 소스를 확인해본다. 페이지 소스 중에서 핵심 내용만 캡쳐해 왔다. 맨 밑 부분에 힌트를 보니 회원가입을 하려면 id와 pw가 같아야 함을 알 수 있었다. 가장 간단하게 ID=1PW=1을 입력하고 Join 버튼을 눌렀다. 그러면 이러한 내용이 뜬다. 이유는 아이러니하게도 if문을 살펴보면 id=pw가 같으면 초기화 시켜버리는 결과를 확인할 수 있었다. 어렵게 생각하지 않고, else 문에 있는 document.web02.submit();을 사용하면 될 것 같았다. F12를 눌러 ID와 PW에 같은 값을 넣어 준 후에, Console창에 document.web02.submit();을 입력하면 끝 ! 결과는 이러하다.
1번 문제는 웹해킹 문제다. 마우스 우클릭을 통해 1번 문제 페이지의 확장명을 살펴보면 asp임을 알 수 있었다. ※알아야 할 내용-Request 함수-Replace 함수-Mid 함수-& 연산자 Request함수- 사용법 : Request([입력 필드의 이름]) - GET이나 POST요청에서 해당하는 입력 필드의 값을 반환한다. Replace함수- 사용법 : Replace([원본 문자열],[바꾸려는 문자열],[바꾸려는 문자열의 변경 값]) - 바꾼 문자열을 반환한다. Mid함수- 사용법 : Mid([원본 문자열],[문자열 시작 위치],[가져오려는 문자열의 길이]) - 원본 문자열에서 해당 시작 위치로부터 가져오려는 문자열의 길이만큼 뽑아낸 문자열을 반환한다. - 만약, 가져오려는 문자열의 길이가 범위를 ..