Как отключить обработку DTD для предотвращения атаки XXE в MSSOAP.SOAPClinet30 в Classic ASP - PullRequest
1 голос
/ 14 октября 2019

Я использую MSSOAP.SOAPClinet30 для выполнения запросов веб-службы SOAP с использованием Classic ASP, который возвращает XML и имеет внешнюю сущность, которую он обрабатывает.

  SET objSoapClient = Server.CreateObject("MSSOAP.SoapClient30")
        objSoapClient.ClientProperty("ServerHTTPRequest") = True
        Call objSoapClient.mssoapinit("URL","Method")
        If Len(base64str & "") > 0 Then
          strOutput = objSoapClient.ParseDocNew("Data","filename.docx",base64str,"","","","")
        End If

Предположим, метод веб-службы возвращает ниже XML:

<!DOCTYPE doc [    
    <!ENTITY win SYSTEM “c:\windows\win.ini">
]>
<doc>
    &win;
</doc>

В этом случае Он обрабатывает внешнюю сущность и информацию Раскрытия.

Итак, есть ли способ предотвратить обработку DTD с помощью «MSSOAP.SoapClient30» или любого другого соответствующего компонентакоторый я могу использовать в Classic ASP.

...