Hacking/[Web]Natas

OverTheWire [Natas Level 6]

양선규 2023. 3. 10. 01:24
728x90
반응형

Natas Level 6 입니다.

 

Level 6

 

Level 6 메인 페이지 입니다.

드디어 입력 폼이 생겼습니다.

특정 비밀번호를 맞추면 될 것 같은데요..

SQL Injection 인가 싶어서 우회구문도 넣어보고, 스크립트문도 넣어보고 했지만 효과가 없었습니다.

 

오른쪽에 View sourcecode를 눌러보면,

 

 

View sourcecode

 

페이지 소스코드가 나옵니다.

가운데에 PHP 구문이 있네요. 비밀번호를 입력받고 검증하는 코드인 것 같습니다.

저는 코드 보는게 제일 싫습니다...

 

 

 

PHP문법은 잘 모르지만, 대충 보면 다른 경로에서 secret.inc 파일을 include(참조, 불러오기 같은) 하고 있습니다.

또한 if 문을 통한 비밀번호 검증이 이뤄지고, 성공하면 password 출력, 아니면 Wrong secret 문구가 출력되도록 구성되어 있네요.

 

가운데 부분을 보면, if($secret == $_POST['secret']) 부분이 보이시나요?

이것은 secret 이라는 변수의 값과, POST 메소드로 전달받은(사용자로부터 입력받은) 값을 비교하는 구문입니다.

두 값이 일치하면 password가 출력되는 것입니다.

POST는 우리가 입력한 값일 테니, secret 변수의 값을 알아내면 될 것 같습니다.

하지만 secret 변수가 여기에 존재하지 않는군요. 다른 곳에 있는 걸까요? 확인해 봅시다.

 

 

/includes/secret.inc

 

위 코드에서 참조하고 있는, includes/secret.inc 파일에 접근하였습니다.

여기에 secret 변수가 선언되어 있네요. 이 파일에서 secret 변수의 값을 참조하여 사용하고 있던 것 같습니다.

저 값을 복사해서 입력해봅시다.

 

 

password 획득

 

secret 변수의 값을 입력하고, password를 획득하였습니다.

소스코드에 파일경로가 대놓고 있긴 했지만, 역시나 코드 읽는건 너무 힘듭니다.

다음 문제에서는 소스코드를 볼 필요가 없으면 좋겠네요..

728x90
반응형

'Hacking > [Web]Natas' 카테고리의 다른 글

OverTheWire [Natas Level 8]  (0) 2023.03.13
OverTheWire [Natas Level 7]  (0) 2023.03.10
OverTheWire [Natas Level 5]  (0) 2023.03.10
OverTheWire [Natas Level 4]  (2) 2023.03.09
OverTheWire [Natas Level 3]  (0) 2023.03.09