মেইল প্রেরণে পিএইচপি স্ক্রিপ্টটি সন্ধান করুন


9

আমার জন্য পিএইচপি স্ক্রিপ্টটি খুঁজে পাওয়ার কোনও উপায় আছে যা ইমেলগুলি প্রেরণ করছে।

আমার কাছে একটি "স্ট্যান্ডার্ড" ইনস্টল-এ অ্যাপাচি + পিএইচপি (কোনও মোড_সুফ্প না সুেক্সেক) রয়েছে এবং আমি জানতে চাই যে ডাইনিং পিএইচপি স্ক্রিপ্ট ইমেলগুলি প্রেরণ করছে, যখন আমি লগগুলি পরীক্ষা করি তখন আমি কেবলমাত্র ইমেলগুলি প্রেরণকারী (ইউইডি) দেখি আমার কেস অ্যাপাচি) তবে আমি ইমেলটির উত্স প্রাপ্ত স্ক্রিপ্টটি সন্ধান করতে চাই।

এটি কি সম্ভব বা এর ট্র্যাক রাখতে আমাকে অবশ্যই suexec বা mod_suphp ইনস্টল করতে হবে?

সাহায্যের জন্য ধন্যবাদ।

উত্তর:


9

পিএইচপি 5.3 আরও ভাল মেল ট্রেসিং পেতে স্লট করা হয়েছিল, তবে আমি নিশ্চিত না যে এটি ঘটেছে কিনা। (সম্পাদনা করুন: হ্যাঁ পিএইচপি 5.3-এ এখনই লগিং রয়েছে - php.ini এ কনফিগার ভেরিয়েবল মেইল ​​রয়েছে log

আমরা সেন্ডমেলকে মোড়কের শেল স্ক্রিপ্ট তৈরি করে সমস্যার সমাধান করেছি।

Php.ini এ একটি নতুন মেলর সেট করুন। উদাহরণ:

sendmail_path = /usr/local/bin/sendmail-php -t -i

সেন্ডমেল-পিএইচপি স্ক্রিপ্টটি সহজেই তথ্য পেতে লগার ব্যবহার করে এবং তারপরে সিস্টেমের সেন্ডমেলকে কল করে:

#!/bin/bash

logger -p mail.info -t sendmail-php "site=${HTTP_HOST}, client=${REMOTE_ADDR}, script=${SCRIPT_NAME}, filename=${SCRIPT_FILENAME}, docroot=${DOCUMENT_ROOT}, pwd=${PWD}, uid=${UID}, user=$(whoami)"

/usr/sbin/sendmail -t -i $*

এটি আপনার মেইল.ইন.ফো syslog.conf ফাইলে সেট করা যাই হোক না কেন লগইন করবে।

আরেকটি পরামর্শ হ'ল পিএইচপি-র লফোলগুলি শক্ত করার জন্য সুহসিন পিএইচপি এক্সটেনশন ইনস্টল করা, যদি না আপনি ডিবিয়ান বা উবুন্টু চালাচ্ছেন যেখানে এটি ইতিমধ্যে ডিফল্ট।


পিএইচপি 4.x এখানে (কিছু পুরানো অ্যাপ্লিকেশনগুলি পেয়েছে যা পিএইচপি 5.x তে কার্যকর পোর্টিং নয়)
অ্যাডাম

কোনও সমস্যা নেই, এই মোড়কটি কৌশলটি করবে। এটি পিএইচপি করার জন্য বাহ্যিক। আমি পিএইচপি 5.3 উল্লেখ করেছি কেবলমাত্র একটি লগিং বৈশিষ্ট্যের অভাবে ততক্ষণে এটি ঠিক করা হবে। মোড়ক খুব ভালভাবে কাজ করে এবং আমরা কোনও ব্যবহারকারীর দ্বারা ত্রুটিযুক্ত স্ক্রিপ্ট চিহ্নিত করতে সক্ষম হয়েছি যা স্প্যামের অনুমতি দিচ্ছিল।
ল্যাব্রাডোর্ট

ধন্যবাদ, আমি অনুমান করছি আমি আপনার পদ্ধতির গ্রহণ করব। আপনাকে ধন্যবাদ
আদম

1
হাই, এখনই কেন করবেন না তবে "স্ক্রিপ্ট = $ {SQLT_NAME}, ফাইলের নাম = $ {SQLT_FILENAME}" কিছুই ফিরিয়ে দিচ্ছে না দেখুন: 7 20:24:08 গেটওয়ে লগার: সেন্ডমেল-পিএইচপি: ক্লায়েন্ট =, পিডব্লুডি = / var / www / এইচটিএমএল / মেল, uid = 48, ব্যবহারকারী = অ্যাপাচি
আদম

আপনি কি নিশ্চিত যে এটি সঠিকভাবে সেট আপ হয়েছিল? যদি এটি আপনার পিএইচপি পরিবেশে পূর্বনির্ধারিত পরিবর্তনশীল হিসাবে অজানা ছিল, আপনি লগ ইন করা আউটপুটটিতেও দেখতে পাবেন: "স্ক্রিপ্ট =,"। আপনি আবার কী সেটআপ করেছেন তা খুব যত্ন সহকারে পরীক্ষা করে দেখুন। আপনি চেষ্টা করতে পারেন: $ _SERVER ['SQLT_FILENAME'] আপনি পূর্বনির্ধারিত ভেরিয়েবলগুলিতে পিএইচপি ডকুমেন্টেশন থেকে লগ করার জন্য আরও ভেরিয়েবল সন্ধান করতে সক্ষম হতে পারেন: php.net/manual/en/reided.variables.server.php
ল্যাবরেডোর্ট

4

এর সমাধানের জন্য আসলে কয়েকটি পদক্ষেপ প্রয়োজন। উপরের ল্যাব্রাডোর্টের সমাধান আসলে কাজ করে না কারণ লগার স্ক্রিপ্টটি ব্যাশ স্ক্রিপ্ট, পিএইচপি নয়, এবং ব্যাশ স্ক্রিপ্টের পিএইচপি এর ভেরিয়েবলগুলির অ্যাক্সেস নেই, সুতরাং লগগুলি ফাঁকা বেরিয়ে আসে। মূলত আপনি যা লগ করতে চান তা ইমেল প্রেরণের আগে পিএইচপি পরিবেশগত পরিবর্তনশীলগুলিতে সংরক্ষণ করা দরকার যাতে লগারের ডেটাতে অ্যাক্সেস থাকে। যেহেতু আপনি অন্য ব্যবহারকারীর স্ক্রিপ্টগুলি সনাক্ত করার চেষ্টা করছেন, অগত্যা আপনার নিজের, তাই আপনার পিএইচপি কোডের কোনও নিয়ন্ত্রণ নেই, তাই আপনাকে পিএইচপি-র অটো_প্রিপেন্ড_ফাইলে বৈশিষ্ট্যটি ব্যবহার করতে হবে যাতে নিশ্চিত করা যায় যে সমস্ত কার্যকর পিএইচপি আপনার আরম্ভের কোডটি অন্য কিছুর আগে চালিত করে। লগরে আমার যে ডেটা দরকার তা নিশ্চিত করার জন্য আমি php.ini এর মাধ্যমে নিম্নলিখিত কোডটি প্রেরণ করেছি:

<?php
/**
 * This passes all SERVER variables to environment variables, 
 * so they can be used by called bash scripts later
 */
foreach ( $_SERVER as $k=>$v ) putenv("$k=$v");
?>

এখানে এটি কীভাবে কাজ করা যায় তার একটি পূর্ণ টিউটোরিয়াল আমি একসাথে রেখেছি: http://mcquarrie.com.au/wordpress/2012/10/tracking-down-malicious-php-spam-scriptts/


মোড়ক স্ক্রিপ্টটি পিএইচপি 5.2 এবং পূর্ববর্তী সময়ে পিএইচপি ডিফল্ট বাস্তবায়ন করার জন্য রেডহ্যাট এবং ডেবিয়ান লিনাক্সের প্রয়োগে কাজ করেছিল। আমি এই দিনগুলিতে কেবল মেল.লগ = /var/log/apache-mail.log ব্যবহার করছি এবং এটি আমার যা প্রয়োজন তা করে।
ল্যাব্রাডোর্ট

1
শেলশক বাগটি কীভাবে শোষণ করা হয় তা এইভাবেই। আমি গুরুত্ব সহকারে এইভাবে জিনিসগুলি করার পরামর্শ দিচ্ছি না।
বেন হিচকক

তোমার একটা কথা আছে "() {:;};" এর মতো ক্ষতিকারক কোনও কিছু বের করে দেওয়ার জন্য আপনি অবশ্যই স্যানিটাইজ ফাংশনটির মাধ্যমে চলকগুলি চালাতে পারেন। আসলে সম্ভবত "পিএইচপি_" এর মতো কিছু সহ চলক নামগুলির উপসর্গ করা ভাল ধারণা, যদি কোনও পরিবেশের পরিবর্তনশীল নাম সংঘর্ষ হয়।
টম ম্যাকক্যারি

2

নেই একটি প্যাচ পিএইচপি জন্য দেখাবে যা স্ক্রিপ্ট ইমেল হচ্ছে প্রেরিত একটি শিরোলেখ যোগ করে ইমেল উৎপাদিত হয়। আমি কোর পিএইচপি প্যাচিংয়ের বিষয়ে আগ্রহী নই, তবে আমি এটি পরীক্ষা করে দেখিনি I've


1
এটি দুর্দান্ত পথে যাওয়ার মতো শোনাচ্ছে। +1 টি। তবে, আপনি যদি একাধিক ক্লায়েন্টের সাথে ভাগ করা হোস্ট পরিচালনা করছেন তবে আপনি এই ক্লায়েন্টদের শিরোনাম সম্পর্কে অবহিত করতে বা তার পরিবর্তে আউটপুটটিকে লগ ফাইলে পুনর্নির্দেশ করতে চাইতে পারেন।
পেক্কা

হ্যাঁ সম্ভবত এটি যাওয়ার উপায় তবে একটি নির্দিষ্ট সময়ে এটি আমার সুরক্ষা সমস্যা, সমস্ত লোক এখন যা যা স্ক্রিপ্ট ইমেল প্রেরণ করছে, খারাপভাবে তৈরি স্ক্রিপ্টটি হ্যাক হওয়ার জন্য আমন্ত্রণ জানাচ্ছে। কোনও লগতে পুনঃনির্দেশ করুন এটি আরও ভাল
অ্যাডাম

দুর্বলভাবে তৈরি স্ক্রিপ্টগুলি প্রথমে সার্ভারে থাকা উচিত নয়, লোকেরা সেখানে থাকলে তারা তাদের খুঁজে পাবেন (বিশেষত যদি তারা একটি জনপ্রিয় সেন্টিম সিস্টেমের অংশ হয়)। তবে আমি আপনার বক্তব্যটি পেয়েছি যে এই সমাধানের বিরুদ্ধে সম্ভবত একটি মামলা রয়েছে।
WheresAlice

0

আপনাকে এমন কিছুর জন্য অ্যাক্সেস লগগুলি গ্রেপ করতে হবে যা স্পুলে বার্তা যুক্ত হওয়ার সময়সীমার সাথে ফিট করে।


রিপ্লেটির জন্য ধন্যবাদ, সমস্যাটি হ'ল একটি শেয়ার্ড হোস্টিং এবং প্রতিটি ডোমেনের জন্য ডেডিকেটেড অ্যাক্সেস লগ।
আদম

হ্যাঁ, দুর্ভাগ্যক্রমে আপনি তাদের সকলের গ্রিপ করতে চলেছেন।
রিচার্ড সল্টস 22

0

"মেল (" সাবস্ট্রিং) এর জন্য কেবল উত্স ফাইলগুলির মাধ্যমে অনুসন্ধান করা যেতে পারে?


এটি কখনও কখনও দেখার মতো এবং বিশেষত স্প্যামারদের যে কোনও দুর্বলতার জন্য এটি ঘিরে উত্সের কোডটি দেখার পক্ষে। তবে শেয়ার্ড হোস্টে থাকা বহু লোকের মালিকানাধীন প্রচুর জটিল পিএইচপি স্ক্রিপ্ট থাকা, এটি এই সমস্যার সমাধান নয়।
WheresAlice

একটি ভাগ্যবান হোস্টিং পরিবেশে এটি সঠিক স্ক্রিপ্টটিকে পয়েন্ট-পয়েন্ট করতে না পারে বা একাধিক মিথ্যা ধনাত্মক হতে পারে
এরিক কিগাথি

0

আপনার php.ini এ কেবল এটি সক্ষম করুন

mail.add_x_header = On
mail.log = /var/log/phpmail.log

তারপরে সেই ফাইলটি তৈরি করুন এবং লেখার অনুমতি দিন। এর পরে তার দিকে নজর দিন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.