PHP سال 1994 توسط Rasmus Lerdorf ايجاد شد و مخفف واژگان Personal Home Pages به حساب مي آيد. با گسترش قابليت ها و موارد استفاده اين زبان PHP در معناي Hypertext Preprocessor به کار گرفته شد. عبارت پيش پردازشگر (Preprocessor) بدين معني است که PHP اطلاعات را قبل از تبديل به زبان Html پردازش مي کند.
در يك كلام: « PHP يك زبان برنامه نويسي راسكريپتي ( script language ) مثل perl، قابل جاسازي يا تلفيق ( embedding ) در كدهاي HTML (مثل جاوا اسكريپت) ، قابل اجرا بر روي سيستمهاي مختلف مثل لينوكس و ويندوز، با كابردهاي وسيع براي برنامه نويسي پيشرفته در وب است.»
درضمن Server-side هم هست يعني مثل ASP روي سرور اجرا و خروجيش بصورت يك فايل HTML تحويل شما مي شود بر خلاف JavaScript كه Client-Side است. پس لازم نيست مرورگر شما خاصيت اضافه اي داشته باشد.
اگر چه پي.اچ.پي syntax خودش رو از C قرض! گرفته، اما C++ و Perl و Java هم از عنايت ايشون بي نصيب نمونده اند. شما اگر C بلدين كه خوش بحالتون وگرنه اصلا نگران نباشين. PHP آسون تر از اونيه كه فكرشو بكنين.
پي.اچ.پي و بانك اطلاعاتي:
از آنجائيكه برنامه نويسي حرفه اي بدون بانك اطلاعاتي ( database ) نميشه، پي.اچ.پي هم با خيلي از بانك هاي اطلاعاتي رابطه داره. مثلا،
Adabas D, Ingres, Oracle (OCI7 and OCI8), dBase, InterBase, Ovrimos Empress FrontBase, PostgreSQL , FilePro (read-only), mSQL, Solid, Hyperwave, Direct MS-SQL, Sybase, IBM DB2, MySQL, Velocis, Informix, ODBC, Unix dbm
اما بهتر از همه با MySql كار مي كنه ولاغير!
ديگه چي؟
بغير از بانكهاي اطلاعاتي، پي.اچ.پي كارهاي زير را مثل آب خوردن انجام ميده:
ساخت و پرداخت تصاوير، كارهاي امنيتي، كار با كوكي ها، آپ.لود فايل، پردازش XML و هزارتا + يك كار ديگه.
چه جوري استفاده كنيم؟
به راحتي! هرجا كه خواستين، دستور مورد نظرتون رو بين دو تا علامت "" و "?>" ميذارين.
اينطوري: echo "This is a test"; ?>
مدلهاي ديگه اي هم هست، ولي همين بهتره.
البته كافيه يكبار از يكي از دستورات پي.اچ.پي توي يك فايل HTML استفاده كنين، تا اونوقت براي هميشه بايد فايلتون رو به ".php"
تغيير نوع بدهيد، تا بتونه روي سرور اجرا بشود مگر اينكه ...
يك مثال آبكي:
echo "zoor nazan farsi neveshtam!"; ?>
چند تا نكته:
اول: پي.اچ.پي، case-sensetive است. يعني حساس به حروف. پس $a و $A با هم فرق دارند.
دوم: تمام دستورات در پي.اچ.پي به سميكالن " ; " ختم مي شوند. اين را هيچ وقت فراموش نكنيد.
سوم: اگر بخواهيد توضيحات ( comments ) يك خطي داشته باشيد، بايد از دو علامت "//" استفاده كنيد. و اگر توضيحاتتان در چند خط باشند از "/*" در ابتدا و "*/" در انتهاي توضيح.
چهارم: بين علامت كوتيشن (") و گيومه (') يك فرق كوچيك هست. پي.اچ.پي محتواي بين كوتيشن را تحليل و ترجمه ميكنه، همين!
انواع ( type ):
پي.اچ.پي، 8 تا نوع ( type ) داره:
boolean و integer و float و string و array و object و resource و NULL كه پنج تاي اولي پركاربردتر هستند.
متغيرها:
يك متغير با گذاشتن علامت $ به اول يك اسم ساخته ميشه! دامنه تعريف متغيرها، در ناحيه اي است كه تعريف مي شوند.
بعدا كه تعريف تابع را ياد گرفتيد، مي بينيد كه از يك متغير سراسري همين جوري! نمي شود در بدنه يك تابع استفاده كرد. (اين را گفتم، چون خيلي ها اشتباه مي كنند.)
در ضمن پي.اچ.پي يك عالمه متغير "از پيش تعريف شده" ( predefined ) داره كه خيلي باحالن. براي اينكه اونها رو بينيد كافيه كد زير رو بنويسيد و اجرا كنيد:
echo phpinfo(); ?>
مثلا $_SERVER['PHP_SELF'] كه اسم فايل برنامه رو برمي گردونه. از اين براي مستقل كردن كدهاي برنامه از اسم فايل خيلي استفاده مي شه.
يا $_SERVER['HTTP_USER_AGENT'] كه نوع مرورگرتان را برمي گرداند.
يا $HTTP_POST_VARS و $HTTP_GET_VARS كه براي ارتباط با فرم ها بايد! استفاده بشوند. (البته مي تونيد از $_POST يا $_GET هم استفاده كنيد، به شرطي كه نسخه پي.اچ.پي بالاتر از 4.2 باشه)
اینم یه تعریف از PHP بود حالا >
زمانی که شما میخواهید یک سایت را هک کنید معمولا از 3 راه وارد می شوید .
1. با روش های مهندس اجتماعی یا Pharming که با تروجان و ... انجام می شود .
2.در سایت یا سرور مورد نظر باگ پیدا می کنید .
3. از سرور مورد نظر شل میگیرید .
منظور از شل همان دسترسی از سرور است . حال چگونه باید از سایت مورد نظر دسترسی بگیریم ؟؟ چرا دسترسی میگیریم ؟؟ چه نوع دسترسی در اختیار داریم ؟؟
شما زمانی از سرور مورد نظر شل میگیرید که تمام راهای شما بسته باشد . یعنی سایت مورد نظر باگ نداشته باشد و رورش های مهندس اجتماعی که برفریب دادن انسان ها استوار است بر آن اثر نکند . در این مواقع شما باید از برنامه هایی که از سرور به شما شل می دهند کمک بگیرید .
برای اینکه بتوانید از سرور دسترسی بگیرید باید این برنامه های shell script را بر روی یکی از سایت های سرور مورد نظر آپلود کنید .
زیرا یکی از راهای هک کردن تمام شبکه ها عضو بودن در آن شبکه است . زیرا خیلی اطلاعات از شبکه را بدست می آورید و شما قادر خواهید بود بسیاری از کنترل های آن شبکه را در اختیار داشته باشید . چون یک عضو معتبر آن شبکه هستید . همین موضوع در هک کردن سرور ها هم سرایت خواهد کرد. و با داشتن یک سایت در آن سرور و آپلود کردن shell script ها بر روی آن می توانید از سرور دسترس بگیرید.( اما نه از کل سرور . ابتدا فقط از سایتی که بر روش shell scriptرو آپلود کریدن دسترسی دارین که باید دسترسی خودتونو بالا ببرید و به مقام root برسید) . (root در لینوکس همانند دسترسی administrator در ویندوز است..
حال شما میتوانید یک سایت بر روی سرور هک کنید و یک shell scriptبر روی آن سایت آپلود کنید . یا یک سایت از آن سرور خریداری کنید . یا از یکی از دوستانتن که بر روی آن سرور هاست دارد از آن به مدت چند ساعت قرض بگیرید. تا بتوانید بر روی سرور عملیاتی برای root شدن انجام دهید .
اینکه شما بدان چگونه shell scriptباید آپلود کنید مهم است . زیرا shell scriptها به زبان های مختلفی نوشته می شوند . و بستگی دارد که سرور مورد نظر کدام را ساپورت کند . اگر سرور هدف لینوکس باشد بهتر است شما از php sheller ها که با زبان php نوشته شده اند استفاده کنید .
یکی از بهترین اینگونه php sheller ها c99 نام دادرد . (برای دانلود به پایین صفحه مراجعه کنید ) .
وقتی شما یک php sheller را بر روی یک سایت آپلود می کنید و آنرا اجرا می کنید , چند چیز برای شما باید مهم و الویت اول را داشته باشد .
1. دسترسی مجاز به پوشه ها که در لینوکس به آن ((perm می گویند. بالا ترین دسترسی پوشه ها که perm دارد و به آن 777 هم می گویند دارای امکانات زیر می باشد :
Read - Write - Execute
یعنی شما میتوانید در پوشه بخوانید . بنویسید . تغیر بدهید و حتی یک فایل آپلود کنید . که در php shell ها دسترسی perm به صورت زیر جلوی هر پوشه یا فایل نوشته می شود .
drwxrwxrwx <==== اگر جلوی یک پوشه ای این علامت را درphp shell ها دید بدانید می توانید در آن هر کاری انجام دهید . نظیر : کپی . تغیر دادن . خواندن . نوشتن . اگر عبارت به صورت -rwxrwxrwx <=== بود بدانید آن فایل است . نکته : شما فقط تا زمانی که دسترسی کامل ندارید با اینگونه مقررات مشکل دارید اگر دسترسی کامل داشته باشید حتی در پوشه های بدونه perm که به اینگونه نوشته می شوند :dr-xr-xr-x یا r--r--r-- و نوع های دیگر .. در c99 پوشه و فایل هایی که قابل دستکاری می باشند و یا به اصطلاحی perm هستند به رنگ سبز و بدون perm به رنگ قرمز یا سفید. 2.on یا off بودن قسمت safe-mod .زیرا اگه on باشه به عبارتی شما نمیتونید root بشید . زیرا برای روت شدن باید با comand کار کنید که اگر safe-mod on باشه نمی شه comand اجرا کرد . خوب حالا از بالا تمام آیتم های php shller را یک بار مرور می کنیم : در این قسمت نوع سرویس دهنده سرور و ورژن اون رو نشون می ده Softwar: دراین قسمت اطلاعاتی در بارهی سرور میده uname -a: اگه این قسمت off باشه شما میتونید به دایرکتوری ها برید و کامند اجرا کنید اما اگه on باشه نمی تونید safe-mod: در این قسمت به شما نشون میده که در کدام قسمت از سایت هستید و چه نوع دسترسی داریدc:\drwxrwxrwx : این قسمت مقدار کل فضای هارد سرور و فضای استفاده شده و باقی مانده رو نشون میده: free 5.3GB of 14.96 GB (20.6%) این قسمت به شما درایو های سرور رو نشون می دهDEtected Dirves: و در قسمت پاین تر یک سری ابزار است که خودتون می تونید باهاش کار کنید . ابزاری مثل brut کردن و کرک کردن سایت های دیگه و گرفتن شل بر عکس ( در قسمت های دیگه آموزش داده می شود ) است . خوب در قسمت پاین تر هم شما میبینید اسامی پوشه ها و فایل ها هستش که رو بروش میزان دسترسی هر کدوم رو نوشته . و در قسمت پایین تر هم ابزار هایی از جمله by-pass هستند که شما می تونید با اون پوشه هایی که دسترسی به اون ندارین رو ببینین . و در قسمت Enter هم می تونید دستوراتی مثل بالا بوردن دسترسی و گرفتن revers shell رو بنویسید
در يك كلام: « PHP يك زبان برنامه نويسي راسكريپتي ( script language ) مثل perl، قابل جاسازي يا تلفيق ( embedding ) در كدهاي HTML (مثل جاوا اسكريپت) ، قابل اجرا بر روي سيستمهاي مختلف مثل لينوكس و ويندوز، با كابردهاي وسيع براي برنامه نويسي پيشرفته در وب است.»
درضمن Server-side هم هست يعني مثل ASP روي سرور اجرا و خروجيش بصورت يك فايل HTML تحويل شما مي شود بر خلاف JavaScript كه Client-Side است. پس لازم نيست مرورگر شما خاصيت اضافه اي داشته باشد.
اگر چه پي.اچ.پي syntax خودش رو از C قرض! گرفته، اما C++ و Perl و Java هم از عنايت ايشون بي نصيب نمونده اند. شما اگر C بلدين كه خوش بحالتون وگرنه اصلا نگران نباشين. PHP آسون تر از اونيه كه فكرشو بكنين.
پي.اچ.پي و بانك اطلاعاتي:
از آنجائيكه برنامه نويسي حرفه اي بدون بانك اطلاعاتي ( database ) نميشه، پي.اچ.پي هم با خيلي از بانك هاي اطلاعاتي رابطه داره. مثلا،
Adabas D, Ingres, Oracle (OCI7 and OCI8), dBase, InterBase, Ovrimos Empress FrontBase, PostgreSQL , FilePro (read-only), mSQL, Solid, Hyperwave, Direct MS-SQL, Sybase, IBM DB2, MySQL, Velocis, Informix, ODBC, Unix dbm
اما بهتر از همه با MySql كار مي كنه ولاغير!
ديگه چي؟
بغير از بانكهاي اطلاعاتي، پي.اچ.پي كارهاي زير را مثل آب خوردن انجام ميده:
ساخت و پرداخت تصاوير، كارهاي امنيتي، كار با كوكي ها، آپ.لود فايل، پردازش XML و هزارتا + يك كار ديگه.
چه جوري استفاده كنيم؟
به راحتي! هرجا كه خواستين، دستور مورد نظرتون رو بين دو تا علامت "" و "?>" ميذارين.
اينطوري: echo "This is a test"; ?>
مدلهاي ديگه اي هم هست، ولي همين بهتره.
البته كافيه يكبار از يكي از دستورات پي.اچ.پي توي يك فايل HTML استفاده كنين، تا اونوقت براي هميشه بايد فايلتون رو به ".php"
تغيير نوع بدهيد، تا بتونه روي سرور اجرا بشود مگر اينكه ...
يك مثال آبكي:
echo "zoor nazan farsi neveshtam!"; ?>
چند تا نكته:
اول: پي.اچ.پي، case-sensetive است. يعني حساس به حروف. پس $a و $A با هم فرق دارند.
دوم: تمام دستورات در پي.اچ.پي به سميكالن " ; " ختم مي شوند. اين را هيچ وقت فراموش نكنيد.
سوم: اگر بخواهيد توضيحات ( comments ) يك خطي داشته باشيد، بايد از دو علامت "//" استفاده كنيد. و اگر توضيحاتتان در چند خط باشند از "/*" در ابتدا و "*/" در انتهاي توضيح.
چهارم: بين علامت كوتيشن (") و گيومه (') يك فرق كوچيك هست. پي.اچ.پي محتواي بين كوتيشن را تحليل و ترجمه ميكنه، همين!
انواع ( type ):
پي.اچ.پي، 8 تا نوع ( type ) داره:
boolean و integer و float و string و array و object و resource و NULL كه پنج تاي اولي پركاربردتر هستند.
متغيرها:
يك متغير با گذاشتن علامت $ به اول يك اسم ساخته ميشه! دامنه تعريف متغيرها، در ناحيه اي است كه تعريف مي شوند.
بعدا كه تعريف تابع را ياد گرفتيد، مي بينيد كه از يك متغير سراسري همين جوري! نمي شود در بدنه يك تابع استفاده كرد. (اين را گفتم، چون خيلي ها اشتباه مي كنند.)
در ضمن پي.اچ.پي يك عالمه متغير "از پيش تعريف شده" ( predefined ) داره كه خيلي باحالن. براي اينكه اونها رو بينيد كافيه كد زير رو بنويسيد و اجرا كنيد:
echo phpinfo(); ?>
مثلا $_SERVER['PHP_SELF'] كه اسم فايل برنامه رو برمي گردونه. از اين براي مستقل كردن كدهاي برنامه از اسم فايل خيلي استفاده مي شه.
يا $_SERVER['HTTP_USER_AGENT'] كه نوع مرورگرتان را برمي گرداند.
يا $HTTP_POST_VARS و $HTTP_GET_VARS كه براي ارتباط با فرم ها بايد! استفاده بشوند. (البته مي تونيد از $_POST يا $_GET هم استفاده كنيد، به شرطي كه نسخه پي.اچ.پي بالاتر از 4.2 باشه)
اینم یه تعریف از PHP بود حالا >
زمانی که شما میخواهید یک سایت را هک کنید معمولا از 3 راه وارد می شوید .
1. با روش های مهندس اجتماعی یا Pharming که با تروجان و ... انجام می شود .
2.در سایت یا سرور مورد نظر باگ پیدا می کنید .
3. از سرور مورد نظر شل میگیرید .
منظور از شل همان دسترسی از سرور است . حال چگونه باید از سایت مورد نظر دسترسی بگیریم ؟؟ چرا دسترسی میگیریم ؟؟ چه نوع دسترسی در اختیار داریم ؟؟
شما زمانی از سرور مورد نظر شل میگیرید که تمام راهای شما بسته باشد . یعنی سایت مورد نظر باگ نداشته باشد و رورش های مهندس اجتماعی که برفریب دادن انسان ها استوار است بر آن اثر نکند . در این مواقع شما باید از برنامه هایی که از سرور به شما شل می دهند کمک بگیرید .
برای اینکه بتوانید از سرور دسترسی بگیرید باید این برنامه های shell script را بر روی یکی از سایت های سرور مورد نظر آپلود کنید .
زیرا یکی از راهای هک کردن تمام شبکه ها عضو بودن در آن شبکه است . زیرا خیلی اطلاعات از شبکه را بدست می آورید و شما قادر خواهید بود بسیاری از کنترل های آن شبکه را در اختیار داشته باشید . چون یک عضو معتبر آن شبکه هستید . همین موضوع در هک کردن سرور ها هم سرایت خواهد کرد. و با داشتن یک سایت در آن سرور و آپلود کردن shell script ها بر روی آن می توانید از سرور دسترس بگیرید.( اما نه از کل سرور . ابتدا فقط از سایتی که بر روش shell scriptرو آپلود کریدن دسترسی دارین که باید دسترسی خودتونو بالا ببرید و به مقام root برسید) . (root در لینوکس همانند دسترسی administrator در ویندوز است..
حال شما میتوانید یک سایت بر روی سرور هک کنید و یک shell scriptبر روی آن سایت آپلود کنید . یا یک سایت از آن سرور خریداری کنید . یا از یکی از دوستانتن که بر روی آن سرور هاست دارد از آن به مدت چند ساعت قرض بگیرید. تا بتوانید بر روی سرور عملیاتی برای root شدن انجام دهید .
اینکه شما بدان چگونه shell scriptباید آپلود کنید مهم است . زیرا shell scriptها به زبان های مختلفی نوشته می شوند . و بستگی دارد که سرور مورد نظر کدام را ساپورت کند . اگر سرور هدف لینوکس باشد بهتر است شما از php sheller ها که با زبان php نوشته شده اند استفاده کنید .
یکی از بهترین اینگونه php sheller ها c99 نام دادرد . (برای دانلود به پایین صفحه مراجعه کنید ) .
وقتی شما یک php sheller را بر روی یک سایت آپلود می کنید و آنرا اجرا می کنید , چند چیز برای شما باید مهم و الویت اول را داشته باشد .
1. دسترسی مجاز به پوشه ها که در لینوکس به آن ((perm می گویند. بالا ترین دسترسی پوشه ها که perm دارد و به آن 777 هم می گویند دارای امکانات زیر می باشد :
Read - Write - Execute
یعنی شما میتوانید در پوشه بخوانید . بنویسید . تغیر بدهید و حتی یک فایل آپلود کنید . که در php shell ها دسترسی perm به صورت زیر جلوی هر پوشه یا فایل نوشته می شود .
drwxrwxrwx <==== اگر جلوی یک پوشه ای این علامت را درphp shell ها دید بدانید می توانید در آن هر کاری انجام دهید . نظیر : کپی . تغیر دادن . خواندن . نوشتن . اگر عبارت به صورت -rwxrwxrwx <=== بود بدانید آن فایل است . نکته : شما فقط تا زمانی که دسترسی کامل ندارید با اینگونه مقررات مشکل دارید اگر دسترسی کامل داشته باشید حتی در پوشه های بدونه perm که به اینگونه نوشته می شوند :dr-xr-xr-x یا r--r--r-- و نوع های دیگر .. در c99 پوشه و فایل هایی که قابل دستکاری می باشند و یا به اصطلاحی perm هستند به رنگ سبز و بدون perm به رنگ قرمز یا سفید. 2.on یا off بودن قسمت safe-mod .زیرا اگه on باشه به عبارتی شما نمیتونید root بشید . زیرا برای روت شدن باید با comand کار کنید که اگر safe-mod on باشه نمی شه comand اجرا کرد . خوب حالا از بالا تمام آیتم های php shller را یک بار مرور می کنیم : در این قسمت نوع سرویس دهنده سرور و ورژن اون رو نشون می ده Softwar: دراین قسمت اطلاعاتی در بارهی سرور میده uname -a: اگه این قسمت off باشه شما میتونید به دایرکتوری ها برید و کامند اجرا کنید اما اگه on باشه نمی تونید safe-mod: در این قسمت به شما نشون میده که در کدام قسمت از سایت هستید و چه نوع دسترسی داریدc:\drwxrwxrwx : این قسمت مقدار کل فضای هارد سرور و فضای استفاده شده و باقی مانده رو نشون میده: free 5.3GB of 14.96 GB (20.6%) این قسمت به شما درایو های سرور رو نشون می دهDEtected Dirves: و در قسمت پاین تر یک سری ابزار است که خودتون می تونید باهاش کار کنید . ابزاری مثل brut کردن و کرک کردن سایت های دیگه و گرفتن شل بر عکس ( در قسمت های دیگه آموزش داده می شود ) است . خوب در قسمت پاین تر هم شما میبینید اسامی پوشه ها و فایل ها هستش که رو بروش میزان دسترسی هر کدوم رو نوشته . و در قسمت پایین تر هم ابزار هایی از جمله by-pass هستند که شما می تونید با اون پوشه هایی که دسترسی به اون ندارین رو ببینین . و در قسمت Enter هم می تونید دستوراتی مثل بالا بوردن دسترسی و گرفتن revers shell رو بنویسید
هیچ نظری موجود نیست:
ارسال یک نظر