我正在尝试针对一些可用的 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/