Challenge 4

Web Hacking 2015. 2. 27. 17:20

소스를 봐도 아무것도 없다.

근데 base64 디코딩을 해야할 것 같다. ( 뒤에 '==' 이 있길래)



디코딩 사이트

http://ostermiller.org/calc/encode.html


 

디코딩 결과.


결과를 password 창에 넣어 보았다.

아무일도 일어 나지 않았다.


고민을 했다.

이건 무엇인가.

한번더 디코딩 해 보았다.



요상한 문자가 나왔다... ㅎㅎㅎ


다른걸로 인코딩 디코딩 다 해보았지만 소용이 없었다.

종헌오빠에게 SOS를 쳤다... ㅎㅎㅎ

오빠가 '해쉬값'이라는 특급힌트를!!


해쉬값!

많이 들어보고 해쉬 함수의 값이란건 알고 있었지만

정확한 뜻을 몰라서 찾아보았다.






대표적인 해쉬함수로는 'MD5'와 'SHA'가 있다!

구글 검색을 해 sha-1 값을 찾아보았다.


sha-1 값 찾는 사이트.

http://sha1.gromweb.com/




아래의 값을 password에 넣어보았다.

아무런 변화가 없었다.

그래서 한번더 해 보았다.



그랬더니... 영어가!!!

심지어 'test' 라는 알아 볼 수 있는 영어가 나왔다!!!!






성공!!!

해쉬값을 이용한 문제는 어떤 단어가 나오나...?ㅎㅎㅎㅎ

암호화의 문제이니까?! 

조금더 공부를 해 봐야겠다!



'Web Hacking' 카테고리의 다른 글

Challenge 47  (0) 2015.02.27
Challenge 15  (0) 2015.02.27
Challenge 25  (0) 2015.02.27
Challenge 14  (3) 2014.10.01
challenge 6  (5) 2014.10.01
Posted by oyeahhh
,

Challenge 14

Web Hacking 2014. 10. 1. 16:46




횡~하다... ㅋㅋㅋ 내마음도 횡해진다.

6번을 풀고 자신감을 얻었는데 다시 막막해 진다.

힘내서 해보자! 아자!



종헌오빠의 세미나에서 배운 우클릭 페이지 소스 보기!

소스는 소중하니까여~~~





이렇게 새 창이 뜨면서 코드가 보인다! 

좋아 좋아~ 뭔가 보이는 것 같다.



더보기





function ck() 이게 뭔지 몰라서 인터넷에 처보니 ck() 이름은 없었다.

그래서 function에 대해 찾아 보았더니 직접 만든 함수인걸 알게 되었다.


[PHP] 함수 만들기!


funtion 함수이름 {

함수 내용.

}



함수 내용을 보니 ul 에 document.URL이 저장 되어있다.

document.URL의 의미를 몰라 찾아 보았다.


이것은 바로 현재 객체의 전체 주소를 반환해준다!  한마디로 객체(document)의 주소(url)!

-> ul 에 저장된 주소는 http://webhacking.kr/ 이다.



※객체란? 

변수들과 그와 관련된 매서드들을 하나로 묶어 놓은 집합.

구조화된 변수와 유사한 방법으로 여러 개의 함수까지 묶어 놓은 것.


객체의 특징

1 . 캡슐화(encapsulation)와 정보의 은닉성(information hiding) - 데이터의 추상화.

2 . 상속(inheritance) - 프로그램의 재사용.

3 . 다형성(polymorphism) - 프로그래밍의 용이.




.indexOf()의 함수를 몰라 찾아보았다.


처음으로 나오는 특정 단어의 위치! 

'welcome'은 공백 포함하여 0부터 시작하여 13번째에 'w'가 처음 나온다!



ul.indexOf(".kr") 은 ul의 주소에서 '.kr'이 몇번째에 위치되어 있는지 찾는 함수이다.

ul = ul=ul*30;이므로 '.kr'의 위치 곱하기 30한 값을 다시 ul에 넣는다.


이 값을 pw에 넣어주면 될 것 같다.

'.kr'은 17번째에 있으므로 17 * 30을 넣어 보았다. 



성공!!

여기서 나온 Password 값을 Challenges 옆에 있는 Auth에 넣는다.






challenge 14 clear!!!!!!!!!

예~~~ 좋아좋아!!

소스코드만 잘 읽을 수 있다면 점수가 낮은 문제는 금방 풀수 있는 것 같다!

그래서 낮은 점수겠지만....ㅎㅎㅎㅎ

굳!!!





'Web Hacking' 카테고리의 다른 글

Challenge 47  (0) 2015.02.27
Challenge 15  (0) 2015.02.27
Challenge 25  (0) 2015.02.27
Challenge 4  (0) 2015.02.27
challenge 6  (5) 2014.10.01
Posted by oyeahhh
,

challenge 6

Web Hacking 2014. 10. 1. 16:41




시작부터 막막하다....ㅋㅋ 100점짜린데....

그래 이것저것 다 해보자!



index.phps 를 누르면 코드가 뜬다


더보기




차례 차례 코드 해석을 해보자.



 if문 user이 아닐때(?)


for문 시작. id와 pw를  base64로 인코딩 20회 반복한다.















 












[PHP] str_replace("찾을문자열","치환할문자열","대상문자열") 

 -> val_id와 val_pw의 문자열을 치환한다 

-> 1,2,3,4,5,6,7,8 을 !,@,$,^,&,*(,) 로 치환.



 

디코딩 해라.




 

디코딩한 id 와 pw가 admin과 같다면 solve!!!



ㅎㅎㅎㅎㅎㅎ 무슨 소린지 모르겠다.

일단 Hint 는 base64! 이걸 사용해야 하는 것 같다.

그리고 인코딩과 디코딩을 20번 해야 할 듯 하다. 대충 감으로.


생소한 base64.... base64인코딩은 어떻게 하는 것일까.

겸사 겸사 base64에 대해서 , 그리고 왜 인코딩 하는지 디코딩 하는지 공부해 보았다.



역시 구느님!!!

결론은 64개 문자 이용 -> 바이너리 데이터를 아스키 텍스트 데이터로 표현!

     How? base64는 8bit의 데이터를 6bit로 표현하기 때문! 8 X 3 == 6 X 4 !  => 문자 3개에서 4개를 얻는다!


온라인으로 인코딩, 디코딩 가능!

 http://www.convertstring.com/ko/EncodeDecode/Base64Encode




▶내가 처음으로 한일! admin을 20번 인코딩 해 보았다.


더보기


휴... 힘들었다 복붙!

이제 뭘해야 할까... 저 길고 이상한 문자들은 무엇이란 말인가

다시 코드를 보도록 하자. 천천히 생각해보자.



이것의 의미... 디코드 아이디에 쿠키 유저에 넣어라?

아이디를 20번 다시 디코딩하면 admin이 나올텐데...?

쿠키가 어떤 일을 하는지 뭘 의미하는지 잘 모르겠다.


[PHP] 쿠키에 대해 알아 보자!


쿠키 생성!

setcookie(이름, 값, 유효시간, 디렉토리, 도메인 보안);


-이름(name) : 쿠키의 이름

-값(value) : 쿠키가 가질 값. "문자" , 변수, 값을 없앨려면 아무 값도 적지 않으면 된다.

-유효시간(expir_time) : 쿠키가 언제까지 작동할까를 적어준다. 0 혹은 아무것도 적지 않으면 브라우저가 닫힐 

때 까지, 0 이외의 다른 숫자를 넣으면 사용자가 쿠키를 삭제하기 전까지 유지된다. 지금부터 얼마간 지속시키려면 time()함수와 함께 써야한다. time() + 지속 초

-디렉토리(diretory) : 쿠키가 작동할 디렉토리의 절대 경로. 보통 생략한다.

-도메인(domain) : 작동할 도메인을 적어준다. 보통 생략한다.

-보안(secure) : 쿠키의 보안 상태를 정의한다. 1을 적으면 SSL암호화가 되어야만 작동, 적지 않거나 0을 적으면 

보안을 무시한다. 이것은 신경 쓸 필요가 없다.



※쿠키 생성 예제.



2번줄 setcookie("123","abcd") : 123이라는 쿠키에 abcd라는 문자열 저장. 브라우저를 닫으면 

사라진다

3번줄 setcookie("themics","phper",1) :쿠키가 영원히 지속된다. themics라는 쿠키에 phper라는 

문자열 저장.

4번줄 setcookie("nzeo",$nzeo_data) :  nzeo쿠키에 $nzeo_data의 값을 갖게 하고 브라우저를 

닫으면 사라진다.

5번줄 setcookie("php_study",$data,time() + 1800,"/httpd/html/") :  php_study쿠키에 

변수 $data에 있는 값을 대입한다. 지금부터 1800초, 즉 30분 지속되며 /httpd/html/ 이하에서 작동한다.

6번줄 setcookie("asdf","ghjkl",1,"/",".nzeo.com") : asdf라는 쿠키에 ghjkl라는 값을 갖게 하고 

영원히 지속되며 쿠키가 루트(/)이하, 즉 서버의 모든 파일에 작동한다. 또한 nzeo.com의

 모든 서브도메인에서도 작동하는 광범위한 쿠키이다.


※쿠키 사용.

$_COOKIE["쿠키이름"];



쿠키값 제거.

 setcookie("쿠키명");




쿠키에 대해서 공부를 하니 조금 무슨 소리인지 알겠다.

decode_id 에 쿠키 user 값을 넣어라. 그러면 디코딩이 되어 우리가 원하는 값을 얻을 수 있다.

디코딩을 20번 할 예정이니 우리는 인코딩을 20번 한 값을 넣으면 될 것 같다.


이제 20번 인코딩한 값을 user, password 쿠키 값에 넣으면 되는데 어떻게 넣는지 모르겠다....

우리의 멘토 사쿠야오빠한테 물어 보았다.

구글의 확장 프로그램 'edit this cookie'를 쓰면 자동으로 쿠키를 바꿔준단다... 와우!


'edit this cookie' 확장 프로그램.

https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg?hl=ko






user과 password 값에 20번 인코딩한 값을 넣고 V를 누른 다음 새로 고침을 하면 된다.




와우! 한방에 성공!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!






뿌듯뿌듯ㅎㅎㅎㅎㅎ

사쿠야선배는 300점 문제를 가면 멘붕이 온다고 했다 ㅎㅎㅎㅎㅎㅎㅎㅎㅎ

비록 100점 짜리지만 너무 기분이 좋다 ㅎㅎㅎㅎㅎㅎ!!!

샤랄라~


처음 Webhacking.kr을 하면서 느낀점은 코드를 찬찬히 보자. 여러가지 생각을 해보자.

점수가 높아지면 문제도 어려워 지겠지만 그래도 지금처럼 열심히 하면 풀수 있겠지?!

힘내자! 예~~~




'Web Hacking' 카테고리의 다른 글

Challenge 47  (0) 2015.02.27
Challenge 15  (0) 2015.02.27
Challenge 25  (0) 2015.02.27
Challenge 4  (0) 2015.02.27
Challenge 14  (3) 2014.10.01
Posted by oyeahhh
,