일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- base16
- AVR
- Javscript
- Navajo alphabet
- Fortran 90
- Caesar Cipher
- BASE64
- Qrcode
- overthewire
- Linux
- 시저 암호
- php_extract
- Pigpen Cipher
- cookie
- sql injection
- assembly
- vigenere cipher
- sha1
- Mail Header injection
- Python
- base32
- JavaScript
- reversing
- burpsuit
- Masonic Cipher
- 카이사르 암호
- webhacking
- aslr
- Web Hacking
- 비즈네르 암호
- Today
- Total
목록webhacking (20)
My Drive
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을 곱해 보았다.
webhacking #6. index.phps 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 위의 코드에서 첫번째 php부분을 보면,user, password의 쿠키 값을 설정해주고 있다.id는 guest, password는 1234qwe를 각 각 No7~12에서 20번씩 base64인코딩을 한 후,No14~30에서는 인코딩 된 값에서 숫자를 각 특수문자로 변환하여주고 있다.최종적으로 설정된 쿠키값을 보면 아래와 같이 굉장히 긴 것을 알 수 있다...
webhacking #4.YzQwMzNiZmY5NGI1NjdhMTkwZTMzZmFhNTUxZjQxMWNhZWY0NDRmMg==이 부분은 암호화 된 것으로 보인다. 저런식의 암호화는 주로 base64에서 나타난다.복호화된 문장 c4033bff94b567a190e33faa551f411caef444f2 은 40글자이다. 해쉬값으로 인코딩되는 값은 인코딩되는 자리수가 정해져있다.md5 : 32글자 / sha1 : 40글자SAH1 Decrypter를 찾아 디코딩하고, 결과가 또 40자가 나와 한번더 디코딩하면아래와 같은 결과가 나온다.
webhacking #1. index.phps --------------------- ----- index.phps ----- => user_lv의 쿠키값을 5 ~ 6 으로 바꿔주면 해결!! burp suite 툴을 이용해서 바꿀 수 있다. Brup Suite : Paros와 더불어 널리 알려진 Web Proxy Tools 여기서 다운로드 받을 수 있다.(사전에 자바 JDK가 설치 되어 있어야 한다)http://portswigger.net/burp/download.html 실행 후, Proxy > Options 에서 위와 같이 설정 IE를 사용하는 경우는 아래처럼 도구 > 인터넷 옵션 > 연결 > LAN 설정 chrome을 사용하는 경우는 SwitchSharp라는 확장 툴을 이용해 쉽게 on/off 할 ..