일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- sha1
- Masonic Cipher
- php_extract
- Pigpen Cipher
- assembly
- aslr
- reversing
- base32
- Python
- webhacking
- Javscript
- Fortran 90
- Web Hacking
- vigenere cipher
- JavaScript
- base16
- Navajo alphabet
- Linux
- overthewire
- 카이사르 암호
- Qrcode
- burpsuit
- BASE64
- sql injection
- Caesar Cipher
- Mail Header injection
- cookie
- 비즈네르 암호
- 시저 암호
- AVR
- Today
- Total
목록분류 전체보기 (75)
My Drive
1. line-orientedLine-oriented programming language는 라인의 끝을 문장/명령어의 끝으로 해석한다. 보통 다음 줄로 이어진다는 표시문자가 있다.(대게 / 또는 - )포트란에서는 한 줄이 최대 132 글자이고, 다음줄로 이어지는 문장은 & 표시를 한다.◦ example :a=3*b + &7*c* C나 C++ 등은 Non-line-oriented programming language로 문장/명령어의 끝을 ; 이나 . 등 으로 나타내준다.포트란에서 한 줄에 여러 문장/명령어를 나타내기 위해 ; 를 사용한다.◦ example :if(a>5) then; b=7; else; b=8; endif corresponds toif(a>5) thenb=7elseb=8endif 2. 주석..
webhacking #18. sql 인젝션 문제이다.소스가 아래와 같이 제공되어 있다. 여기서 우리가 살펴볼 부분은 GET방식으로 no를 넘기고 있고,if(eregi(" |/|\(|\)|\t|\||&|union|select|from|0x",$_GET[no])) exit("no hack"); 위와 같이 빈칸,/,(,),탭,|,&,union,select,from,0x 를 필터링 하고 있다."select id from challenge18_table where id='guest' and no=$_GET[no]"쿼리문을 위와 같이 날리고 있고, 우리는 여기서 admin이라는 값이 반환되도록 해야 한다. 임의로 1을 입력해보니 hi guest라고 뜨는 것으로 보아, DB의 구조를 대략 파악해볼 수 있다.no | ..
webhacking #38. 이번에는 Log Injection 문제이다.아무 값이나 입력하고 login을 누른 후, admin을 누르면 아래와 같이 login한 log가 뜬다. log injection은 위와 값은 형식으로 적혀지는 로그에 "\n______:admin" 과 같은 형식으로 추가하여,임의의 사용자가 login 했던것처럼 log를 남길 수 있게 된다.
webhacking #47. 이번 문제는 Mail Header Injection문제이다.페이지 소스를 보니 아래와 같았다. mail() 함수는첫 번째 인자가 보내는 사람, 두 번째 인자가 메일 제목, 세 번째 인자가 메인 내용이다.다음 인자부터는 추가적으로 더해질 수 있다.따라서 admin@webhacking.kr로 password를 보내는 것을 알 수 있다. mail header injection 기법을 이용하여 이 메일을 나에게도록 오게 하면 password를 알 수 있다. 아무값이나 입력하고 제출을 누르게 되면 아래와 같이 Done 메시지가 출력된다. 메일 헤더 인젝션을 하기 위해 버프 수트를 이용하였다. 보내는 메일에 임의의 값을 입력한 후 버프수트로 보면 email 인자가 내가 입력한 값임을 알..
webhacking #54.문제를 들어가면 Password is 라는 말 뒤에 문자가 하나씩 나온다.이 문자를 종합하면 키를 얻을 수 있을 듯 하다.방법은 여러가지가 있겠지만 버프수트를 이용하여 하나씩 Forward를 해주며 나오는 내용을 적었다.(동영상을 찍거나 모든 화면을 캡쳐해도 괜찮을 듯 하다.) 인증 완료
webhacking #24.페이지 소스를 보니 index.phps에 소스가 있다고 하여 index.phps를 들어갔다. php부분을 보면,우선 php의 extract함수가 사용된다.extract($array) 함수는 인자로 배열타입의 변수를 받는다.그리고 배열속의 키값들을 변수화시켜주는 역할을 하는 함수이다.예를 들어, a라는 배열이$a[i] = 100;$a[j] = 200;위와 같으면,extract($a);를 했을 경우,$i = 100;$j = 200;과 같은 결과가 나타난다.extract함수는 $_GET, $_POST, $_SERVER 같은 전역변수에 사용하게 되면 보안상의 문제가 있다.(이 문제에서 볼 수 있다.) 위에서는 $_SERVER와 $_COOKIE를 extract의 인자로 넣어주고 있는데,..
webhacking #16. 딸랑 * 표시만 몇개 있어 소스를 보았다. 부분을 보면 onload = kk(1, 1) ;; 페이지가 로드될 때 kk함수를 호출onkeypress = mv(even.keyCode) ;; 키보드를 누르면 해당 아스키값을 인자로 넘겨주고 mv함수 호출 kk 함수와 mv 함수가 있는데,mv 함수를 보면 인자 kk 함수를 호출하고 cd가 100, 97, 119, 115일 경우 즉 d, a, w, s 버튼을 누를 경우는 start의 위치를 변경하고,113인 |를 입력했을 때는 location.href로 페이지가 넘어가도록 되어있다. 키보드로 입력하면 kk 함수를 호출하게 되어 아래와 같이 별 모양이 계속 생긴다. 그리고 113번인 |(파이프) 를 입력하게 되면 아래와 같이 다른 페이지..
webhacking #17. 앞에서 살펴본 문제와 비슷해 보인다. 마찬가지로 소스를 보았다. check버튼을 클릭했을 때 이번에는 sub()함수가 호출된다.이 함수는 단순히 계산을 수행하여 입력한 값과 비교한다. 다른 프로그램으로 계산하니 약간씩 오차가 나서 javascript코드로 계산하였다.
webhacking #15.문제를 들어가자 마자 위와 같은 창이 뜨고 확인을 누르면 password is ... 라는 글씨가 빠르게 지나간다. burp suit를 이용해 한 단계씩 보면,
webhacking #14. 화면만 봐서는 아무것도 알 수 없으므로 일단 소스를 본다.check버튼을 클릭했을 때 ck() 함수가 호출되는 것을 알 수 있다.12345678function ck(){var ul=document.URL;ul=ul.indexOf(".kr");ul=ul*30;if(ul==pw.input_pwd.value) { alert("Password is "+ul*pw.input_pwd.value); }else { alert("Wrong"); }}이 부분만 보면 No3 현재 페이지의 URL을 가져와서No4 ".kr"의 인덱스를 가져와No5 30을 곱한다.위의 입력창에 입력한 값과 이 값이 같으면 Password를 띄워준다. url을 복사해서 indexOf 함수를 취해 30을 곱해 보았다.