누구세요
40
2021-04-17 17:25:55
5
135

URL만 갖고 해당 페이지에서 사용하는 파라미터를 긁어오는 방법이 어떤게 있을까요?


URL을 기준으로 해당 페이지에서 get이던 post던 서버로 전송할 수 있는 모든 파라미터를 확인하고 싶은데

크롤링으로 html 코드 가져와서 form method 확인하고, input 태그 붙어있는 애들 id값을 긁어오는 방법 정도만 생각하고 있어요

혹시 다른 간단한 방법이나 저 방법에서 부족한 부분이 있을까요?

파라미터를 확인하려는 이유는 해당 페이지에서 사용하는 모든 파라미터에 값을 바꿔가면서 계속 요청을 보내는 식으로 퍼징을 돌려보려고 합니다.

0
  • 답변 5

  • 누구세요
    40
    2021-04-17 18:01:01

    여러가지 찾아보다보니 제가 적어둔 방법은 안되겠네요 ㅜㅜ
    input 태그 붙어있는 애들만 찾아내는 방식은 그냥 테스트만 해봐도 못찾는 파라미터들이 엄청 많네요

  • 엽기토끼이요
    629
    2021-04-17 21:54:04
    html을 열어서 보지말고 헤더에 들어있는 파라미터 컨트롤 하는 법으로 찾는게 어떠신가요. 거기에는 통신에 사용하는 파라미터가 다 들어있으니까요.
  • 누구세요
    40
    2021-04-18 00:19:07

    말씀하신대로 헤더를 통해서 파라미터 정보를 확인할 수 있을지 방법을 찾아보고 있는데
    단순히 request로 보낸 요청헤더나 응답헤더를 headers 메소드로 열어보는건 아닌 것 같네요 ㅜㅜ 
    거듭 질문드려 죄송하지만

    일단 지금 통신은 파이썬에서 request로 보내고 있는데
    예를 들어서 req = request.get("https://naver.com") 이런식으로 보내고
    req.headers로 열어서 봤는데 파라미터 정보는 없어서..
    혹시 어떤 방법으로 헤더를 확인할 수 있을까요?

    너무 막막해서.. 혹시 키워드라도 적어주시면 구글링해서 꼭 찾아보겠습니다

  • 엡실론
    2k
    2021-04-18 09:06:48 작성 2021-04-18 09:07:10 수정됨

    정적인 form과 input을 사용하는 경우에는 말씀하신대로 가능할 것 같은데, 자바스크립트로 동적으로 form을 생성하거나, 리퀘스트를 만들어 내는 경우에는 100% 완벽하게 파악하는 건 불가능 합니다.

    1. 범위를 줄여서, 특정 라이브러리를 사용하는 경우, 혹은 특정 코드 패턴인 경우 등을 연구해 볼 수 있을 것 같습니다.

    2. 동적 분석을 사용해서, 셀레니움등을 통해서 실제 웹페이지가 실행되는 걸 시스템이 관측하고 거기서 리퀘스트 파라미터를 뽑아 낼 수 있습니다. 물론 이 방법도 100%는 아니고, 실행된 적인 있는 것만 알 수 있습니다. 추가로 자동으로 버튼을 눌러보게 한다던가, 이벤트를 발생시킨다던가 하는 방법으로 실행되는 범위를 자동으로 늘려 볼 수 있을 것 같네요.

    왠지 관련된 논문들이 있을 듯 한데, google scholar에 "extract web api sepc"으로 검색하니 꽤 나오네요.

  • 야근그만
    204
    2021-04-20 13:58:14

    그건 크롤링이라고 이야기하는게 아니라 api해킹이라고 말합니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.