我创建了这个简单的脚本来请求带有 JavaScript 负载的 URL。
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request;
use LWP::Simple;
my $req=HTTP::Request->new(GET=>"http://example.com.br/search.asp?CI=%27%3E%3Cscript%3Ealert('XSS')%3C/script%3E");
my $ua=LWP::UserAgent->new();
$ua->timeout(15);
my $res=$ua->request($req);
print $res->content;
如何判断本例是否存在XSS漏洞?
最佳答案
快速回答它如何可以为您的特定示例工作:
#!/usr/bin/perl
use strict;
my $url = "http://example.com.br/search.asp?CI=%27%3E%3Cscript%3Ealert('XSS')%3C/script%3E";
#### decode url-encoding
my $decoded_url = $url=~s/%([A-F\d]{2})/chr(hex($1))/iegr;
if ( $decoded_url=~/<script>.*<\/script>/ ) {
print "XSS detected: $& \n";
}
你会得到:
$ ./xssdetect.pl
XSS detected: <script>alert('XSS')</script>
警告:仅此一项并不能对实际使用进行 XSS 保护。 XSS 是一个复杂的话题,有很多违规行为和特殊规则。我建议阅读 XSS,例如 OWASP .
关于perl - 如何使用 Perl 检测 XSS Reflect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73780731/