Curl 如何在网站源代码中grep多行注释?

Curl 如何在网站源代码中grep多行注释?,curl,awk,sed,grep,Curl,Awk,Sed,Grep,我是一名渗透测试人员,正在为目标URL上的基本web应用程序枚举(收集所有链接、电子邮件地址、表单字段参数和注释)编写工具 使用curl我能够从目标URL的源代码中获得单行注释 以下显示了所有单行注释: curl <url> -s -L | grep '<!--.*-->' | sed -e 's/^[[:space:]]*//' curl-s-L | grep'| sed-e's/^[:space:][]*/' 我在尝试grep多行注释时遇到问题 我如何使用curl

我是一名渗透测试人员,正在为目标URL上的基本web应用程序枚举(收集所有链接、电子邮件地址、表单字段参数和注释)编写工具

使用
curl
我能够从目标URL的源代码中获得单行注释

以下显示了所有单行注释:

curl <url> -s -L | grep '<!--.*-->' | sed -e 's/^[[:space:]]*//'
curl-s-L | grep'| sed-e's/^[:space:][]*/'
我在尝试grep多行注释时遇到问题


我如何使用
curl
+
grep
实现这一点?或者
awk
/
sed
是更好的选择吗?

您可以使用sed的
/regexp/,/regexp/
范围:

curl...|sed -n '/<!--/,/-->/p'
curl…| sed-n'//p'

您可以使用sed的
/regexp/,/regexp/
范围:

curl...|sed -n '/<!--/,/-->/p'
curl…| sed-n'//p'

使用正则表达式解析HTML或XML文件基本上没有完成。诸如
sed
awk
之类的工具对于处理文本文件来说非常强大,但当它归结为解析复杂的结构化数据(如XML、HTML、JSON等)时他们不过是一把大锤。是的,你可以完成这项工作,但有时要付出巨大的代价。为了处理如此精细的文件,您需要使用一组更有针对性的工具,从而更加精巧

在解析XML或HTML时,可以很容易地使用

对于XHTML文件,您可以使用:

$ curl ... | xmlstarlet sel --html -t -m '//comment()' -v . -n
然而,由于HTML页面通常不是格式良好的XML,因此使用XML稍微清理一下可能会很方便。在上述示例中,这将给出:

$ curl ... | tidy -q -numeric -asxhtml --show-warnings no     \
  | xmlstarlet sel --html -t -m '//comment()' -v . -n

使用正则表达式解析HTML或XML文件基本上没有完成。诸如
sed
awk
之类的工具对于处理文本文件来说非常强大,但当它归结为解析复杂的结构化数据(如XML、HTML、JSON等)时他们不过是一把大锤。是的,你可以完成这项工作,但有时要付出巨大的代价。为了处理如此精细的文件,您需要使用一组更有针对性的工具,从而更加精巧

在解析XML或HTML时,可以很容易地使用

对于XHTML文件,您可以使用:

$ curl ... | xmlstarlet sel --html -t -m '//comment()' -v . -n
然而,由于HTML页面通常不是格式良好的XML,因此使用XML稍微清理一下可能会很方便。在上述示例中,这将给出:

$ curl ... | tidy -q -numeric -asxhtml --show-warnings no     \
  | xmlstarlet sel --html -t -m '//comment()' -v . -n
与:

curl-s-L | ugrep'| sed-e's/^[:space:][]*/'
请注意,我们正在使用惰性重复
*?
来限制匹配的模式,否则文件中的最后一个
-->
将被贪婪地匹配

Ugrep相对较新。它旨在增强grepping,消除我们经常遇到的现有grep工具的限制。

使用:

curl-s-L | ugrep'| sed-e's/^[:space:][]*/'
注意,我们使用惰性重复
*?
来限制匹配的模式,否则文件中的最后一个
-->
将严格匹配

Ugrep相对较新。它旨在增强grep,消除我们经常遇到的现有grep工具的限制