به نام خدا دانشگاه صنعتی امیرکبیر دانشکده مهندسی کامپیوتر و فناوري اطلاعات آسیب پذیري هاي تزریق SQL CSRF و XSS اراي ه دهنده: محمود قربانزاده تحت نظر: دکتر حمید رضا شهریاري مهر 1393
ده آسیب پذیري برتر (در سال 2013) Owasp 2 / 36
دریافت ورودي هاي کاربر ( ) داده مربوط به درخواست get $_GET ( ) داده مربوط به درخواست post $_POST ( داده ي مربوط به درخواست هاي get post و ) $_REQUEST ) داده ي مربوط به کوکی ( $_COOKIE ) داده ي مربوط به بارگذاري فایل ( $_FILES ) داده هاي سرور ( $_SERVER 3 / 36
متدهاي ارسال ورودي هاي کاربر ($_POST $_GET) 4 / 36
دریافت ورودي هاي کاربر ($_REQUEST و $_POST $_GET) 5 / 36
ورودي هاي مخرب ورودي هاي مستقیما دریافت شده از کاربر $_POST و... مانند $_GET ورودي هاي دریافت شده با واسطه از کاربر Session با واسطه فایل با واسطه پایگاه دادهها با واسطه متغیرهاي کوکی و 6 / 36
URL (Uniform Resource Locator) http://siteaddress/index.php?x=1&y=2 7 / 36
نمونه اي از HTTP Request GET POST 8 / 36
برنامه هاي آموزشی NOWASP http://sourceforge.net/projects/mutillidae/ DVWA http://www.dvwa.co.uk/ 9 / 36
برنامه هاي آموزشی 10 / 36
تشخیص آسیب پذیري روش تشخیص جعبه سیاه عدم دسترسی به متن برنامه روش تشخیص جعبه سفید دسترسی به متن برنامه 11 / 36
دستورهاي SQL select columns from table_name where condition; insert into table_name values (value1, value2); update table_name set column1=value1 where condition; delete from table_name where condition; 12 / 36
آسیب پذیري تزریق SQL استفاده از داده ي مخرب در ساخت پرس وجو تغییر ساختار منطقی پرس وجو اجراي پرس وجوي دلخواه توسط حمله کننده 13 / 36
نمونه کد آسیب پذیر (پرس وجوي (select Select * from users where username = '$username' and password = '$password' 14 / 36
نمونه کد آسیب پذیر (پرس وجوي (insert INSERT INTO users (username, password, enable) VALUES ('$username', '$password', '0') 15 / 36
نمونه کد آسیب پذیر (پرس وجوي (update UPDATE users SET password='$password' WHERE username='$username' 16 / 36
نمونه کد آسیب پذیر (پرس وجوي (delete DELETE FROM users where username = '$username' and password = '$password' 17 / 36
درخت پارس پرس وجو تغییر درخت پارس مربوط به پرس وجوي موردنظر 18 / 36
Cookie Client (e.g. Firefox) GET /*.html HTTP/1.1 Host: www.example.com GET /*.html HTTP/1.1 Host: www.example.com Cookie: name=value Accept: */* www.example.com HTTP/1.1 200 OK Content-type: text/html Set-Cookie: name=value (content of page) 19 / 36
Session Client (e.g. Firefox) GET /*.html HTTP/1.1 Host: www.example.com GET /*.html HTTP/1.1 Host: www.example.com Cookie: name=session id Accept: */* www.example.com HTTP/1.1 200 OK Content-type: text/html Set-Cookie: name=session id (content of page) 20 / 36
آسیب پذیري XSS استفاده از داده ي مخرب در رشته هاي ارسالی به مرورگر تغییر ساختار دستورهاي اجرایی سمت مرورگر اجراي دستور جاوا اسکریپت دلخواه توسط حمله کننده 21 / 36
دستورهاي جاوا اسکریپت <script> alert() </script> <img src="none" onerror="alert()"> <form action="" method="post" onsubmit="alert()"> <input type='submit' value='submit'> </form> <a onmouseover="alert()">link</a> 22 / 36
انواع آسیب پذیري XSS Reflected XSS Persistent XSS DOM XSS 23 / 36
نمونه کد آسیب پذیر (Reflected XSS) 24 / 36
حمله Reflected XSS Attacker Victim Web Server 25 / 36
نمونه کد آسیب پذیر (Persistent XSS) 26 / 36
حمله Persistent XSS Attacker 1. ذخیره کد مخرب Victim Web Server 27 / 36
نمونه کد آسیب پذیر (DOM XSS) 28 / 36
حمله DOM XSS Attacker Victim Web Server 29 / 36
آسیب پذیري CSRF یک آسیبپذیري در وبسایت است که به حملهکننده اجازه میدهد تا قربانی را مجبور نماید تا یک عمل حساس امنیتی را تحت نشست خود انجام دهد. یک انجام هدف: عمل حساس قربانی نشست تحت عمل حساس امنیتی: /EditDocument.aspx /Login.do /CreateAdmin.php /UpdateStatus/ 30 / 36
آسیب پذیري CSRF درخواست GET یک ارسال براي قربانی نمودن مجبور <img src= http://site.com/transfer.php?fromacct=20 42&toacct=4497&m=1000 /> (GET) 31 / 36
آسیب پذیري CSRF درخواست POST یک ارسال براي قربانی نمودن مجبور 32 / 36
CSRF تفاوت آسیب پذیري هاي XSS و در XSS مرورگر دستورهاي میکند. (زیرا از طرف وبسایتی است) بدخواه جاوا اسکریپت را که به آن اعتماد دارد فراهم اجرا شده در Server CSRF توسط Clientي که به یک عمل آن اعتماد حساس را انجام دارد ارسال شده میدهد. است) (زیرا 33 / 36
تشخیص آسیب پذیري XSS (روش جعبه سیاه) Acunetix ابزار AppScan ابزار 34 / 36
ابزار Pixy تحلیل بر روي متن برنامه تحلیل جریان داده قابل اجرا تحت لینوکس تشخیص آسیب پذیري (روش جعبه سفید) ابزار Rips تحلیل بر روي متن برنامه تحلیل جریان داده قابل اجرا تحت وب http://sourceforge.net/projects/rips-scanner/ 35 / 36
با تشکر از توجه شما 36 / 36