web uygulamaları nasıl hackleniyor?

22
Onur Yılmaz, 9. Yazılım Teknolojileri Semineri, 2015

Upload: nedirtv

Post on 19-Jul-2015

399 views

Category:

Technology


1 download

TRANSCRIPT

Onur Yılmaz, 9. Yazılım Teknolojileri Semineri, 2015

@onuryilmazinfo @netsparker – Güvenlik Araştırmacısı @owasptr – Board Member

Web uygulaması Alan adı Web sunucusu İşletim sistemi Veritabanı Sunucusu vs.

Kullanılan dil ve framework’ten Yazılım geliştiricisinin hatalarından

Kaynaklanan güvenlik açıkları oluşabilmektedir.

Son kullanıcıya kullandığı web uygulaması sayesinde isteği dışında istekler yaptırılmasıdır.

http://bank.com/transfer.do?

acct=MARIA&amount=100000

<a href="http://bank.com/transfer.do?acct=MARIA&amount=100000">View my Pictures!</a> <img src="http://bank.com/transfer.do?acct=MARIA&amount=100000" width="0" height="0" border="0">

Her yapılan GET / POST isteği için token kullanarak kontrol yapmak

ASP.NET MVC için;

@using (Html.BeginForm("Manage", "Account")) { @Html.AntiForgeryToken() }

Uygulamalara, güvenilir olmayan kaynaklardan gelen girdilerin kontrol edilmeden SQL

sorgusunu oluşturan cümlecik içerisinde kullanılmasından kaynaklanmaktadır.

SQL Injection ile veritabanı sunucusuna ve

işletim sistemine tam erişim sağlamak mümkündür.

SQL sorgusuna dinamik olarak gönderilen parametre herhangi bir kontrolden geçmiyorsa

Ve SQL sorgusu çalıştırılırken meydana gelen hata mesajı son kullanıcıya gösteriliyorsa

try { // some stuff related SQL } catch (Exception ex) { lblStatus.Text = ex.Message.ToString(); }

?name=3 SELECT … FROM …. WHERE … = 3

Hata mesajlarını son kullanıcıya göstermemek güzel bir best practice olsa da çözüm değil.

Blacklist çözüm değil. Peki ya çözüm ?

Parameterized Query Prepared Statements http://bobby-tables.com/ http://sqlinjectionwiki.com

[email protected] twitter/onuryilmazinfo