| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Web Hacking
- php_extract
- 카이사르 암호
- Fortran 90
- Javscript
- base16
- JavaScript
- overthewire
- Linux
- base32
- Pigpen Cipher
- Mail Header injection
- cookie
- 비즈네르 암호
- Caesar Cipher
- BASE64
- reversing
- aslr
- Masonic Cipher
- AVR
- Navajo alphabet
- webhacking
- sql injection
- Python
- vigenere cipher
- burpsuit
- sha1
- assembly
- Qrcode
- 시저 암호
- Today
- Total
목록writeup (51)
My Drive
# 두 번째 문제 책에 있는 문자를 인식하라고?? 아... 페이지 소스에 있을 거란다. 소스 보기를 하니 아래와 같이 문제가 나와있다. 아래 복잡해 보이는 것들에서 희귀한? 문자를 찾으란다. 많이 나오는 것들을 다 지우면 될 듯 하다. 우선 복잡한 문자들을 pc2.txt라는 파일에 저장해주었다. 이 파일을 읽어서 많아 보이는 특수문자들을 다 지우는 코드를 아래와 같이 짜보았다. #pc2 import string f = open('pc2.txt','r') while 1: line = f.readline() if not line: break else: print line.strip(string.punctuation) f.close() 한 줄씩 읽어서 특수문자를 없앤 line을 출력하다 보니 결과가 너무 길어..
# 첫 번째 문제 K를 M으로, O를 Q로, E를 G로, 알파벳이 2칸씩 당겨졌음을 알 수 있다. A는 C, B는 D, C는 E, .... 위의 규칙을 가지고 보라색의 알아볼 수 없는 글씨를 알아 볼 수 있게 해야 된다. 개인의 생각에 따라 코딩은 다양하게 나올 듯 싶다. 나는 아래와 같이 코딩했다. #pc1 import string alpha = string.ascii_lowercase str = "g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pca..
무작정 언어만 공부하기 지루할때는 문제를 풀어보면서 배우는 것도 하나의 방법이다.지금부터 풀어볼 사이트는 python 프로그래밍을 공부하기 위한 사이트이다.뭐 시간이 나면 python외에 다른 언어를 사용해서 풀어봐도 좋을 듯 하다. http://www.pythonchallenge.com/특별히 로그인이 필요없어 랭킹이나 점수가 없고, 단계별로 URL을 기억해 놓아야할 것 같다.시간이 남는다면 매번 다른 언어나 다른 방법으로 풀어봐도 좋을 듯. 아래 빨간 박스 친 곳을 클릭하면 문제가 시작된다. # 몸 풀기 문제여기는 문제가 이미지로 나오기 때문에 약간의 센스와 약간의 영어 실력이 필요하다. 2의 38제곱을 구하는 문제. 힌트를 보니 URL을 이용해 다음 단계로 넘어가는 것을 알 수 있다. 몸 풀기 문제..
webhacking #58. pw를 입력하는 창이 나온다. 아무거나 입력하니 Wrong이라고 뜬다. 소스를 보려고 우클릭 하니 flash 란다;;; F12를 눌러 소스를 보니 hackme.swf라는 의심스러워보이는 파일이 있다. 링크를 클릭해 들어가서 ctrl+s를 누르면 저장할 수 있다. 아무 프로그램이나 들어가서 보면 아래와 같이 url을 확인 할 수 있다. 들어가면 바로 클리어!
webhacking #42. 다운로드가 2개 링크되어 있다.1번 test.zip을 클릭하니 Access Denied 창이 뜬다. 2번 test.txt를 클릭하니 아래와 같이 뜬다. 소스를 보니 1번에는 alert가 뜨도록 되어있고2번은 ?down=dGVzdC50eHQ= 으로 연결되도록 되어있다. dGVzdC50eHQ=는 base64로 test.txt를 인코딩한 것이다.그렇다면 test.zip을 base64로 인코딩하여 ?down=dGVzdC56aXA=로 이동하도록 하면 될 것 같다. 다운로드에 성공했다. 그런데 비번이 걸려있다.;;;아까 위의 소스에서 test.zip 비밀번호는 숫자로만 되어있다고 했다. 알집 비밀번호를 푸는 프로그램을 이용하여 비번을 찾으니759852 압축 풀린 파일을 보니 아래와 같이..
webhacking #36. 문제는 간단하다.viblackout vi는 리눅스 편집기를 의미하는 것 같고,blackout은 정전? vi를 쓰다가 터미널이 종료되면 백업파일이 생긴다. 숨김파일로 생기기때문에 앞에 . 이붙고 원래 파일 뒤에는 .swp가 붙게 된다. 따라서 index.php에서 .index.php.swp를 들어가보면 키가 등장!good! $_SERVER[REMOTE_ADDR] 이거는 자신의 ip를 치면 된다.
webhacking #23. script를 inject하는 문제이다. 그냥 입력해보면 역시나 안된다. no hack이라고 뜨는 것으로 보아 뭔가 필터링 되어있는 듯 하다. 문자를 하나 입력했을 때는 괜찮고,2개 이상 입력했을 때는 어느 문자든 필터링이 된다.숫자는 상관없다. 이 문장을 문자가 2개 이상 연속 되지 않도록 써야한다.(특수문자는 가능)a_l_e_r_t(1);중간을 무언가로 채워주어야 하는데,여러 공백문자 %20 %09 %0a %0b %0c %0d %a0 /**/ 를 시도해 본 후 %00을 시도하니 성공! a%00l%00e%00r%00t(1);
webhacking #33.이번 문제는 단계별로 문제가 나눠져 있어 좀 길다 #33 - 1 GET방식으로 get변수에 "hehe"값을 넣어 보내주면 된다.GET방식은 url을 통해 넘겨줄 수 있으므로 간단하다. #33 - 2 이번에는 POST방식으로 post변수는 "hehe", post2변수는 "hehe2"를 넘겨주면 된다.post는 변수를 body에 넣어 보내므로 버프수트를 이용하였다. Body 변수를 2개 추가해주고 방식을 POST로 바꿔준다. #33 - 3 이번에는 GET 방식으로 myip를 $_SERVER[REMOTE_ADDR]로 바꿔주어야 한다.전에 $_SERVER는 아래와 같은 정보가 담겨있는 배열이었다.$_SERVER['DOCUMENT_ROOT'] = 현재 사이트가 위치한 서버상의 위치 (e..
webhacking #32. 랭킹과 이름 hit 이 쫙 나와있고, 아래로 내려보니 Join 버튼이 있다. 버튼을 클릭하니 Done창이 뜨며 내 아이디도 추가가 되었다. 이름을 클릭하니 hit 이 1증가 했다. 다시 누르니 no! 뭐로 구분하는 걸까 보니, vote가 이미 되었다는 쿠키가 존재하는 듯 하다. 이 쿠키를 삭제하고 다시 눌러보니 역시 1이 더 증가했다. 100까지 증가시켜야 하는것 같은데 손으로 하긴 너무 노가다 작업이다;;; 파이썬 코드를 이용해 작업하였다. import httplib import urllib headers = { 'Host':'webhacking.kr', 'Proxy-Connection':'keep-alive', 'Accept':'text/html,application/xh..
webhacking #31. php 코드가 노출이 되어있다.port는 10000부터 10010사이에서 랜덤하게 생성된다.그리고 GET방식으로 받아온 server변수에 해당 ip로 연결을 시도하는데 3초동안 시도하고, 실패하면 error메시지를 출력한다. 3초가 지나면 아래와 같이 time out으로 연결이 실패했다고 뜬다.url 에 나타나는 server는 어디 ip인가 하니본인 pc ip주소이다. 그렇다면 내 PC의 10000번부터 포트를 열어 놓고 기다리면 뭔가 나올듯 하다.netcat을 이용해 포트를 열고 대기하였다.nc -lp 10000 다시 웹사이트를 접속하니 10000번 포트에서 반응이 왔다. Password is f1a0a4b594375af401c0a0e3562ea406