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

标签 php javascript xss sanitization

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

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

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

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

最佳答案

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

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

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

关于php - 解释一下这个XSS字符串,它使用了perl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4888415/

相关文章:

javascript - 可以指向以 javascript ://execute any code? 开头的 URL 的链接吗

php - 插入具有相同唯一 ID 的多行

javascript - 在 jQuery 中调用 PHP 变量

javascript - 试图调查页面加载性能错误 : What is "Scripting" and "Idle"?

javascript - 如何使用 webpack 配置按文件夹划分的模块 bundler ?

javascript - 在 javascript 中使用 if(someBoolean) 与 if(someBoolean==true)

php - 在重复用户名末尾连接增量 INT

javascript - 有没有简单的方法从页面上的 td 元素获取数组? (node.js/cheerio/jQuery)

javascript - 未经验证在 JavaScript 上使用 window.location.href 和用户输入是否安全?

javascript - XSS - 内容安全策略