Web Proxy Tool
웹 서버로 오고가는 요청(패킷)을 대신 전달해주는 친구
그 중 유명한 툴
나 - 웹서버
나 - 버프스윗 - 웹서버
익숙해야 웹 해킹이 굉장히 편해진다.
프록시 탭에서
인터셉트
프록시 세팅
all
Tools - Proxy
Listener (듣는 친구) : 나의 패킷을 받기 위해 귀를 열고 있어야 함. 그런 설정하는 곳
간혹 리스너를 직접 열어야 할 때가 있음 그때 하나 더 열 수 있다
Binding - Bind to port : 그냥 받을 포트 아무거나
Bind to address - All interfaces : 우리 컴퓨터에서 버프스윗을 실행, 그리고 다른 컴퓨터에 있는 크롬이 나한테있는 버프스윗에 전달하고 나한테 분석해주는 상황이 있음 보통 모바일 앱 해킹, 옆 컴퓨터도 버프스윗 사용가능
내 컴 - 버프스윗 - 모바일 기기
모바일 기기 -> 버프스윗 -> 내 컴
원래 내 컴 안에 버프 스윗이 있고 크롬도 내 컴퓨터에서 켜진다.
로컬 컴퓨터에서 버프스윗을 사용할 때, 요청을 보낼 때 버프스윗을 거쳐 크롬으로 : 루프백
내컴에서 버프스윗 켜고, 다른컴퓨터에서 요청 전송, 요청을 내 컴퓨터로 다시 분석해야하는 상황
: All interfaces 설정
Q. 외부에서 다른 pc의 프록시로 요청을 어떻게 하나요?
핵심은 리스너. 리스너라는 친구를 열어두고
우리는 리스너로 데이터를 보낸다. 그럼 얘가 알아서 처리하고 주고받고
Add 눌러서 리스너 추가. 8888 포트
그럼 생긴 인터페이스가 우리에게 데이터를 전달해줄꺼임.
브라우저 설정 - 수동 프록시 설정
내 주소 적고 아까 버프스윗에 추가한 포트(8888) 설정하면 끝
이제 브라우저의 모든 요청은 프록시를 거친다.
브라우저 -> 구글 서버
브라우저 -> 프록시 -> 구글 서버
다른 컴퓨터(모바일 기기) -> 내 컴퓨터의 프록시 툴 -> 웹 서버
폰 환경 설정 -> VPN 구성 추가
프록시 툴이 켜진 컴퓨터의 아이피주소, 열어놓은 포트 추가
같은 네트워크 상에서만 가능.
이런 세팅을 할 때는 Loopback only가 아닌 All interfaces로 설정
요즘 버프스윗은 프록시 세팅이 되어있는 브라우저 키는 기능이 있다!
하지만 모바일 앱 해킹을 할 때, 백신을 우회할 때
프록시 세팅 직접하는 법을 알아야 함.
특정 애만 잡거나 특정 애는 안잡거나 세팅
브라우저 -> 버프스윗 -> 웹 서버
여기에서 패킷을 가로막는 기능
원하는 데이터 조작 가능
Forward 누르면 웹서버로 전송
버프스윗을 통과한, 주고받은 웹 요청들을 볼 수 있는 곳
만약 로그인 과정을 분석하고 싶으면
정상적으로 로그인을 해보고
히스토리 탭을 하나씩 눌러보며 분석.
수정하면서 전송해보려 할 때
URL 인코딩, base64
인코딩, 디코딩 할 수 있음
(리피터랑 자주 활용)
엄청 긴 글자가 있어, 근데 뭔가 미세하게 달라진거 같아
content-length 보니까..
근데 뭐가 달라진지 몰라
그럼 비교할 두 요청 comparar에 붙여넣기 하면
비교 가능
오른쪽 아래에서
Words : 글자 단위로 비교
Bytes :
싱크 뷰 : 스크롤 같이 움직임
segfault{ModRequest}
약속
[버프스윗 요청 스샷]
요런 약속
첫 줄
1
웹 메서드
GET, POST, OPTIONS, PUT, DELETE 등등
2 경로
3 프로토콜
둘째 줄 부터 헤더라고 부름
헤더 그 다음줄은 무조건 비워둠
200 : OK
300 : 리다이렉트
Location
400 : 클라이언트 측 잘못
ex) 404 왜 없는거 달라고해
500 : 서버 에러
게시판
글 작성 : insert
글 리스트 보기 : select
글 내용 읽기 : select
글 수정 : update
글 삭제 : delete
게시판 페이징
limit
select * from board limit 0, 10
limit [index], [count]
게시글 검색
게시글 제목 검색.
normaltic is great!
select * from board
where title like '%normaltic%'
like 절
%normaltic : 맨 뒤 글자가 normaltic인 거 찾음
normaltic% : 맨 앞 글자가 normaltic
게시글 정렬
select * from board
order by [column 이름] [asc/desc]