P1-Team / AlliN

A flexible scanner
1.11k stars 153 forks source link

关于json文件输出 #4

Closed milkair55 closed 3 years ago

milkair55 commented 3 years ago

我在运行端口扫描,保存结果文件时提示以下错误

Exception in thread Thread-2:
Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "AlliN-2.1.8-in.py", line 7807, in run
    args[2], origin,
UnboundLocalError: local variable 'origin' referenced before assignment

我在7807行找到了他,发现这个当端口不是443时,origin和n变量未被赋予值;

                if JSONFILE:
                    wpinfo = ("{\"%s\":{"
                            "\"certs_origin\": \"%s\","
                            "\"certs\": \"%s\","
                            "\"port\": \"%s\","
                            "\"host\": \"%s\","
                            "\"type\": \"%s\"}}" % (
                                args[2], origin,
                                n, certs,
                                args[2], service(int(n))
                            ))

我将这个if判断调整至上方for循环中,程序可以正常运转。

                for n in port_list:
                    if open_ports[n] == "open":
                        if n == "443":
                            certs , origin = getHttpCert(ip, 443)
                            print("[ %s     open     %s     %d/tcp CertDomain:%s %s]" % (service(int(n)), ip, int(n), certs, origin) + " "*30 + "\n")
                            wpinfo = "[" + service(int(n)) + " | open | " + ip + "  |  " + str(n) + " | " + certs + " | " + origin + "]\n"
                            if JSONFILE:
                                wpinfo = ("{\"%s\":{"
                                    "\"certs_origin\": \"%s\","
                                    "\"certs\": \"%s\","
                                    "\"port\": \"%s\","
                                    "\"host\": \"%s\","
                                    "\"type\": \"%s\"}}\n" % (
                                        args[2], origin,
                                        n, certs,
                                        args[2], service(int(n))
                                    ))
                        else:
                            print("[ %s     open     %s     %d/tcp ]" % (service(int(n)), ip,int(n)) + " "*40 + "\n")
                            wpinfo = "[" + service(int(n)) + " | open | " + ip + "  |  " + str(n)+ "]\n"
                            if JSONFILE:
                                wpinfo = ("{\"%s\":{"
                                    "\"port\": \"%s\","
                                    "\"host\": \"%s\","
                                    "\"type\": \"%s\"}}\n" % (
                                        args[2], n,
                                        args[2], service(int(n))
                                    ))
christasa commented 3 years ago

感谢指出,将在最近解决该问题

christasa commented 3 years ago

已在2.1.9版本解决,再次感谢指出