PDA

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



supportvps
January 3rd, 2014, 16:55
سلام خدمت دوستان یه سری آموزش که واقعا به درد کار با سرور میخوره رو واستون در چند پست قرار میدم اگر وقت شد فیلم هم قرار میدم


اگه با سرورتون هاست اشتراکی میفروشید با دقت این تنظیمات رو انجام بدین چون ممکنه بعضی جلوی اجرای بعضی از اسکریپت هارو بگیره
امنیت رو باید تا حدی بالا برد که به روند کار آسیب نزنه وگرنه میشه سرور رو کلا خاموش کرد که هیچ وقت هک نشه

هم با ssh کار میکنم هم با cpanel
من با ویرایش گر nano کار میکنم
Ctrl+w = جست و جو در فایل
Ctrl+x = ذخیره کردن فایل

فایل php.ini را پیدا کنید

find / -name php.ini


برای من اینجاست


/usr/local/lib/php.ini

همیشه توصیه شده که safe mode (حالت امن) روشن باشد
بعضی وقت ها برای بعضی از اسکریپت ها مشکل ساز خواهد بود
برای فعال کردن آن:

safe_mode = On

در برخی موارد شما می خواهید مالکیت استفاده از یک گروه به بررسی شود در این حالت باید:

safe_mode_gid = On


اگر شما می خواهید فولدر را محدود نمایید که می تواند فایل ها و یا اجرایی داشته باشد
مقادیر زیر را به گونه زیر تنظیم کنید


safe_mode_include_dir = /path/to/dir
safe_mode_exec_dir = /path/to/exec/dir

این مسیر عملگرهای فایل php رو محدود به پوشه مشخص شده میکنه.
این مقدار را من اضافه نکردم چون برای من مشکل ساز شد!!!!!


open_basedir = /path/to/web/root


غیر فعال کردن بعضی از تابع های php

من یک سری تابع آماده کردم که با غیر فعال کردنش مشکلی به اون صورت به وجود نمیاره

این تابع ها بعضی هاش اگه باز باشه واقعا خطرناکه

با غیر فعال کردن بعضی از این تابع ها بعضی از اسکریپت ها به مشکل میخورن


disable_functions = "hell,symlink,shell_exec,ini_restore,imap_body,imap _list,imap_open,popen,stream_select,socket_select, socket_create,socket_create_listen,socket_create_p air,socket_listen,socket_accept,socket_bind,socket _strerror,socket_clear_error,socket_close,socket_c onnect,socket_get_option,socket_getpeername,socket _getsockname,socket_last_error,socket_read,socket_ recv,socket_recvfrom,socket_send,socket_sendto,soc ket_set_block,socket_set_nonblock,socket_set_optio n,socket_shutdown,socket_write,readlink,symlink,li nk,pfsockopen,ini_alter,dl,openlog,syslog,pcntl_ex ec,pcntl_fork,pcntl_signal,pcntl_waitpid,pcntl_wex itstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_w ifstopped,pcntl_wstopsig,pcntl_wtermsig,fpassthru, system,passthru,exec,proc_close,proc_get_status,pr oc_nice,proc_terminate,shell_exec,posix_access,pos ix_ctermid,posix_errno,posix_get_last_error,posix_ getcwd,posix_getegid,posix_geteuid,posix_getgid,po six_getgrgid,posix_getgrnam,posix_getgroups,posix_ getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid,posix_ getrlimit,posix_getsid,posix_getuid,posix_initgrou ps,posix_isatty,posix_kill,posix_mkfifo,posix_mkno d,posix_setegid,posix_seteuid,posix_setgid,posix_s etpgid,posix_setsid,posix_setuid,posix_strerror,po six_times,posix_ttyname,posix_uname,ini_get_all,ph p_uname,phpinfo"


نمایش ارور های php اطلاعاتی را در اختیار هکر قرار میدهد که میتواند
خطرناک باشد.این مقدار برای زمانی است که اسکریپتی ارور دهد بخواهیم رفع
مشکل کنیم

مقدار زیر را به گونه زیر تغییر دهید


display_errors = Off


مقدار زیر را به گونه ی زیر تنظیم کنید


register_globals = Off

برای جلوگیری از سرقت session ها مقادیر زیر را قرار دهید


session.save_path = /var/lib/php
session.cookie_httponly = 1
session.referer_check = your_url.tld

secure_host
January 3rd, 2014, 20:59
با سلام
برخی از مواردی که فرمودید خیلی قدیمی است و دیگر در نسخه های php کنونی جوابگو نیست .
یک سوال هم دارم . میشه بگید دقیقا برخی از توابع که فرمودید مانند hell دقیقا چه کار می کند و با disable کردن این تابع از چی جلوگیری می کند ؟
با تشکر

OmidX
January 3rd, 2014, 23:03
برای جلوگیری از سرقت session ها مقادیر زیر را قرار دهید


در این مورد میشه بیشتر توضیح بدید ؟

ViToN
January 19th, 2014, 17:56
با سلام و عرض وقت بخیر

سوالاتی در این تاپیک شده بود که استارتر گرامی پاسخ نداده بودند , به همین منظور بنده جسارت کردم و جهت رشد علمی انجمن در این زمینه به ترتیب ذیل به سوالات پاسخ داده شد .


با سلام
برخی از مواردی که فرمودید خیلی قدیمی است و دیگر در نسخه های php کنونی جوابگو نیست .
یک سوال هم دارم . میشه بگید دقیقا برخی از توابع که فرمودید مانند hell دقیقا چه کار می کند و با disable کردن این تابع از چی جلوگیری می کند ؟
با تشکر

بله , تقریبا دیگر موارد اشاره شده تاثیر چندانی ندارد (منظور در ورژن های جدید PHP و فعال بودن آپشن suexec است ) .
اما نکته اینجاست که براحتی قابل بایپس شدن است . در رابطه با سوالی که طرح نمودید تابع shell یک فانکشن manual هست و در چند شلر پرکاربرد استفاده شده است . با disable کردن این تابع قسمتی از شلر بدرستی کار نمیکند و عملا برای نوب ها پایان کار دسترسی گرفتن است! از این دست فانکشن ها زیاد دیده میشود که توجه ای به ان ها نمیشود و عملا با اپلای و نصب یک سری از Sec Patch ها عملا دیگر نیاز به قرار دادن حتی یک فانکشن در قسمت disable_function نمیباشد . انشا.. فرصتی باقی باشد مقالات و متود هایی که در این زمینه در چنته دارم را در انجمن قرار خواهم داد .


در این مورد میشه بیشتر توضیح بدید ؟

با استفاده از متودی که استارتر پست کردن session ها به صورت سیف با تعیین مسیر مشخص اجرا میشوند و جلوی کثیری از حملات XSS که موجب ***یده شدن کوکی ها و در نهایت دسترسی میشود گرفته میشود .

secure_host
January 19th, 2014, 23:48
با سلام و عرض وقت بخیر

در رابطه با سوالی که طرح نمودید تابع hell یک فانکشن manual هست و در چند شلر پرکاربرد استفاده شده است . با disable کردن این تابع قسمتی از شلر بدرستی کار نمیکند و عملا برای نوب ها پایان کار دسترسی گرفتن است! از این دست فانکشن ها زیاد دیده میشود که توجه ای به ان ها نمیشود و عملا با اپلای و نصب یک سری از Sec Patch ها عملا دیگر نیاز به قرار دادن حتی یک فانکشن در قسمت disable_funcation نمیباشد . انشا.. فرصتی باقی باشد مقالات و متود هایی که در این زمینه در چنته دارم را در انجمن قرار خواهم داد .
.

با سلام
بله ؟ Manual PHP ؟ دقیقا میشه در مورد این Manual PHP ها یک توضیحی بدید ؟
یعنی شما حرفتان این است که با Manual PHP میشود execute انجام داد ؟
اگر منظورتان این است باید بگویم که این موضوع محال است .
خوشحال میشوم توضیحات شما را بشنوم.
با تشکر

i-whost
January 20th, 2014, 00:08
بله , تقریبا دیگر موارد اشاره شده تاثیر چندانی ندارد (منظور در ورژن های جدید PHP و فعال بودن آپشن suexec است ) .
اما نکته اینجاست که براحتی قابل بایپس شدن است . در رابطه با سوالی که طرح نمودید تابع hell یک فانکشن manual هست و در چند شلر پرکاربرد استفاده شده است . با disable کردن این تابع قسمتی از شلر بدرستی کار نمیکند و عملا برای نوب ها پایان کار دسترسی گرفتن است! از این دست فانکشن ها زیاد دیده میشود که توجه ای به ان ها نمیشود و عملا با اپلای و نصب یک سری از Sec Patch ها عملا دیگر نیاز به قرار دادن حتی یک فانکشن در قسمت disable_funcation نمیباشد . انشا.. فرصتی باقی باشد مقالات و متود هایی که در این زمینه در چنته دارم را در انجمن قرار خواهم داد .


منظور شما تابع shell هست؟ اگر خیر در مورد hell بیشتر توضیح بدهید لطفا

ViToN
January 20th, 2014, 01:38
با سلام
بله ؟ Manual PHP ؟ دقیقا میشه در مورد این Manual PHP ها یک توضیحی بدید ؟
یعنی شما حرفتان این است که با Manual PHP میشود execute انجام داد ؟
اگر منظورتان این است باید بگویم که این موضوع محال است .
خوشحال میشوم توضیحات شما را بشنوم.
با تشکر


با سلام و عرض وقت بخیر


گرامی , منظور بنده از manual , نوشته شدن کد ها به صورت دستی و استفاده از انها میباشد , به مثال کوتاهی اشاره میکنم :



echo $head."<font face='Tahoma' size='2'>Operating System : ".php_uname()."

همان طور که در کد بالا مشاهده میفرمایید پارامتری با نام php_uname استفاده شده است . این تابع php_uname همان خروجی uname -a یا توضیحات کرنل و ... را برخواهد گرداند .

خب حالا در disable_function عبارت :‌ php_uname قرار میدهیم و دیگر این کامند اجرا نخواهد شد .

منظور بنده تابع shell میباشد که در پست اینترو هم به اشتباه hell تایپ شده است .


سپاسگذارم از توجه شما

secure_host
January 20th, 2014, 01:52
با سلام
بنده در پست اولم در این تاپیک به shell اشاره نکردم .بلکه در متن سوال اولم اینطور نوشتم.
یک سوال هم دارم . میشه بگید دقیقا برخی از توابع که فرمودید مانند hell دقیقا چه کار می کند و با disable کردن این تابع از چی جلوگیری می کند ؟
و شما در جواب من hell را فرمودید.
بنده منظور شما از manual function متوجه شدم که شما منظورتان توابعی است که خودمان می نویسیم. ولی در مثالی که شما زدید هیچ تابعی به صورت دستی نوشته نشده است. بلکه توابع خود php را فراخوانی نموده اید که این موضوع به hell بی ربط می باشد.
در ضمن اگر پست اول starter را مشاهده نمایید در لیست فانکشن ها ، این تابع php_uname وجود دارد. که بنده به این تابع اشکال نگرفتم. و فقط hell را پرسیدم.
ممنون میشم توضیحات در مورد hell را اگر دارید ارایه دهید. اگر هم منظورتان همین بوده است که در پست قبل ذکر کردید. از شما تشکر می کنم و منتظر می مانم تا استارتر جواب بدهند.
با تشکر

ViToN
January 20th, 2014, 02:32
خب این نوع طرح سوال شما نشان از پابلیک شدن یک متود هست و بنده سر بسته توضیحاتی ارایه کردم ! بیاید صادق باشیم , استارتر این تاپیک به احتمال ۰.۰۰۰۰۱ درصد از این موضوع و علت استفاده از این تابع اطلاع دارند .!

و در صورت حل شدن این مسیله همان طور که میدانید انقلابی در این زمینه رخ خواهد داد .!!

از دید فکری بنده محال خود محال است , یقین دارم شما هم به این مهم اعتقاد دارید .

اطلاعات مفیدی در این زمینه دارم و فقط سعی در جرقه زدن داشتم .!

و اما ... سوال شما را بی جواب نمیگذارم , قبل از ارایه اطلاعات در این زمینه یک سوال‌ در رابطه با متودی (P8) از شما دارم (One Deal ) . در صورتی که پاسخ دادید یک شلر دست نوشته بنده حقیر را برای شما ارسال میکنم تا penetration را روی یک سرور فول sec انجام دهید و از نتیجه آن حیرت زده شوید .!

در صورت قبول این deal اطلاع دهید تا سوال را برای شما پ.خ کنم .

بلاخره همه ی ما سوالات حل نشده ای داریم .!

سپاسگذارم از توجه شما

secure_host
January 20th, 2014, 02:45
با سلام
بنده در خدمت شما هستم.در صورتی که سوادی داشته باشیم چرا که نه !!!!‌
ولی من همچنان دارم میگم. هیچ تابع php وجود ندارد . که بخواهد execution را انجام دهد. در صورتی که توابع اصلی execution که در کتابخانه php وجود دارد را در سرور بسته باشیم.
هر تابعی که بخواهد به صورت دستی نوشته شود بالاخره در یک جا باید توابعی نظیر exec , shell_exec ,.... را include کند . در غیر این صورت محال است.
با تشکر

ViToN
January 20th, 2014, 03:06
اختیار دارید قربان , شما استاد و سرلوحه هستید , جسارت بنده را ببخشید .

در رابطه با صحبت شما کاملا Logical است و درک میکنم .

در ابتدا شما را به مطالعه این پست دعوت میکنم :

http://www.webhostingtalk.ir/f87/101280/post969719/?highlight=#post969719


در نتیجه این مسیله امکان پذیر میباشد . البته این موضوع بر روی 5.2.17 اکسپولیت شده است و طی آخرین بررسی بنده بر روی آخرین ورژن php نیز این مورد قابل بهره برداری میباشد .

سوال را بزودی خدمت شما ارسال میکنم .


موید باشید

secure_host
January 20th, 2014, 03:29
با سلام
آره پست خودمه. ولی درک نمی کنم این ۲ تا موضوع چه ارتباطی به هم دارند ؟
با تشکر

secure_host
January 23rd, 2014, 15:26
اختیار دارید قربان , شما استاد و سرلوحه هستید , جسارت بنده را ببخشید .

در رابطه با صحبت شما کاملا Logical است و درک میکنم .

در ابتدا شما را به مطالعه این پست دعوت میکنم :

http://www.webhostingtalk.ir/f87/101280/post969719/?highlight=#post969719


در نتیجه این مسیله امکان پذیر میباشد . البته این موضوع بر روی 5.2.17 اکسپولیت شده است و طی آخرین بررسی بنده بر روی آخرین ورژن php نیز این مورد قابل بهره برداری میباشد .

سوال را بزودی خدمت شما ارسال میکنم .


موید باشید

با سلام
بنده همچنان منتظر پیغام خصوصی شما هستم.
با تشکر