pre*_*eja 20 c# serialization json.net
在这个链接上,在备注部分提到了" TypeNameHandling".在什么情况下,如果使用序列化/反序列化来自外部源的JSON会有害SerializationBinder?一个工作的例子将不胜感激.
jlv*_*ero 31
使用TypeNameHandling.All和不使用SerializationBinder进行反序列化时,json.net将尝试创建一个类型的实例,该类型作为JSON中的元数据.
public class Car
{
public string Maker { get; set; }
public string Model { get; set; }
}
{
"$type": "Car",
"Maker": "Ford",
"Model": "Explorer"
} //create a Car and set property values
Run Code Online (Sandbox Code Playgroud)
但攻击者可能会向您发送代码或框架中存在的危险类型.
即from 这里 System.CodeDom.Compiler.TempFileCollection是一个可序列化的类,其目的是维护一个由编译过程产生的临时文件列表,并在不再需要它们时删除它们.为了确保删除文件,该类实现了一个终结器,当垃圾收集器清理对象时将调用该终结器.攻击者可以构建此类的序列化版本,将其内部文件集合指向受害者系统上的任何文件.这将在反序列化后的某个时刻删除,而不会与反序列化应用程序进行任何交互.
[Serializable]
public class TempFileCollection
{
private Hashtable files;
// Other stuff...
~TempFileCollection()
{
if (KeepFiles) {return}
foreach (string file in files.Keys)
{
File.Delete(file);
}
}
}
{
"$type": "System.CodeDom.Compiler.TempFileCollection",
"BasePath": "%SYSTEMDRIVE",
"KeepFiles": "False",
"TempDir": "%SYSTEMROOT%"
} // or something like this, I just guessing but you got the idea
Run Code Online (Sandbox Code Playgroud)
Alvaro Mu\xc3\xb1oz 和 Oleksandr Mirosh 的黑帽论文中还发现了一些其他攻击工具https://www.blackhat.com/docs/us-17/thursday/us-17-Munoz-Friday-The-第 13-JSON-攻击-wp.pdf。这些都是:
\n\nSystem.Configuration.Install.AssemblyInstaller- 攻击向量:在程序集加载上执行有效负载。
System.Activities.Presentation.WorkflowDesigner- 攻击向量:在解析 Xaml 有效负载期间执行静态方法。
System.Windows.ResourceDictionary- 攻击向量:攻击者将带有 URL 的有效负载发送到受控服务器,该服务器以 Xaml 有效负载进行响应,并且ContentType = application/xaml+xml目标服务器将在解析 Xaml 有效负载期间执行所需的静态方法。
System.Windows.Data.ObjectDataProvider- 攻击向量:1)调用未编组对象的任何方法;2)我们可以使用受控参数调用所需类型的参数化构造函数;3) 调用任何公共方法,包括具有受控参数的静态方法。
System.Windows.Forms.BindingSource- 攻击向量:任意 getter 调用。
Microsoft.Exchange.Management.SystemManager.WinForms.ExchangeSettingsProvider- 攻击向量:它允许从 setter 跳转到嵌套的 BinaryFormatter 反序列化。
但请注意,攻击小工具类型必须与反序列化的预期类型兼容(可分配给),攻击才能成功。当预期类型为objector时,这始终为真dynamic,并且在其他情况下可能为真。请参阅由于 Json.Net TypeNameHandling auto 导致外部 json 易受攻击?了解详情。
| 归档时间: |
|
| 查看次数: |
7842 次 |
| 最近记录: |