왜 데이터베이스에서 읽어오는 값은 패킷에서 보이지 않나요?

조회수 1275회

저희 학교 포탈에서 정보를 파싱해오는 앱을 만들고 있습니다. 문제는 파싱하고자 하는 정보가 html 폼이 아니라 자바 포틀릿 안에 표현된 값 같습니다.

간단하게 생각해서 포탈 웹 서버에 적절한 리퀘스트를 보내고 그에따른 응답을 파싱할 계획이었습니다. 그런데 와이어샤크를 이용해서 모든 패킷을 캡쳐해봐도 제가 필요한 정보는 보이지가 않네요. 분명히 해당 학생에 대한 정보를 가지고 데이터베이스에 쿼리를 날린 후 받은 정보를 포틀릿에 뿌려주는 것이라고 생각했는데 어딘가 착오가 있었나봅니다.

클라이언트에서 웹 사이트를 볼 수 있게 그에 따른 클래스 파일, jsp파일 등은 전부 클라이언트로 다운받아서 실행시켜주는 것을 확인했는데, 정작 중요한 데이터들은 왜 패킷에 보이지 않을까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 특정 데이터가 서버로부터 클라이언트로 전달되었다면 wirehsark에서는 보여야 정상입니다. 트래픽이 발생하는 NIC을 제대로 설정하지 않으셨다면 보이지 않을 수 있지만, 다른 패킷들은 보실 수 있다니 이 문제는 아닌것 같네요.

    아무래도 자바 앱 같은 경우로 돌아가는 경우에는 보통 웹에서 사용되는 HTTP 프로토콜보다는 앱 자체내에서 구현된 프로토콜로 데이터를 전송할 확률이 높으므로, wireshark등에서 HTTP 등의 프로토콜로만 필터링을 하셨다면 보이지 않을 수 있겠네요. TCP단에서 오고가는 패킷은 없는지 확인하시기 바랍니다.

    그리고 아마 학교 포탈 등에 사용된 솔루션이라면 어느정도 정책상 보안 수준을 지켜야할텐데 (국내법은 잘 모르겠습니다), 그래서 데이터는 오고가지만 암호화 되어 plaintext로는 보이지 않을 수 도 있습니다. Wireshark를 옆에 틀어두시고 모니터링하시면서 실제로 리퀘스트를 전송했을 경우에 바로 발생하는 패킷들을 실시간으로 보신 후에 해당 패킷들을 검사해보시길 추천드립니다. 알아볼 수 있는 plaintext 데이터가 아닌 binary 데이터라면 아마도 암호화되어있거나 인코딩되어 있을 수 있기에, 그런 상황에서는 클라쪽 앱을 리버싱하셔야할 듯 싶네요.

    PS. 물론, 직접 들여다보지 않고는 정확히 어떤 이유 때문에 관련 정보를 못보시는지 대답해드리기 어렵습니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)