zoukankan      html  css  js  c++  java
  • testing

    import requests
    
    def GetHtml(url):
        try:
            r = requests.get(url,timeout=10)
            r.raise_for_status()
            r.encoding = r.apparent_encoding
            return r.text
        except:
            return "error!"
    
    from bs4 import BeautifulSoup
    
    def GetUrl():
        return input("input url:")
    def TransHtml(txt):
        return BeautifulSoup(txt,"html.parser")
    
    from urllib.parse import urljoin
    from urllib.parse import urlparse
    from urllib.parse import urlunparse
    from posixpath import normpath
    
    def LinkUrl(base,url):
        a_url = urljoin(base,url)
        arr = urlparse(a_url)
        path = normpath(arr[2])
        return urlunparse((arr.scheme,arr.netloc,path,arr.params,arr.query,arr.fragment))
    
    import re
    import subprocess
    
    def cmdLine():
        level = input("execute level:")
        level = " --level=" + level
        risk = input("execute risk:")
        risk = " --risk=" + risk
        thread = input("run threads:")
        thread = " --threads=" + thread
    
        cmd = level + risk + thread + " -o"
        return cmd
    
    def GetLink(obj,url):
        cmd1 = cmdLine()
        allink = set()
        for link in obj.find_all(re.compile('^a')):
            new_url = LinkUrl(url,link.get("href"))
            allink.add(new_url)
        for i in allink:
            cmd = "sqlmap -u " + i + " --batch --output-dir=~" + cmd1 + " > result.txt"
            subprocess.run(cmd,shell=True)
            print("testing " + i)
            with open("result.txt","r") as f:
                total = f.readlines()
                for item in total:
                    if item.count("Type:")!=0:
                        print("exsit injection" + item)
                        with open("final.txt","a") as res:
                            info = i + item
                            res.write(info)
                        tmp = item
                    if item.count("Payload")!=0:
                        with open("payload.txt","a") as payload:
                            p = i + tmp + item
                            payload.write(p)
        print("test over!")
        display_menu()
    
    import sys
    
    def choices():
        op = int(input("your option:"))
        if op == 1:
            url = GetUrl()
            demo = GetHtml(url)
            soup = TransHtml(demo)
            GetLink(soup,url)
        if op == 2:
            userinput = input("input params:")
            cmd = "sqlmap " + userinput
            subprocess.run(cmd,shell=True)
        if op == 3:
            sys.exit()
    
    def display_menu():
        print("1.auto test")
        print("2.manual test")
        print("3.exit")
        choices()
    
    if __name__=="__main__":
        display_menu()
  • 相关阅读:
    ue父子组件的数据传递示例
    vue.js 组件之间传递数据
    Vue2.0子同级组件之间数据交互
    assets 和static的区别
    Vue中src属性绑定的问题
    css3设置背景图片的大小
    如何在HTML中插入空格
    css背景图片的设置
    vue动态组件 互相之间传输数据 和指令的定义
    webservice的优缺点
  • 原文地址:https://www.cnblogs.com/Asuhe/p/14248934.html
Copyright © 2011-2022 走看看