漏洞盒子自动化交漏洞

  1. 前言
  2. 思路
  3. 代码
  4. 一些坑
  5. Xpath的小技巧

前言

嫌手动打开网页提交漏洞太草了,就有了这个工具
Github地址:漏洞盒子自动提交漏洞工具

PS:单个提交的时候记得去掉提交漏洞哪行的注释

思路

使用selenium模块来模仿浏览器进行点击,从而实现
快速提交漏洞的手法

代码

模拟点击的代码:

   chrome.find_element_by_name('bug_title').send_keys(bug['漏洞标题']) #填写漏洞标题
        if bug['漏洞类别']=='事件型漏洞': #设置漏洞类别
            leix=chrome.find_elements_by_name('bug_internet_type')[tyon[0]]
            leix.click()
        else:
            leix=chrome.find_elements_by_name('bug_internet_type')[tyon[1]]
            leix.click()

        chrome.find_element_by_name('bug_firm_name').send_keys(bug['厂商信息']) #填写厂商信息
        chrome.find_element_by_name('bug_firm_url').send_keys(bug['所属域名']) #所属域名
        chrome.find_element_by_xpath('//*[@id="submitform"]/div[5]/div/div[1]/div').click() #点击漏洞类型的界面
        chrome.find_element_by_xpath('//*[@id="submitform"]/div[5]/div/div[2]/div/ul/li[1]/a').click() #点击Web漏洞
        chrome.find_element_by_xpath(web_bug[bug['漏洞类型']]).click()
        chrome.find_element_by_xpath('//*[@id="submitform"]/div[6]/div/div/button').click() #点击漏洞级别的框框
        chrome.find_element_by_xpath(bug_level[bug['漏洞等级']]).click()
        chrome.find_element_by_xpath('//*[@id="submitform"]/div[8]/div/textarea').send_keys(bug['漏洞描述']) #漏洞描述
        chrome.find_element_by_xpath('//*[@id="submitform"]/div[15]/div/div[2]/div[1]/div[4]').send_keys(bug['复现步骤'])  # 填写复现步骤
        for tup in images:
            chrome.find_element_by_xpath('//*[@id="submitform"]/div[15]/div/div[2]/div[1]/div[1]/ul/li[13]/a').click() #点击图片上传
            chrome.find_element_by_xpath('//*[@id="submitform"]/div[15]/div/div[2]/div[1]/div[1]/ul/li[13]/div/ul/li[1]/a').click()
            time.sleep(1)
            dialog = win32gui.FindWindow('#32770', '打开')  # 对话框
            ComboBoxEx32 = win32gui.FindWindowEx(dialog, 0, 'ComboBoxEx32', None)
            ComboBox = win32gui.FindWindowEx(ComboBoxEx32, 0, 'ComboBox', None)
            Edit = win32gui.FindWindowEx(ComboBox, 0, 'Edit', None)  # 上面三句依次寻找对象,直到找到输入框Edit对象的句柄
            button = win32gui.FindWindowEx(dialog, 0, 'Button', None)  # 确定按钮Button
            win32gui.SendMessage(Edit, win32con.WM_SETTEXT, None, r'{}'.format(tup))  # 往输入框输入绝对地址
            win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)  # 按button
            chrome.find_element_by_xpath('//*[@id="submitform"]/div[15]/div/div[2]/div[1]/div[4]').send_keys(Keys.ENTER)

        chrome.find_element_by_xpath('//*[@id="submitform"]/div[17]/div/div/div[1]/div[4]').send_keys(bug['修复方案']) #填写修复方案
        if bug['匿名']=='否':
            chrome.find_element_by_xpath('//*[@id="submitform"]/div[18]/div/div/div/div/span[3]').click()
        else:
            pass

        data=open(str(bug['漏洞POC请求包']),'r',encoding='utf-8').read()
        print(data)

        try:
            chrome.find_element_by_xpath('//*[@id="submitform"]/div[9]/div/input').send_keys(bug['漏洞url/位置']) #填写漏洞URL
        except:
            pass

        try:
            chrome.find_element_by_xpath('//*[@id="submitform"]/div[10]/div/input').send_keys(bug['影响参数']) #填写影响参数
        except:
            pass

        try:
            chrome.find_element_by_xpath('//*[@id="submitform"]/div[11]/div').click()
            chrome.find_element_by_xpath('//*[@id="submitform"]/div[11]/div/textarea').send_keys(data)
        except:
            pass

        chrome.find_element_by_xpath('//*[@id="submit"]').click() #提交漏洞

然后文件上传的实现就是,通过win32api来检测这个窗口。然后输出要上传的文件路径
然后点击确认即可

参考文章:
Selenium+Python上传文件方法大全 - 简书
python和pywin32实现窗口查找、遍历和点击 - alex.shu - 博客园
python-selenium模块简单使用 - 檐夏 - 博客园

效果图:

一些坑

webdriver.Chrome()不能放在函数内,否则请求完第一个url就退出浏览器…
原因:你放在函数内的话,这个函数执行完成后就会结束

from selenium import webdriver

def demo():
    chrome=webdriver.Chrome()
    chrome.get('https://www.baidu.com')

if __name__ == '__main__':
    demo()

Xpath的小技巧

这里手动@木头,并送出一个吻
Chrome或Firefox选择指定部分后选择:检查->Copy->Copy Xpath

ZX7con.md.gif

END


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:漏洞盒子自动化交漏洞

本文作者:九世

发布时间:2019-07-18, 17:25:50

最后更新:2019-07-18, 17:49:42

原始链接:http://422926799.github.io/posts/b36db5a6.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录