Natas Level 6 입니다.
Level 6 메인 페이지 입니다.
드디어 입력 폼이 생겼습니다.
특정 비밀번호를 맞추면 될 것 같은데요..
SQL Injection 인가 싶어서 우회구문도 넣어보고, 스크립트문도 넣어보고 했지만 효과가 없었습니다.
오른쪽에 View sourcecode를 눌러보면,
페이지 소스코드가 나옵니다.
가운데에 PHP 구문이 있네요. 비밀번호를 입력받고 검증하는 코드인 것 같습니다.
저는 코드 보는게 제일 싫습니다...
PHP문법은 잘 모르지만, 대충 보면 다른 경로에서 secret.inc 파일을 include(참조, 불러오기 같은) 하고 있습니다.
또한 if 문을 통한 비밀번호 검증이 이뤄지고, 성공하면 password 출력, 아니면 Wrong secret 문구가 출력되도록 구성되어 있네요.
가운데 부분을 보면, if($secret == $_POST['secret']) 부분이 보이시나요?
이것은 secret 이라는 변수의 값과, POST 메소드로 전달받은(사용자로부터 입력받은) 값을 비교하는 구문입니다.
두 값이 일치하면 password가 출력되는 것입니다.
POST는 우리가 입력한 값일 테니, secret 변수의 값을 알아내면 될 것 같습니다.
하지만 secret 변수가 여기에 존재하지 않는군요. 다른 곳에 있는 걸까요? 확인해 봅시다.
위 코드에서 참조하고 있는, includes/secret.inc 파일에 접근하였습니다.
여기에 secret 변수가 선언되어 있네요. 이 파일에서 secret 변수의 값을 참조하여 사용하고 있던 것 같습니다.
저 값을 복사해서 입력해봅시다.
secret 변수의 값을 입력하고, password를 획득하였습니다.
소스코드에 파일경로가 대놓고 있긴 했지만, 역시나 코드 읽는건 너무 힘듭니다.
다음 문제에서는 소스코드를 볼 필요가 없으면 좋겠네요..
'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 |