의미없는 블로그
Python - 응답값 헤더 내 서버 버전정보 출력 본문
[server_header.py]
응답값 헤더 일일이 점검하기 귀찮을 때...
근데 Server 헤더가 그냥 일반 페이지에서는 안보이다가
존재하지 않는 페이지를 요청했을땐 보이는 경우가 있다
그래서 Server 헤더는 아예 첨부터 존재하지 않는 페이지 /aaaaa 를 붙여서 날린다(res2)
반대로 X-Powered-By 헤더는 존재하는 페이지에서만 출력된다
그래서 정상페이지도 날려야 함(res)
그리고 같은 요청값을 날려도 200 떴다가 303 떴다가 하는것들이 있다
그래서 303 뜨면 다시 날리게끔 while 문 썼다
import sys
import requests
import re
if len(sys.argv) > 1:
filename = sys.argv[1]
f = open('server_header.txt', 'w')
f.write('URL\t')
f.write('Server Header\t')
f.write('X-Powered-By\t\n')
def get_server(res, res2, header, header2):
if "Server" in header2 :
f.write(res2.headers['server']+'\t')
else :
f.write(''+'\t')
if "X-Powered-By" in header :
f.write(res.headers['X-Powered-By']+'\t\n')
else:
f.write(''+'\t\n')
for i in open(filename, 'r'):
url = i.strip('\n')
f.write(url+'\t')
url_bunri1 = re.split('://', url)
url_bunri2 = re.split('/', url_bunri1[1])
url_bunri3 = url_bunri1[0]+"://"+url_bunri2[0]
url2 = url_bunri3+"/aaaaa"
history = "[<Response [303]>]"
history2 = "[<Response [303]>]"
while (str(history2) == "[<Response [303]>]" or str(history) == "[<Response [303]>]") :
res = requests.get(url, verify=False)
res2 = requests.get(url2, verify=False)
history = res.history
history2 = res2.history
header = res.headers
header2 = res2.headers
get_server(res, res2, header, header2)
'# 나 > pentest (WEB)' 카테고리의 다른 글
Python - Nmap, Dirb, Trace 메소드 스캔 (0) | 2019.08.13 |
---|---|
Python - TRACE 메소드 응답코드 출력 (0) | 2019.08.07 |
protostar1 - stack0.c (다른 변수 덮어씌우기) (0) | 2019.08.06 |
[Tools] Echo Mirage 사용하기 (0) | 2019.08.02 |
Lord of SQL Injection (2번) (0) | 2019.07.17 |