반응형

 

 

1. curl

GET 요청 

curl http://example.com

 

HOST헤더 넣기( -H옵션) + url인코딩하여 보낼 경우에 Host가 들어가야한다.

curl -H "Host: example.com" http://your-url

원하는 경로로 보내고 싶을때,

curl https://example.com/path

JSON형식으로 데이터 전달(-d옵션: data)

curl -X POST -H "Content-Type: application/json" -d '{"a": "value"}' http://example.com/path

 

POST요청

curl -X POST -d "param1=value1&param2=value2" http://example.com/resource

 

쿠키알아내기

curl -v --cookie "USER_TOKEN=Yes" http://127.0.0.1

쿠키정보를 file에 저장하고, redirect를 따라가는 명령

curl http://localhost -v --cookie-jar file -L

 

참고하기에 좋은 사이트

-https://reqbin.com/req/c-bjcj04uw/curl-send-cookies-example

 

2. nc

GET요청(Host헤더 포함)

cf. 이 때, 이유는 모르겠으나, \r\n\r\n 이게 꼭 두번 들어가야지 전달된다.

-> 우선 \r\n은 어떠한 데이터의 끝맺음을 의미한다. \r\n이 도착하지 않는다면 서버는 계속 요청 대기 상태가 된다.

경로를 지정하고 싶다면, / 이후에 추가

echo -e "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" | nc example.com 80

json 형식

// vim req
GET / HTTP/1.1
Host: 127.0.0.1
Connection: keep-alive
Content-Length: 길이{부터 }까지(괄호 포함)
Content-Type: application/json
User-Agent: curl/7.2

{"a": "value"}

호출

cat req  | nc localhost 80 -v

redirect

echo -e "GET / HTTP/1.1\r\nHost: 127.0.0.1\r\nConnection: keep-alive\r\nUser-Agent: curl/7.2\r\n\r\n" | nc localhost 80

 

POST요청

printf "POST /path HTTP/1.1\r\nHost: example.com\r\nContent-Length: 11\r\n\r\nHello World" | nc example.com 80

 

쿠키 알아내기

GET /setcookie HTTP/1.1
Host: 127.0.0.1
Connection: keep-alive
User-Agent: curl/7.2

 

3. python request 모듈

GET요청(Host헤더 포함)

import requests

url = "https://example.com"
headers = {"Host": "example.com"}

response = requests.get(url, headers=headers)

print(response.text)

80포트로 써야하는 경우

import requests

url = "http://example.com:80"
response = requests.get(url)

print(response.text)

POST요청

import requests

url = "https://example.com"
data = {"key1": "value1", "key2": "value2"}

response = requests.post(url, data=data)

print(response.text)

 

반응형

'pwn.college' 카테고리의 다른 글

Introduction to ARM - level 1 ~  (0) 2024.03.03
Assembly crash level 7~9  (0) 2023.12.14
Read file in Linux  (0) 2023.12.04

+ Recent posts