오늘 한 가지의 희망을 보았다.
아직은 Burp Suite를 쓰는 방법을 모르겠다.
내가 지금 Burp Suite를 쓰려는 이유는 html 인코딩이 어디서 일어나는지 알아보기 위해서이다.
근데 아직 쓰는 방법을 제대로 몰라서 확인을 하지 못하였다.
하지만 문득 내가 한때 포렌식을 공부할 때 써보았던 Wireshark가 기억이 났다.
어쨌든 Burp suite도 중간에서 프록시로 패킷이 서버로 넘어가기 전에 잡아주는데 그렇다면 얘도 와이어샤크처럼 패킷을 '관찰'할 수 있다는 뜻이 된다.
그래서 사실상 Brup Suite = Wireshark + 패킷변조이다.
하지만 지금 당장은 패킷을 따서 이게 게시판에서 백엔드로 넘어올 때 어떤 형식으로 오는지 봐야했기에 그냥 Wireshark로 관찰해보았다.
사람들이 https를 쓰는 이유는 이러한 통신들이 이루어질 때 나오는 패킷들이 암호화된다는 점말고는 다른 것이 없는데 나는 어차피 전송할 데이터들을 그대로 봐야할 입장이기에 localhost의 그냥 http 프로토콜을 사용하였다.
일단 밑 그림은 내가 내 게시판에 임의로 넣은 게시물 제목과 내용이다.
이론상 내용에 있는 <>'"는 html 인코딩이 된 채로 들어와야 할 것이다.
그 결과 밑에 있는 것처럼 html 인코딩이 된 상태로 잘 들어왔다.
그래서 '글저장'이라는 버튼을 누르는 순간 패킷들이 어떻게 날아오는지 한번 분석해보았다.
그래도 내가 Wireshark를 아예 안 만져본 것은 아니라서 게시물을 서버에 넘기는 패킷을 바로 찾을 수 있었다.!
빨간색이 클라이언트의 Request, 파란색이 이에 대한 서버의 Response이다.
보면 빨간색의 content에 html encoding lt gt #39 quot가 들어온 것을 볼 수 있다.
이 말은 즉슨 서버로 넘기기 전에 html 인코딩이 이루어진 것 같다는 나만의 뇌피셜이고 ,
이제 Burp Suite에서 해당 패킷을 잡으면 와이어샤크에서 잡았던 것처럼 저렇게 잡을 것이고 html 인코딩이 된 문자들을 실제 문자들로 바꾸어서 서버에 넘겨주게 되면 DB에도 그대로 넘어갈 것 같다는 가정이 생겼다.
아직까지는 뇌피셜이지만 그래도 가능성이 아주 없어진 것은 아니라 다행이다.
빨리 Burp Suite 사용법을 알아보고 적용을 시켜보아야 할 것 같다.
그리고 또 문득 궁금한게 생겼다.
사실 윈도우와 리눅스 모두 Burp Suite를 지원한다.
윈도우에서 Burp Suite로 실험을 해보았는데 크롬이나 마이크로 엣지는 Burp Suite를 방어하는 차원인지 패킷의 출발지와 도착지에서 해쉬값?을 비교를 해서 다르면 연결을 안 시켜준다.
근데 리눅스에 있는 파이어폭스에서는 그런걸 안하는지 잘 넘어왔다.
그래서 내가 게시판을 만든 환경인 윈도우에서 서버를 열어놓고 같은 컴퓨터에 있는 가상머신의 리눅스로 똑같이 127.0.0.1로 접속을 해보니 안 됐다. 어찌보면 당연한 것 같은데 그래서 리눅스에서 윈도우로 켠 서버에 접속할 수 있는 방법을 찾아봐야겠다. 이거 하나때문에 클라우드 서비스에 서버를 올려서 하기는 싫다.
그래서 이걸 성공한다면 리눅스의 파이어폭스에서 버프스위트를 켜서 패킷을 변조할 수 있을 것 같다.(윈도우는 무결성 검증을 해버리니까 ㅇㅇ)