Невозможно проанализировать SDDL в строковой форме - PullRequest
0 голосов
/ 22 октября 2019

Я использую моно-библиотеки c # для анализа следующей строки SDDL

O:S-1-5-21-1356517589-3987021482-2501375073-1001G:S-1-5-21-1356517589-3987021482-2501375073-513D:(A;;FA;;;SY)(A;;FA;;;BA)(A;;FA;;;S-1-5-21-1356517589-3987021482-2501375073-1001) ```

System.ArgumentException : Value was invalid.
  at System.Security.Principal.SecurityIdentifier.ParseSddlForm (System.String sddlForm) [0x00150] in <07615674c8894ff1af94dc4d835a6fbb>:0 
  at System.Security.Principal.SecurityIdentifier..ctor (System.String sddlForm) [0x00014] in <07615674c8894ff1af94dc4d835a6fbb>:0 
  at System.Security.Principal.SecurityIdentifier.ParseSddlForm (System.String sddlForm, System.Int32& pos) [0x0009f] in <07615674c8894ff1af94dc4d835a6fbb>:0 
  at System.Security.AccessControl.RawSecurityDescriptor.ParseSddl (System.String sddlForm) [0x00060] in <07615674c8894ff1af94dc4d835a6fbb>:0 
  at System.Security.AccessControl.RawSecurityDescriptor..ctor (System.String sddlForm) [0x00025] in <07615674c8894ff1af94dc4d835a6fbb>:0 
  at SDDLServer.SecurityDescriptorParser.DecodeSDDLRequest (Sddl.SDDLRequest request) [0x00015] in <9492bfad70e04bedb8a6a6ab8da80576>:0 
  at SDDLServer.TestSecurityDescriptorParser.TestDecodeSDDLRequest () [0x0001b] in <9492bfad70e04bedb8a6a6ab8da80576>:0 
  at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0003b] in <07615674c8894ff1af94dc4d835a6fbb>:0 

Сбой TestDecodeSDDL в этой строке кода

securityDescriptor = new RawSecurityDescriptor(request.StringSddl);

С помощью этого инструмента я смог убедиться, чтоСама строка SDDL является допустимой, но она лучше меня, почему происходит сбой ctor в RawSecurityDescriptor. https://github.com/mono/mono/blob/master/mcs/class/corlib/System.Security.Principal/SecurityIdentifier.cs

1 Ответ

0 голосов
/ 22 октября 2019

в моно библиотеке есть ошибка. Код синтаксического анализа продвигается слишком далеко при разбиении на компоненты O (владелец), G (группа), D (DACL) и S (SACL) https://github.com/mono/mono/pull/17482

...