[RedTiger's Hackit] 2번 문제

2018. 1. 28. 15:01

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

[RedTiger's Hackit] 1번 문제

2018. 1. 28. 13:33

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

[SuNiNaTas] WEB부분 올클

2018. 1. 22. 12:38

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

[HACKER FACTORY] 초급 9번

2017. 8. 2. 17:06

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

반응형


writeup을 조금 늦게 작성해서 문제는 CTFtime.org를 참고하였습니다.

문제를 통해 web 문제라는 것과 tomcat과 관련이 있겠다 정도의 힌트를 얻은 뒤 접속합니다.

문제의 요점은 무엇가를 추적해야하는데 검색 인터페이스가 고장났다고 하네요.




문제에 접속했을 때 나오는 창입니다.

오른쪽 상단에 좌표 찍는 곳과 그 아래에는 지도가 나오네요.

왼쪽 글씨들이 잘 보이지 않아 더 확대해보도록 하겠습니다.



이 고양이를 찾는게 문제에서 요구하는 건가 봅니다.

여기서 Yellow with black stripes는 바로 tomcat의 대표이미지를 말하는 것으로 보입니다.



이를 통해 tomcat을 이용한다는게 확실해졌네요.

그럼 지도를 가지고 놀아봅시다.


가장 먼저 1,1을 대입해보고 burpsuite로 잡아보았습니다.



가장 아래에 u라고 해서 뭔가가 같이 전송됨을 볼 수 있습니다.

이를 URL 디코딩을 해주면

http://localhost:8080/index.jsp?x=1&y=1

이 됩니다.


대회 웹서버 내에 있는 tomcat에 정보를 보내서 처리 후 그 결과로 지도를 보여주는 것으로 보입니다.


그렇다면 그 톰켓에 접근을 해보아야겠죠?

검색 결과 Tomcat을 설치하면 Admin과 Manager 애플리케이션을 사용할 수 있다고 합니다.


Admin 애플리케이션 : http://localhost:8080/admin
Manager 애플리케이션 :  http://localhost:8080/manager/html


하나씩 접근해보겠습니다.


(1) Admin 애플리케이션


u 파라미터에 http://localhost:8080/admin 인코딩한 것을 넣어준 뒤 전송을 해보았습니다.



그 결과 404 응답이 왔습니다. 찾을 수가 없다고 하네요.


(2) Manager 애플리케이션

이번에는 u 파라미터에 http://localhost:8080/manager/html 인코딩한 것을 넣고 전송시켜 보았습니다.



오오! 401 응답이 왔습니다. 이는 인증을 하라고 하는 응답코드입니다. 따라서 이제 이 manager 애플리케이션의 계정정보를 찾으면 됩니다.




가장 먼저 default로 설정되어있는 tomcat / tomcat 으로 접근해보겠습니다.

URL에 인증정보를 보낼 때는 http://user:password@www.example.com 형태로 보내면 됩니다.



따라서 http://tomcat:tomcat@localhost:8080/manager/html 를 URL 인코딩한 것을 u 파라미터에 넣어 전송시켜보았습니다.



쨔잔~ 정답을 찾았습니다.

반응형

'Solve Problem' 카테고리의 다른 글

[RedTiger's Hackit] 1번 문제  (0) 2018.01.28
[SuNiNaTas] WEB부분 올클  (0) 2018.01.22
[HackThisSite] Basic Mission 4  (0) 2017.01.07
[HackThisSite] Basic Mission 3  (0) 2017.01.07
[HackThisSite] Basic Mission 2  (0) 2017.01.07
블로그 이미지

rootable

,
반응형


문제입니다. 요점은 "비밀글을 읽어라" 입니다.

문제에 접속해보죠.



문제에 접속한 뒤 비밀글에 접근하면 위와 같은 창이 뜹니다.

소스코드를 보면 이런 스크립트가 적혀있습니다.


표시한 부분을 보시면 저희가 입력한 부분을 특정 함수에 넣어 그 결과값이 제시된 EncryptReadKey과 같아야 풀립니다.

그렇다면 저 특정한 함수를 찾아봅시다.




[ util.js ] 라는 파일에 가면 이렇게 소스코드가 있습니다.

함수의 역할은 위에 있는 입력받은 문자를 encode하여 리턴해주는 것입니다.

이제 천천히 풀어봅시다.



먼저 간단히 'a'라는 문자를 넣었을 때 어떤 반응이 나왔는지 확인했습니다.

FiCC라고 총 4개의 문자가 나오네요.



그래서 저는 아스키코드 전체를 다 encode 시킨 뒤 우리가 원하는 EncryptReadKey와 비교하려고 하였습니다.

 


위가 바로 그 결과입니다.

하지만 일일이 찾기는 귀찮네요.. 

그래서 아래의 코드를 작성했습니다.



4개의 문자니까 substring 함수를 통해 먼저 처음 4개의 문자와 같은 것이 나오는지 확인해보았습니다.

하지만 결과는 아무것도 나오지 않네요 ㅠㅠ



저는 왜그럴까 생각해보다가 위와 같은 실험을 해보았습니다.

그 결과 문자가 1개일 때 뿐만 아니라 2개, 3개일 때도 encode의 결과는 4개의 문자로 출력되었습니다.

4개일 때는 3개일 때의 encode 값에 추가로 4개의 문자가 덧붙여지는 것을 볼 수 있습니다.



이를 토대로 위와 같은 코드를 작성하였습니다.

여기서는 아스키코드 전체가 아니라 대문자와 소문자의 영역을 기준으로 하였는데 그 이유는 encode 함수를 보니 charCodeAt 함수를 사용하였기 때문입니다.

이는 아스키코드 숫자를 문자로 바꿔주는 것이기 때문이죠.


문자 범위 3개를 for문으로 돌려 AAA부터 zzz까지 encode한 것이 EncryptReadKey의 처음 4개의 문자와 같은지 비교해 출력시켰습니다.


그 결과 Bes라는 문자가 나왔습니다.

거의 정답에 다 왔네요.



이제 EncryptReadKey 전체에 대해 해보았습니다.

EncryptReadKey의 총 길이만큼 for문을 돌리는데 4개의 문자씩 잘라내었습니다.

그래서 0을 한 뒤 +4씩하여 for문을 진행하였습니다.


그 결과 나온 문자들을 합치면 [ BestOfBestHackerFacto ] 입니다.

누가 봐도 마지막은 ry 가 빠진 것처럼 보입니다.

그럼 왜 이것은 빠진 것일까?


이는 제가 가정한 3개의 문자가 아니라 2개의 문자로 encode 되었기 때문입니다.



다시 encode 함수를 보면 isNaN 부분이 있어 chr3 즉, 3번째 문자가 없으면 어떻게 하라는 것이 있습니다.

게싱이 안되었다면 더 진행하였겠지만 충분히 게싱이 되므로 여기서 풀이는 멈추겠습니다.



[ BestOfBestHackerFactory ] 를 입력한 뒤 비밀글에 들어가면 인증키가 쨔잔

반응형

'Solve Problem > Hacker Factory' 카테고리의 다른 글

[HACKER FACTORY] 초급 9번  (0) 2017.08.02
[HACKER FACTORY] 초급 10번  (0) 2017.01.20
[HACKER FACTORY] 초급 6번  (0) 2017.01.10
[HACKER FACTORY] 초급 8번  (0) 2017.01.10
[HACKER FACTORY] 초급 5  (0) 2017.01.08
블로그 이미지

rootable

,

[HACKER FACTORY] 초급 10번

2017. 1. 20. 18:35

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

[HACKER FACTORY] 초급 6번

2017. 1. 10. 01:33

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.