我正在尝试使用Selenium的WebDriver来自动化我正在开发的安全工具的测试。具体来说,我试图通过反映的XSS将js有效负载注入HTML页面。为了测试有效载荷的适应性,我需要验证脚本是否实际运行。
我通过让XSS有效负载调用一个特定的函数来完成这项工作,该函数使用以下方法之一将信息传递给我的python程序:
然而,上面的内容都非常hacky和慢(特别是方法#1,如果所需的元素不存在我很愚蠢,我的隐含等待真的很高,但我仍然不喜欢创建dom元素以传递字符串的方法)。此外,如果有多个警报,则最后一个选项会非常一致地失败。
我想通过driver.execute_script(脚本)检索变量值但是我的脚本似乎无法实际读取值,因为像'return window.name'这样的东西总是返回None。话虽这么说,我不希望execute_script()成为最快的方法,因为它必须在执行所述脚本时执行大量开销。
将运行时信息从浏览器上下文传递到控制python程序的最快方法是什么?我不需要发送太多信息,最多可能是几kb,所以a cookie值可能就足够了,但浏览器的URL可能不会。
答案 0 :(得分:1)
class PassByReferenceIsh:
def __init__(self):
self.variable = 'Original'
self.change('variable')
print self.variable
def change(self, var):
self.__dict__[var] = 'Changed'