[Webhacking.kr] 6번 문제풀이

webhacking 6번 문제의 배점이 100점이어서 한번 풀어보기로 했다.

(old-06 100점 문제)

 

6번 문제를 들어가 보면 아래의 화면이 보인다.

(Webhacking.kr 6번 문제)

ID와 PW 값이 있는 거 보니, 이것을 이용하는 문제일 것 같았다.

화면에 'view-source' 링크가 있어서 들어가 보았다.

아래의 화면은 'view-source'의 소스코드이다.

('view-source'의 소스코드)

소스코드가 한눈에 들어오지 않고 엄청 길다. 간단하게 해석해보자면 오른쪽 화면에 보이는 소스코드에서 decode_id의 값이 admin이고 decode_pw의 값이 nimda일때 문제가 해결되는 문제인 것 같다. 그러면 나는 Cookie에서 id와 pw 값에 정확한 값을 입력하면 문제를 풀 수 있을 것 같았다.

 

아래의 화면에서 for문을 보게 되면 id와 pw를 20번씩 base64_decode을 하는 것을 알 수 있다.

(for문)

그러면 나는 반대로 생각해봐야 할 것이다. base64_decode를 이용하지 않고 base64_encode를 20번 돌려야 할 것이다. 

id에는 "admin"을, pw에는 "nimda" 값을 입력해서 base64_encode를 20번 하면 될 것이다.

 

나는 PHPTester 사이트를 이용하여 php 구문을 실행시켜 보았다. 아래 PHPTester를 이용하면 php 구문을 쉽게 동작시켜 볼 수 있다.

http://phptester.net/

 

PHPTESTER - Test PHP code online

Lorem Ipsum alternative : gaddafipsum.com       This application is free so please don't break it ! Contact :phptester.net@gmail.com Result

phptester.net

 

아래의 화면은 id에 "admin"의 값을, pw에 "nimda"의 값을 넣어 base64_encode를 20번 한 것이다. 문제의 소스코드를 보면 !,@,$,^,&,*,(,) 와 같은 문자를 치환할 수 있기에 base64_encode이 끝나면 곧바로 치환 할 수 있게 코드를 수정했다. 

(왼쪽화면 id를 20번 encode, 오른쪽 화면 pw를 20번 encode)

php 구문의 코드를 돌리고 화면에서 보이는 'Click to test your php code'를 누르면 내가 짠 코드가 실행된다. 출력된 값을 Cookie 값에 'user' 값과 'password' 값에 넣으면 된다.

 

('admin'을 20번 base64_encode 한 값)
('nimda'을 20번 base64_encode 한 값)

 

위의 화면 처럼 Cookie 값에 base64_encode 한 값을 넣으면 아래의 화면처럼 문제가 해결됐다고 출력된다.

(old-06 Pwned 화면)
(100point 획득 화면)

 

[시행착오]

처음에는 100점짜리 문제여서 가볍게 생각하고 접근했다. 소스 코드에서 'user'값에 admin이을 'password'값이 nimda을 넣으면 쉽게 풀 수 있을 줄 알았다.

(잘못된 값을 넣었을 때 화면)

잘못된 값을 넣으니 위의 세번째 화면처럼 ID와 PW에는 아무런 변화가 없었다. 이번 문제는 어제 풀었던 문제보다 쉽게 생각해서 접근을 했더니, 문제의 접근 방법이 잘 못 되었던 것 같다. 또한 이번 기회에 'PHPTester'라는 사이트를 알게 되어서, 간단한 php 구문을 어렵지 않게 동작시킬 수 있었다. 

아무리 배점이 낮은 문제일지라도 가볍게 생각하면서 문제를 풀면 안되는 것일 이번 기회에 알게 되었다.

 

 

 

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

'공부 > Webhacking' 카테고리의 다른 글

[Webhacking.kr] 24번 문제풀이  (6) 2020.03.10
[Webhacking.kr] 26번 문제풀이  (6) 2020.03.08
[Webhacking.kr] 1번 문제풀이  (2) 2020.03.03

+ Recent posts