gpt4 book ai didi

xml - 使用 Perl XML::Simple 解析带有命名空间的 xml

转载 作者:行者123 更新时间:2023-12-04 03:48:22 25 4
gpt4 key购买 nike

所有,我真的需要一些帮助。我的最终目标是能够使用 perl 读取 xml 文件并将其插入数据库以跟踪 CVE。在这个阶段,如果我可以在我的代码中从 XML 文件中引用变量,我确信我可以将它插入到数据库中。现在我要做的就是将它打印到屏幕上,但我无法让它工作。

这是我的简单代码和 XML 文件。

希望有人能让我走到这里。

--Perl 代码开始--

#!/usr/bin/perl

# use module
use XML::Simple;
use Data::Dumper;

# create object
xml = new XML::Simple (KeyAttr=>[]);

# read XML file
#$data = $xml->XMLin("tms.xml");

# print output - used this to see if it was even reading it
#print Dumper($data);

# access XML data
print "Here is the BugTrackID: $data->{'x:BugTraqID'}\n";

--perl代码结束---

--xml开始--

<?xml version="1.0" encoding="us-ascii"?>
<Alerts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:alerts.symantec.com https://alerts.symantec.com/vulalert.xsd">
<x:AlertDocument xmlns:x="urn:alerts.symantec.com" AlertStatusID="57982" Type="1" DetailLevel="25" Language="1">
<x:BugTraqID>57982</x:BugTraqID>
<x:Title>Sonar Multiple Cross Site Scripting Vulnerabilities</x:Title>
<x:StatusID>1</x:StatusID>
<x:CVE>CVE-MAP-NOMATCH</x:CVE>
<x:Published>Feb 12 2013</x:Published>
<x:LastUpdated>2013-02-15T19:03:48</x:LastUpdated>
<x:Remote>Yes</x:Remote>
<x:Local>No</x:Local>
<x:Credibility>Single Source</x:Credibility>
<x:Classification>Input Validation Error</x:Classification>
<x:Availability>User Initiated</x:Availability>
<x:Ease>Exploit Available</x:Ease>
<x:Authentication>Not Required</x:Authentication>
<x:CVSS2_BaseScore>5.8</x:CVSS2_BaseScore>
<x:CVSS2_TemporalScore>5</x:CVSS2_TemporalScore>
<x:CVSS2_BaseVector>AV:N/AC:M/Au:N/C:P/I:P/A:N</x:CVSS2_BaseVector>
<x:CVSS2_TemporalVector>E:F/RL:U/RC:UC</x:CVSS2_TemporalVector>
<x:CVSS1_BaseScore>3.7</x:CVSS1_BaseScore>
<x:CVSS1_TemporalScore>3.2</x:CVSS1_TemporalScore>
<x:NVD_CVSS2_BaseScore>4.3</x:NVD_CVSS2_BaseScore>
<x:NVD_CVSS2_ComponentString>AV:N/AC:M/Au:N/C:N/I:P/A:N</x:NVD_CVSS2_ComponentString>
<x:ImpactRating>4</x:ImpactRating>
<x:Severity>6.1</x:Severity>
<x:EaseofExploit>8</x:EaseofExploit>
<x:UrgencyRating>6.1</x:UrgencyRating>
<x:LastChange>Initial analysis.</x:LastChange>
<x:VulnerableSystems>
<x:VulnerableSystem>
<x:Title><![CDATA[SonarSource Sonar 3.4.1 cpe:/a:sonarsource:sonar:3.4.1 SYMC]]></x:Title>
</x:VulnerableSystem>
</x:VulnerableSystems>
<x:ShortSummary><![CDATA[Sonar is prone to multiple cross-site scripting vulnerabilities.]]></x:ShortSummary>
<x:Impact>An attacker may leverage these issues to execute arbitrary script code in the browser of an unsuspecting user in the context of the affected site. This may allow the attacker to steal cookie-based authentication credentials and launch other attacks.</x:Impact>
<x:TechnicalDescription><![CDATA[Sonar is the open source platform for code quality inspection.

The application is prone to multiple cross-site scripting vulnerabilities because it fails to sanitize user-supplied input submitted to the following scripts and parameters:

&apos;index.php &apos; : &apos;search&apos;, &apos;assignee_login&apos;,
&apos;author_login&apos;
&apos;sources.php&apos; : &apos;resource&apos;

An attacker may leverage these issues to execute arbitrary script code in the browser of an unsuspecting user in the context of the affected site. This may allow the attacker to steal cookie-based authentication credentials and launch other attacks.

Sonar 3.4.1 is vulnerable; other versions may also be affected.]]>
</x:TechnicalDescription>
<x:AttackScenario><![CDATA[1. An attacker scans for and locates a site running the affected application.

2. The attacker crafts a URI link that includes malicious script code designed to leverage one of these issues.

3. The attacker uses email or other means to distribute the malicious link and entices an unsuspecting user to follow it.

4. When the user follows the link, the attacker-specified script code runs in their browser in the context of the affected site.

A successful exploit may let the attacker steal cookie-based authentication credentials and launch other attacks.]]></x:AttackScenario>
<x:Exploit><![CDATA[Attackers can exploit these issues by enticing an unsuspecting victim into following a malicious URI.

The following example URIs are available:

http://www.example.com/dependencies/index? search="&amp;gt;&amp;lt;script&amp;gt;alert(/devilteam.pl/)&amp;lt;/script&amp;gt;

http://www.example.com/dashboard/index/41730? did=4&amp;amp;period=3"&amp;gt;&amp;lt;script&amp;gt;alert(/devilteam.pl/)&amp;lt;/script&am p;gt;

http://www.example.com/reviews/index?review_id=&amp;amp;statuses[]=OPEN&amp;amp;statuses[]=REOPENED&amp;amp;severities[]=&amp;amp;projects[]=&amp;amp;amp;author_login=&amp;amp;assignee_login="&amp;gt;&amp;lt;script&amp;gt;alert(/devilteam.pl/)&amp;lt;/script&amp;gt;&amp;amp;false_positives=without&amp;amp;sort=&amp;amp;asc=false&amp;amp;commit=Search

http://www.example.com/reviews/index?review_id=&amp;amp;statuses[]=OPEN&amp;amp;statuses[]=REOPENED&amp;amp;severities[]=&amp;amp;projects[]=&amp;amp;amp;author_login="&amp;gt;&amp;lt;script&amp;gt;alert(/devilteam.pl/)&amp;lt;/script&amp;gt;&amp;amp;assignee_login=&amp;amp;false_positives=without&amp;amp;sort=&amp;amp;asc=false&amp;amp;commit=Search

http://www.example.com/api/sources?resource=&amp;lt;script&amp;gt;alert(/devilteam.pl/)&amp;lt;/script&amp;gt;&amp;amp;format=txt

]]></x:Exploit>
<x:MitigatingStrategies>
<x:MitigatingStrategy>
<x:Title><![CDATA[Block external access at the network boundary, unless external parties require service.]]></x:Title>
<x:Description><![CDATA[If global access isn&apos;t needed, filter access to the affected computer at the network boundary. Restricting access to only trusted computers and networks might greatly reduce the likelihood of a successful exploit.]]></x:Description>
</x:MitigatingStrategy>
<x:MitigatingStrategy>
<x:Title><![CDATA[Run all software as a nonprivileged user with minimal access rights.]]></x:Title>
<x:Description><![CDATA[Attackers may successfully exploit client flaws in the browser through cross-site scripting vulnerabilities. When possible, run client software as regular user accounts with limited access to system resources. This may limit the immediate consequences of client-side vulnerabilities. ]]></x:Description>
</x:MitigatingStrategy>
<x:MitigatingStrategy>
<x:Title><![CDATA[Do not follow links provided by unknown or untrusted sources.]]></x:Title>
<x:Description><![CDATA[Web users should be cautious about following links to websites that are provided by unfamiliar or suspicious sources. Filtering HTML from emails may help remove a possible vector for transmitting malicious links to users. ]]></x:Description>
</x:MitigatingStrategy>
<x:MitigatingStrategy>
<x:Title><![CDATA[Set web browser security to disable the execution of script code or active content.]]></x:Title>
<x:Description><![CDATA[Since exploiting cross-site scripting issues often requires malicious script code to run in browsers, consider disabling script code and active content support within a client browser as a way to prevent a successful exploit. Note that this mitigation tactic might adversely affect legitimate sites that rely on the execution of browser-based script code. ]]></x:Description>
</x:MitigatingStrategy>
</x:MitigatingStrategies>
<x:Solutions>
<x:Workaround><![CDATA[Workaround
]]></x:Workaround>
<x:Solution><![CDATA[Currently, we are not aware of any vendor-supplied patches. If you feel we are in error or are aware of more recent information, please mail us at: vuldb@securityfocus.com.]]></x:Solution>
</x:Solutions>
<x:Credit>DevilTeam</x:Credit>
<x:ChangeLogs>
<x:ChangeLog>
<x:Title><![CDATA[2013.02.15: Initial analysis.]]></x:Title>
</x:ChangeLog>
</x:ChangeLogs>
<x:References>
<x:Reference>
<x:Title><![CDATA[Web Page:Sonar Homepage (SonarSource) SonarSource]]></x:Title>
<x:URL><![CDATA[http://www.sonarsource.com/products/software/sonar/]]></x:URL>
<x:Description><![CDATA[http://www.sonarsource.com/products/software/sonar/]]></x:Description>
</x:Reference>
<x:Reference>
<x:Title><![CDATA[Web Page:Sonar v.3.4.1 =&amp;gt; XSS (CWE-79) (DevilTeam) DevilTeam]]></x:Title>
<x:URL><![CDATA[http://cxsecurity.org/issue/WLB-2013020088]]></x:URL>
<x:Description><![CDATA[http://cxsecurity.org/issue/WLB-2013020088]]></x:Description>
</x:Reference>
</x:References>
<x:URL>https://alerts.symantec.com/loaddocument.aspx?GUID=cffd18f0-7b75-4c6a-adc0-74f480808fff</x:URL>
<x:OVALDefinitions />
</x:AlertDocument>
</Alerts>

--xml结束---

最佳答案

也许您正在寻找 $data->{'x:AlertDocument'}{'x:BugTraqID'}


我更喜欢 XML::LibXML。无论文档中使用什么前缀(如果有),以下内容都将起作用。 (您永远不必关心文档中使用的前缀。)

#!/usr/bin/perl

use strict;
use warnings;

use XML::LibXML qw( );
use XML::LibXML::XPathContext qw( );

my $parser = XML::LibXML->new();
my $doc = $parser->parse_file("tms.xml");

my $xpc = XML::LibXML::XPathContext->new($doc);
$xpc->registerNs(x => 'urn:alerts.symantec.com');

for my $alert_doc ($xpc->findnodes('/Alerts/x:AlertDocument')) {
my ($bug_traq_id) = $xpc->findnodes('x:BugTraqID', $alert_doc);
print $bug_traq_id->textContent(), "\n";
}

关于xml - 使用 Perl XML::Simple 解析带有命名空间的 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14906247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com