每次使用扫描工具例如sqlmap、dirsearch、xray这些脚本都需要输入一大串代码,于是简单梳理了需求如下:
1、可视化界面
2、一键化操作
3、随机抽取代理配合扫描
代码如下:
import os
import tkinter as tk
import random
import pyperclip
import re
# 调用已拉取保存好的代理保存到对应的列表中备用
http_open = open('D:/pycharm/project/代理/new/proxy_http.txt')
https_open = open('D:/pycharm/project/代理/new/proxy_https.txt')
http_pro = http_open.read().splitlines()
https_pro = https_open.read().splitlines()
http_proxy = []
https_proxy = []
for i in http_pro:
    http_proxy.append(i)
for j in https_pro:
    https_proxy.append(j)
# 正则判断开头是否为https
line_new2 = re.compile('^https://')
# 清除targeturl中的内容
def del_clear():
    entry_target_url.delete(0, 'end')
# 诗句
def shi():
    list = ['挟取笔端风雨,快写胸中丘壑,不肯下樊笼。\n大笑了今古,乘兴便西东。\n——张元干《水调歌头·赠汪秀才》', '抬眸四顾乾坤阔,日月星辰任我攀。\n——苏轼《失题》',
            '笔底烟云飞走,胸次乾坤吐纳,议论总纵横。\n——京镗《水调歌头·次卢漕韵呈茶漕二使》', '黄河落天走东海,万里写入胸怀间。\n——李白《赠裴十四》',
            '孰知不向边庭苦,纵死犹闻侠骨香。\n——王维《杂曲歌辞·少年行四首》', '自信人生二百年,会当水击三千里。\n——毛泽东《七古·残句》',
            '他日卧龙终得雨,今朝放鹤且冲天。\n——刘禹锡《刑部白侍郎谢病长告...》',
            '我欲穿花寻路,直入白云深处,浩气展虹霓。\n——黄庭坚《水调歌头·游览》', '出门一笑,月落江横,数峰天远。\n——张炎《烛影摇红·隔窗闻歌》', '一剑横空星斗寒,甫随平北复征蛮。\n——戚继光《题武夷》',
            '问近来,铛脚许何人,吾其一。\n——赵磻老《满江红·用前韵》', '三峡江声流笔底,六朝帆影落樽前。\n——米芾《望海楼》', '岂堪久蔽苍苍色,须放三光照九州。\n——杜荀鹤《山中对雪有作》',
            '好借食间前箸,尽吐胸中奇计,指顾静烟尘。\n——曾协《水调歌头·送史侍郎》', '十步杀一人,千里不留行。\n事了拂衣去,深藏身与名。\n——李白《杂曲歌辞·侠客行》']
    daying = random.choice(list)
    var_input.set(daying)
# 打开dirsearch目录
def open_dirsearch():
    os.startfile("F:/工具/dirsearch-master/dirsearch-master")
# 运行dirsearch并使用代理
def run_dirsearch():
    url_dir = entry_target_url.get()
    if not line_new2.match(url_dir):
        proxy_url = random.choice(http_proxy)
        print(proxy_url)
        os.system(
            f"python F:/工具/dirsearch-master/dirsearch-master/dirsearch.py -u {url_dir} --proxy {proxy_url} -x 400-599")
    else:
        proxy_url = random.choice(https_proxy)
        print(proxy_url)
        os.system(
            f"python F:/工具/dirsearch-master/dirsearch-master/dirsearch.py -u {url_dir} --proxy {proxy_url} -x 400-599")
# 打开sqlmap目录
def open_sqlmap():
    os.startfile("E:/下载/sqlmap/sqlmap")
# 运行sqlmap并使用代理
def run_sqlmap():
    url_dir = entry_target_url.get()
    if not line_new2.match(url_dir):
        proxy_url = random.choice(http_proxy)
        print(proxy_url)
        os.system(f"python E:/下载/sqlmap/sqlmap/sqlmap.py -u {url_dir} -proxy={proxy_url} --level 3 --risk 2")
    else:
        proxy_url = random.choice(https_proxy)
        print(proxy_url)
        os.system(f"python E:/下载/sqlmap/sqlmap/sqlmap.py -u {url_dir} -proxy={proxy_url} --level 3 --risk 2")
# 获取剪贴板中的内容写入1.txt,以1.txt文件运行sqlmap并使用代理
def run_zhuabao():
    dd = pyperclip.paste()
    dd = dd.replace("\r", "")
    with open('E:/下载/sqlmap/sqlmap/1.txt', 'w') as sql_file:
        sql_file.write(dd)
    proxy_url = random.choice(http_proxy)
    os.system(
        f"python E:/下载/sqlmap/sqlmap/sqlmap.py -r E:/下载/sqlmap/sqlmap/1.txt -proxy={proxy_url} --level 3 --risk 2 --batch")
# 画布大小
window = tk.Tk()
window.title('Welcome to fofa')
window.geometry('600x400')
mulu = os.getcwd()
# 设置窗口显示的字
tk.Label(window, text='大家好,这里是辅助代理测试脚本').place(x=225, y=25)
tk.Label(window, text='请输入目标url').place(x=265, y=65)
tk.Label(window, text='目标地址: ').place(x=50, y=100)
tk.Label(window, text='请选择您想要执行的脚本').place(x=240, y=145)
# 定义两个文本框的默认值
target_url = tk.StringVar()
target_url.set('www.baidu.com')
entry_target_url = tk.Entry(window, textvariable=target_url)
entry_target_url.place(x=120, y=100)
entry_target_url.place(width=430, height=30)
# 调试窗口
var_input = tk.StringVar()
# 打印诗句
shi()
# var_input.set('这里是调试窗口')
w = tk.Label(window,
             textvariable=var_input,  # 标签的文字
             bg='black',  # 背景颜色
             fg='green',  # 字体颜色
             font=('Arial', 12),  # 字体和字体大小
             width=200, height=8)  # 标签长宽
w.pack(side='bottom')  # 固定窗口位置
# 按钮
btn_dir = tk.Button(window, text='dirsearch', command=run_dirsearch)
btn_dir.place(x=100, y=180)
btn_dir_open = tk.Button(window, text='open file', command=open_dirsearch)
btn_dir_open.place(x=100, y=215)
btn_sql_run = tk.Button(window, text='sqlmap', command=run_sqlmap)
btn_sql_run.place(x=250, y=180)
btn_sql_open = tk.Button(window, text='open file', command=open_sqlmap)
btn_sql_open.place(x=245, y=215)
btn_sql_run = tk.Button(window, text='sql to txt', command=run_zhuabao)
btn_sql_run.place(x=350, y=195)
btn_clear = tk.Button(window, text='清除', command=del_clear)
btn_clear.place(x=470, y=195)
window.mainloop()
运行效果如下,cmd窗口运行期间,gui窗口是卡死无法操作的状态,这个问题我后期再想办法解决吧。
        
评论 (0)