Ejemplo n.º 1
0
    def get_Ostate(self, s):
        """
        字母 =》'A'
        数字 =》'N'
        中文 =》'C'
        特殊字符不变

        :param s:
        :return:
        """
        A = self.get_num('A')
        N = self.get_num("N")
        C = self.get_num("C")
        state = []
        if not isinstance(s, str):
            s = decode(str(s))
        if len(s) == 0:
            # 空字符串取0
            state.append([0])
            return state
        # s=str(s).decode("utf-8","ignore")
        for i in s:
            if i.encode("utf-8").isalpha():
                state.append([A])
            elif i.isdigit():
                state.append([N])
            elif is_chinese(i):
                state.append([C])
            else:
                state.append([self.get_num(i)])
        return state
Ejemplo n.º 2
0
 def ex_json(post_data):
     post_data = json.loads(post_data)
     for p_name, p_value in post_data.items():
         p_id = get_md5(self.host + self.path + decode(p_name) +
                        self.method)
         p_state = self.get_Ostate(str(p_value))
         p_type = "post"
         yield (p_id, p_state, p_type, p_name)
Ejemplo n.º 3
0
 def ex_urlencoded(post_data):
     for p in post_data.split("&"):
         p_list = p.split("=")
         p_name = p_list[0]
         if len(p_list) > 1:
             p_value = reduce(operator.add, p_list[1:])
             p_id = get_md5(self.host + self.path + decode(p_name) +
                            self.method)
             p_state = self.get_Ostate(p_value)
             p_type = "post"
             yield (p_id, p_state, p_type, p_name)
Ejemplo n.º 4
0
 def __init__(self, data):
     self.parameter = {}
     self.data = data
     url = str(data["uri"].encode("utf-8"), encoding="utf-8")
     self.uri = urllib.parse.unquote(url).strip()
     self.path = decode(get_path(self.uri))
     self.payload = get_payload(self.uri).strip("?")
     self.host = urllib.parse.unquote(self.data["host"]).strip()
     self.method = urllib.parse.unquote(self.data["method"]).strip()
     self.content_type = self.data["content_type"]
     self.get_parameter()
Ejemplo n.º 5
0
 def url(self):
     for p in self.payload.split("&"):
         p_list = p.split("=")
         p_name = p_list[0]
         if len(p_list) > 1:
             p_value = reduce(operator.add, p_list[1:])
             p_id = get_md5(self.host + self.path + decode(p_name) +
                            self.method)
             p_state = self.get_Ostate(p_value)
             p_type = "uri"
             yield (p_id, p_state, p_type, p_name)
Ejemplo n.º 6
0
 def cookie(self):
     cookies = urllib.parse.unquote(
         str(self.data["cookie"].encode("utf-8"), encoding="utf-8"))
     for p in cookies.split("; "):
         if p.strip():
             p_list = p.split("=")
             p_name = p_list[0]
             if len(p_list) > 1:
                 p_value = reduce(operator.add, p_list[1:])
                 p_id = get_md5(self.host + self.path + decode(p_name) +
                                self.method)
                 p_state = self.get_Ostate(p_value)
                 p_type = "cookie"
                 yield (p_id, p_state, p_type, p_name)
Ejemplo n.º 7
0
        def ex_xml(post_data):
            tree = ElementTree.fromstring(post_data)
            elements = []
            p_names = []

            def get_item(tree, parent_tag=""):
                if tree.getchildren():
                    if parent_tag:
                        parent_tag += "/" + tree.tag
                    else:
                        parent_tag = tree.tag
                    for t in tree.getchildren():
                        get_item(t, parent_tag)
                else:
                    elements.append(tree.text)
                    p_names.append(parent_tag + "/" + tree.tag)

            get_item(tree)
            for (p_name, p_value) in zip(p_names, elements):
                p_state = self.get_Ostate(p_value)
                p_type = "post"
                p_id = get_md5(self.host + self.path + decode(p_name) +
                               self.method)
                yield (p_id, p_state, p_type, p_name)