반응형
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¶m2=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 |