代码地址

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import subprocess

f = open('ips.txt', 'r')
flines = f.readlines()

vulnsrvs = 0
i = 1

for line in flines:

    host = line.split(":")

    ip = host[0].replace('\n','')
    port = host[1].replace('\n','')

    print "Try (" + str(i) +") "+ str(ip) +":" + str(port)

    if port == "443":
        #dont bother with SSL/TLS
        continue
    try:
        myout =  subprocess.check_output(['curl', '--connect-timeout', '2', '--max-time', '2', '-s','-I', '-X', 'PROPFIND','http://' + ip  + ':' + port + '/' ])
        print myout
        if "HTTP/1.1 411 Length Required" in myout:
            print "Found one:"
            print myout
            vulnsrvs += 1
    except Exception, e:
        print str(e.output)
    i += 1
    print "Vulnerable: " + str(vulnsrvs)

说明

ips.txt 是待验证的列表格式为:

1
2
3
129.112.44.1:80
129.112.44.2:81
129.112.44.43:8808

它不检测443端口(HTTPS) 你也可以简单改一下进行网段批量验证。

转自群友CF_HB