﻿
{"id":15605,"date":"2020-05-01T16:07:02","date_gmt":"2020-05-01T16:07:02","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=15605"},"modified":"2020-05-01T16:07:02","modified_gmt":"2020-05-01T16:07:02","slug":"asp-net-core-open-redirection-attacts","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/asp-net-core-open-redirection-attacts\/","title":{"rendered":"Asp.NET Core &#8211; Open Redirection Attacts"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimiz bir Asp.NET Core uygulamas\u0131nda Open Redirection Attacts olarak isimlendirilen sald\u0131r\u0131n\u0131n nas\u0131l ve hangi \u015fekillerle ger\u00e7ekle\u015ftirildi\u011fini inceleyecek ve korunma y\u00f6ntemlerini irdeleyece\u011fiz.<\/p>\n<p><strong>Open Redirection Attacts Sald\u0131r\u0131s\u0131 Nedir?<\/strong><br \/>\nOpen Redirection Attacts, kullan\u0131c\u0131lar\u0131n y\u00f6nlendirildi\u011fi operasyonlarda k\u00f6t\u00fc niyetli ki\u015filer taraf\u0131ndan fark\u0131nda olmaks\u0131z\u0131n yan\u0131lt\u0131c\u0131 adreslere y\u00f6nlendirilerek kullan\u0131c\u0131 bilgilerinin \u00e7al\u0131nmas\u0131n\u0131 ama\u00e7layan bir sald\u0131r\u0131 \u00e7e\u015fitidir. Genellikle kullan\u0131c\u0131n\u0131n yetkisiz eri\u015fim sa\u011flamaya \u00e7al\u0131\u015ft\u0131\u011f\u0131 sayfalar taraf\u0131ndan login sayfas\u0131na y\u00f6nlendirilerek yap\u0131lan giri\u015f i\u015flemi neticesinde tekrar ilgili sayfaya otomatik y\u00f6nlendirilmesi durumlar\u0131nda meydana gelmektedir. Sald\u0131rgan bu sayfalar\u0131n bir modelini olu\u015fturarak kullan\u0131c\u0131ya bir \u015fekilde ula\u015ft\u0131rabilir ve kullan\u0131c\u0131n\u0131n verilerini bu model \u00fczerinden elde edebilir.<\/p>\n<p>Bunun i\u00e7in hepsiburada.com sitesinden ger\u00e7ek hayata dair bir \u00f6rnek verebiliriz.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Open-Redirection-Attacts.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/04\/Asp.NET-Core-Open-Redirection-Attacts.gif\" alt=\"Asp.NET Core - Open Redirection Attacts\" width=\"300\" height=\"300\" class=\"alignleft size-full wp-image-15610\" \/><\/a><br \/>\nYandaki g\u00f6rseli incelerseniz e\u011fer herhangi bir \u00fcr\u00fcn\u00fc be\u011fenebilmeniz i\u00e7in oturumunuzun a\u00e7\u0131k olmas\u0131 gerekti\u011finden dolay\u0131 sizi giri\u015f sayfas\u0131na y\u00f6nlendirmektedir. URL&#8217;e bakarsan\u0131z &#8216;ReturnUrl&#8217; query string de\u011ferini g\u00f6r\u00fcrs\u00fcn\u00fcz. Burada hangi \u00fcr\u00fcnden login sayfas\u0131na geldi\u011finize dair url bilgisi tutulmaktad\u0131r ve giri\u015f ba\u015far\u0131l\u0131 oldu\u011fu taktirde yine o sayfaya y\u00f6nlendirme i\u015flemi yap\u0131lmaktad\u0131r.<\/p>\n<p>\u0130\u015fte burada k\u00f6t\u00fc niyetli ki\u015fi devreye girmekte ve geri d\u00f6n\u00fc\u015f de\u011feri tasar\u0131msal a\u00e7\u0131dan hepsiburada.com login sayfas\u0131yla birebir ayn\u0131 olan kendi tasarlad\u0131\u011f\u0131 siteye kullan\u0131c\u0131y\u0131 y\u00f6nlendirecek \u015f\u00f6yle bir link eri\u015ftirmektedir.<\/p>\n<p><em style=\"color:blue;\">https:\/\/www.hepsiburada.com\/uyelik\/giris?ReturnUrl=https%3A%2F%2F<span style=\"color:red;\">www.hepsiburada<strong style=\"color:purple;\">1<\/strong>.com<\/span>%2Fyuzuklerin-efendisi-yuzuk-kardesligi-j-r-r-tolkien-p-KMETIS0016%23likeProduct<\/em><\/p>\n<p>Bu linki k\u00e2h \u00e7ekici bir i\u00e7eri\u011fe sahip mail \u00fczerinden k\u00e2h forumlarda yahut bloglarda yapt\u0131\u011f\u0131 herhangi bir payla\u015f\u0131m \u00fczerinden hepsiburada.com kullan\u0131c\u0131lar\u0131na eri\u015ftirilebilir. Sald\u0131rgan bir \u015fekilde a\u011f\u0131n\u0131 kurup gerekli tertibat\u0131 g\u00f6sterdikten sonra av\u0131n a\u011fa yakalanmas\u0131n\u0131 beklemeye \u00e7ekilecek, sabredecektir.<\/p>\n<p>E\u011fer ki a\u011fa tak\u0131lan bir kurban olurda linke t\u0131klarsa bundan sonraki s\u00fcre\u00e7 \u015f\u00f6yle seyredecektir. Kurban ilgili link \u00fczerinden hepsiburada.com oturumunu a\u00e7t\u0131\u011f\u0131 taktirde &#8216;hepsiburada1.com&#8217; isimli siteye y\u00f6nlendirilecek ve kullan\u0131c\u0131dan tekrardan kullan\u0131c\u0131 ad\u0131 ve \u015fifre istenecektir. Haliyle tasar\u0131m birebir ayn\u0131 olaca\u011f\u0131ndan dolay\u0131 kullan\u0131c\u0131 tekrardan giri\u015f bilgilerini yazacak ve k\u00f6t\u00fc niyetli kullan\u0131c\u0131ya fark\u0131nda olmaks\u0131z\u0131n oturum bilgilerini teslim etmi\u015f olacakt\u0131r. Tabi k\u00f6t\u00fc niyetli ki\u015fi bu s\u00fcre\u00e7te herhangi bir \u015f\u00fcpheye yer b\u0131rakmazcas\u0131na kurban\u0131 ger\u00e7ek siteye y\u00f6nlendirecek, ee zaten bir \u00f6nceki giri\u015fte oturum bilgileri esasen do\u011fru olaca\u011f\u0131 i\u00e7in kullan\u0131c\u0131 hi\u00e7bir \u015feyden habersiz internet gezintisine devam edecektir.. <\/p>\n<p>Ge\u00e7mi\u015f olsun&#8230;<\/p>\n<p>Bu sald\u0131r\u0131 k\u00f6t\u00fc niyetli ki\u015fi taraf\u0131ndan sitedeki i\u015fleyi\u015f \u00fczerindeki bir mekanizmaya yap\u0131lan manevratik hamle ile ger\u00e7ekle\u015ftirilece\u011finden dolay\u0131 neticede olu\u015facak veri kayb\u0131n\u0131n yahut kullan\u0131c\u0131ya yans\u0131t\u0131lacak ekonomik bir zarar\u0131n sorumlusu b\u00fcy\u00fck oranda sitenin sahibi ve geli\u015ftiricileri olacakt\u0131r. Evet, b\u00fcy\u00fck oranda site taraf\u0131 olacakt\u0131r lakin bu durum kullan\u0131c\u0131lar\u0131n her \u00f6nlerine gelen maildeki veya sayfadaki linke t\u0131klaman\u0131n sorumsuzlu\u011funun me\u015frulu\u011fu anlam\u0131na gelmemekte, internette gezerken bilin\u00e7li olman\u0131n ve belirli bir seviyede internet okur yazarl\u0131\u011f\u0131n\u0131n \u015fart oldu\u011funu g\u00f6stermektedir. <\/p>\n<p>Dolay\u0131s\u0131yla bu sald\u0131r\u0131ya kar\u015f\u0131 gerekli \u00f6nlemi web geli\u015ftiricileri almal\u0131 ve kullan\u0131c\u0131lara g\u00f6n\u00fcl rahatl\u0131\u011f\u0131yla i\u015flem yapabilecekleri bir ortam sunmal\u0131d\u0131rlar. Tabi kullan\u0131c\u0131larda bahsedilen gerekli nitelikler i\u00e7in \u00e7abalamal\u0131 ve internetteki her g\u00fcvenli\u011fin bir zaafiyeti olabilece\u011fini d\u00fc\u015f\u00fcnerek ona g\u00f6re ki\u015fisel bilgilerini payla\u015fmal\u0131 ve pop\u00fcler dahi olsa bildi\u011fi ve kullanmay\u0131 tercih etti\u011fi web sitelerine bir yerden ya da mailden y\u00f6nlendirme olmaks\u0131z\u0131n direkt olarak taray\u0131c\u0131 adres \u00e7ubu\u011fundan manuel olarak eri\u015fim sa\u011flamal\u0131d\u0131r. Ya\u015fayan bilir lakin ya\u015famayanlar\u0131n kula\u011f\u0131na k\u00fcpe olsun \ud83d\ude42<\/p>\n<p><strong>Open Redirection Attacts Sald\u0131r\u0131s\u0131na Kar\u015f\u0131 Nas\u0131l \u00d6nlem Al\u0131n\u0131r?<\/strong><br \/>\nEsas\u0131nda bir sald\u0131r\u0131ya tespit edilenden ziyade akl\u0131n\u0131za gelen -makul olduk\u00e7a- t\u00fcm \u00f6nlemleri alman\u0131z gerekmektedir. \u015eahsen sizlere bu sald\u0131r\u0131ya kar\u015f\u0131 iki y\u00f6ntem sunacak olsamda sizler tabii ki kulland\u0131\u011f\u0131n\u0131z web teknolojisinin yahut mimarisinin sizlere sunmu\u015f oldu\u011fu yap\u0131lar\u0131 veya k\u00fct\u00fcphaneleri kullanabilir ya da third party k\u00fct\u00fcphanelerle hayaliniz do\u011frultusunda muazzam \u00f6nlemler alabilirsin. <\/p>\n<p>\u0130lk olarak alaca\u011f\u0131n\u0131z \u00f6nlem &#8216;ReturnUrl&#8217; d\u00f6n\u00fc\u015f parametresinin bar\u0131nd\u0131rd\u0131\u011f\u0131 de\u011ferin kesinlikle web uygulamas\u0131yla ayn\u0131 origin&#8217;e sahip olup olmad\u0131\u011f\u0131n\u0131 do\u011frulaman\u0131z gerekmektedir. Bunu onlarca farkl\u0131 y\u00f6ntemle ger\u00e7ekle\u015ftirebilece\u011finiz gibi Asp.NET Core MVC uygulamalar\u0131nda &#8216;Url.IsLocalUrl&#8217; kontrol\u00fcyle ger\u00e7ekle\u015ftirebilirsiniz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        public IActionResult Login(string ReturnUrl)\r\n        {\r\n            if (Url.IsLocalUrl(ReturnUrl))\r\n                return Redirect(ReturnUrl);\r\n            return Redirect(&quot;\/&quot;);\r\n        }\r\n<\/pre>\n<p>\u0130kinci alternatif yol ise <a href=\"https:\/\/www.gencayyildiz.com\/blog\/asp-net-core-identity-two-factor-authentication-nedir\/\" rel=\"noopener noreferrer\" target=\"_blank\">Two Factor Authentication<\/a> ile iki a\u015famal\u0131 do\u011frulama yap\u0131larak kullan\u0131c\u0131 giri\u015flerinin ger\u00e7ekle\u015ftirilmesidir. K\u00f6t\u00fc niyetli ki\u015fi her ne kadar kullan\u0131c\u0131 bilgilerini elde etmi\u015f olsa dahi web uygulamas\u0131nda oturumu a\u00e7abilmek i\u00e7in art\u0131k kullan\u0131lan ikinci a\u015famadaki do\u011frulama teknolojisine g\u00f6re kullan\u0131c\u0131n\u0131n email ya da telefonunu elde etmesi gerekmektedir. Haliyle bu durum kullan\u0131c\u0131y\u0131 ka\u00e7\u0131rmaktan ba\u015fka \u00e7are b\u0131rakmayaca\u011f\u0131 i\u00e7in k\u00f6t\u00fc niyetli ki\u015finin i\u015fini olduk\u00e7a zorla\u015ft\u0131rmaktad\u0131r.<\/p>\n<p>Konuya dair inceleme i\u00e7in Two Factor Authentication y\u00f6ntemlerinden biri olan <a href=\"https:\/\/www.gencayyildiz.com\/blog\/asp-net-core-google-microsoft-authenticator-ile-two-factor-authentication\/\" rel=\"noopener noreferrer\" target=\"_blank\">Google &#038; Microsoft Authenticator \u0130le Two Factor Authentication<\/a> ba\u015fl\u0131kl\u0131 yaz\u0131m\u0131 okuyabilirsiniz.<\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Bu i\u00e7eri\u011fimiz bir Asp.NET Core uygulamas\u0131nda Open Redirection Attacts olarak isimlendirilen sald\u0131r\u0131n\u0131n nas\u0131l ve hangi \u015fekillerle ger\u00e7ekle\u015ftirildi\u011fini inceleyecek ve korunma y\u00f6ntemlerini irdeleyece\u011fiz. Open Redirection Attacts Sald\u0131r\u0131s\u0131 Nedir? Open Redirection Attacts, kullan\u0131c\u0131lar\u0131n y\u00f6nlendirildi\u011fi operasyonlarda&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":15425,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3102,3103],"tags":[3488,3487],"class_list":["post-15605","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-asp-net-core","category-asp-net-core-3-1","tag-asp-net-core-open-redirection-attacts","tag-open-redirection-attacts"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/15605","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=15605"}],"version-history":[{"count":40,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/15605\/revisions"}],"predecessor-version":[{"id":15646,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/15605\/revisions\/15646"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/15425"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=15605"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=15605"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=15605"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}