gpt4 book ai didi

ruby - 如何使用 Nokgiri 或 Mechanize 确认 JavaScript 弹出窗口

转载 作者:数据小太阳 更新时间:2023-10-29 07:58:47 26 4
gpt4 key购买 nike

我正在运行一个将在我的本地主机上打开的脚本。我的本地服务器是一个易受攻击的 Web 应用程序测试套件。

我正在尝试从 JavaScript 警报中确认 XSS 弹出窗口。例如:

http://127.0.0.1:65412/v?=0.2<script>alert("TEST");</script>

我需要使用 Mechanize 或 Nokogiri 确认弹出窗口的发生。是否可以通过 Nokogiri 或 Mechanize 确认弹出窗口存在?

例如:

def page(site)
Nokogiri::HTML(RestClient.get(site))
end

puts page('http://127.0.0.1:65412/v?=0.2<script>alert("TEST");</script>')

最佳答案

Nokogiri 和 Mechanize 因为它构建在 Nokogiri 之上,所以可以解析 HTML 并返回 <script>标签的内容。标签的内容是文本,因此此时有必要查看文本内部以找到您想要的内容:

require 'nokogiri'

doc = Nokogiri::HTML(<<EOT)
<html>
<head>
<script>alert("TEST");</script>
</head>
</html>
EOT

script_content = doc.at('script').content # => "alert(\"TEST\");"

很容易检查此时是否存在子字符串:

script_content['alert("TEST");'] # => "alert(\"TEST\");"

或:

!!script_content['alert("TEST");'] # => true

注意:Nokogiri 或 Mechanize 无法判断弹出窗口是否发生,因为它会在浏览器运行 JavaScript 时发生。 Nokogiri 或 Mechanize 都不理解或解释 JavaScript。只有像 Watir 这样的工具或解释 JavaScript 的工具才能做到这一点。

关于ruby - 如何使用 Nokgiri 或 Mechanize 确认 JavaScript 弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40793515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com