2번 문제는 먼저 소스 코드 분석으로 시작합니다.
소스 코드의 맨 마지막 줄에 Hint가 적혀있습니다.
Hint : Join / id = pw
Join 버튼의 Html 코드를 보면 onclick="chk_form()" 을 통해 script 를 호출합니다.
id 와 pw 가 같을 때 로그인 실패 alert 이 뜨고, 이 외에 submit() 을 보내는 걸 확인할 수 있습니다.
힌트가 id = pw 인데, 함수는 아니다?
여기서 Fiddler 나 Burp Suite 를 이용하여 값을 변경해 보낼 수 있다는 사실을 기억해야 합니다.
원래 Fiddler 를 더 좋아했으나 유료인만큼 이번엔 Burp Suite 를 사용한 방법을 적겠습니다.
버프 스위트 기본적인 설정은 완료했다는 가정 하에 문제 풀이를 시작합니다.
Proxy -> Intercept -> Open browser 로 브라우저를 띄워줍니다.
URL에 써니나타스 2번 문제 URL를 붙여넣습니다. 그 다음 버프 스위트에서 Intercept is off 를 눌러 on 으로 바꿉니다.
우선 submit()을 받아야 하기 때문에 id, pw 가 다르도록 아무 글자나 적어 Join 를 누르면 아래와 같이 보입니다.
Action -> Send to Repeater 를 클릭하고 메뉴의 Reqeater 로 이동합니다.
왼쪽의 Request 에서 id 와 pw 를 동일하게 변경한 후 Send 를 클릭하면 Response 에서 Authkey 를 확인할 수 있습니다.
정답
Burp Suite 를 이용해 id = pw 를 동일하게 만들어 요청한다.
'Security > Web Hacking' 카테고리의 다른 글
SuNiNaTaS(써니나타스) Challenges 1번 문제 풀이 (0) | 2023.03.21 |
---|---|
PHP SQL Injection 방어 기법 (0) | 2022.09.01 |
Time-Based/Union-Based SQL Injection (0) | 2022.08.31 |
Blind SQL Injection (0) | 2022.08.30 |
SQL Injection (0) | 2022.08.30 |