2017-07-10 10 views
0

完全な第三者の侵入テストに先立って、クライアントの1人がシステムに対して予備的なセキュリティ監査を行っています。SOAPセキュリティのアドバイスが必要

これはわれわれが対処してくれる可能性がある潜在的な悪用を明らかにしましたが、私が同意しているとは確信していませんが、私は彼らを説得することができませんでした。

改ざんされたメッセージをSoapベースのWebサービスの1つに送信でき、エラーを報告していることが報告されています。これは、サーバーがメッセージを処理しようとしたことを示唆しています。

だから要求は次のようになります -

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://example.com/soap/envelope/]]&gt;&gt;&lt;" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <SOAP-ENV:Body> 
     <tns:SomeMethod xmlns:tns="http://example.com/"/> 
    </SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

注意エンコード]] > <>はのxmlnsに挿入:SOAP-ENV属性。

サーバーからの応答は次のとおりです。 -

<soap:Body> 
    <soap:Fault> 
     <faultcode>soap:VersionMismatch</faultcode> 
     <faultstring>Possible SOAP version mismatch: Envelope namespace http://example.com/soap/envelope/]]&gt;&gt;&lt; was unexpected. Expecting http://example.com/soap/envelope/.</faultstring> 
     <detail /> 
    </soap:Fault> 
</soap:Body> 

彼らの引数は、このペイロードがXMLドキュメントに挿入されているので、(おそらくXXEが悪用ようなものに私たちを暴露する)処理されたことを示すことですそのエラーが一般的な500エラーではなくSOAPエラーであるという事実がこれを証明しています。

私はこれが当てはまるとは確信していませんが、私はこれをクライアントに説得するのに苦労しています。この(https://msdn.microsoft.com/en-us/library/aa480498.aspx)の記事によると、XmlSerializerは、SOAP Xmlをパラメータメーターにシリアル化してデシリアライズすることに責任を負うため、これは悪質なSOAPエンベロープを拒否しています。

セキュリティ上の問題があるかどうかは誰にでも確認できますか?それをどうやって解決すればいいの?

答えて

1

セキュリティ上の問題はありますか?それをどうやって解決すればいいの?

セキュリティ上の問題はありません。

SOAPプロトコルでは「SOAPバージョンの不一致」が推奨されていますが、異なるSOAPプロセッサではこの例では異なるエラーメッセージが生成されます。 XML、SOAP、およびその他のWebサービスプロトコルで作業してきた10年以上の経験で、SOAPプロセッサが果たす役割はまったく正当なものです。実際に

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://example.com/soap/envelope/]]&gt;&gt;&lt;" 

を、このXMLは完全に合法である:それは単にURIを結合のxmlnsは、単に期待URI異なるため、XML名前空間の不整合に基づくSOAP-ENV:Envelope資格のタグを拒否します。また、SOAPバージョンミスマッチフォルトを持つSOAPプロセッサによって拒否される必要があります。

+0

多くの回答に感謝します。これは私たちが思ったようなものです。 –

関連する問題