解释一下这个XSS字符串,它使用了perl

发布于 2024-10-15 09:41:08 字数 345 浏览 6 评论 0原文

我正在尝试针对一些可用的 xss 脚本测试我的 php 清理类之一 http://ha.ckers.org/xss.html

所以其中的脚本之一有其中有perl,这是某种perl语句吗?由于 perl 是一种服务器脚本语言,因此它会直接在服务器上执行吗?

perl -e 'print "<IMG SRC=java\0script:alert(\"XSS\")>";' > out

是我正在尝试使用的脚本。虽然我还没有测试过它,但我想在使用它之前先了解一下。

I am trying to test one of my php sanitization classes against a few xss scripts available on
http://ha.ckers.org/xss.html

So one of the scripts in there has perl in it, is this some kind of a perl statement?? And would this execute directly on the server, since perl is a server scripting language.

perl -e 'print "<IMG SRC=java\0script:alert(\"XSS\")>";' > out

Is the script that I am trying to work with. I have not tested it yet though, but I want to understand before I use it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

纵山崖 2024-10-22 09:41:08

\0 是 C 语言中的字符串终止字符。由于 perl 是在 C 之上构建的,因此在过去,您可以注入这个“有毒的空字节”以使 C 部分读取该行
而不是整个字符串,因此即使您试图删除诸如 SRC=javascript: 之类的内容,也可能允许整个事情通过,

大多数情况下这不会不再起作用了,因为高级语言已经非常擅长通过在将字符串发送到较低级别例程之前去除像 \0 这样的杂散控制字符来击败这样的攻击。

您可以在此处阅读有关有毒 nullbyte 的更多信息:http://insecure.org/news/P55-07 .txt 或此处:http://hakipedia.com/index.php/Poison_Null_Byte

The \0 is a string termination character in the laguage C. Since perl is built on top of C, in the old days you could inject this "poisonous null byte" to make the C part read the line
<IMG SRC=java instead of the whole string, and thus maybe allow the whole thing through even though you were trying to strip stuff like SRC=javascript:

Mostly this doesn't work anymore because the higher level languages has gotten pretty good at defeating attacks like this by stripping out stray control chars like \0 before sending the strings on to the lower level routines.

You can read more on the poison nullbyte here: http://insecure.org/news/P55-07.txt or here: http://hakipedia.com/index.php/Poison_Null_Byte

GRAY°灰色天空 2024-10-22 09:41:08

Perl 不是攻击,它只是演示如何生成攻击,因为您无法在纯字符串中看到它。

关键是数据中有一个空字符(在 Perl 中表示为 \0)。

The Perl isn't the attack, it just demonstrates how to generate the attack, since you can't see it in a plain string.

The point is that there is a null character (represented in Perl as \0) in the data.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文