আমার একটি কমান্ড ভেরিয়েবলে সঞ্চিত আছে। ভেরিয়েবলের $i
মান রয়েছে তা ভান করা যাক :
cat -nT index.php |grep 'someregex'
যখন আমি উপরের ভেরিয়েবলটি টাইপ করে $i
এটি প্রয়োগ করে ব্যর্থ হই কারণ শেল পুরো ভেরিয়েবলটিকে একটি কমান্ড হিসাবে কার্যকর করার চেষ্টা করে। আমি ব্যাকটিক্স ব্যবহার eval($i)
এবং রাখার চেষ্টা করেছি $i
।
আমি শেলটিকে কীভাবে $i
একটি আদেশ হিসাবে চালিত করতে পারি ? এবং কেন এটি একইভাবে কাজ করছে না।
$i='echo hi'; $i
এটি কি কারণ একক উদ্ধৃতিগুলিতে আমাকে হ্যাক করতে হয়েছিল? (কারণ আপনি এগুলি বাসাতে পারেন না)) বর্তমানে আমার সমাধানটি
echo $i > /foo; . /foo
তবে আমি এটির জন্য কোনও ফাইল তৈরি করতে চাই না, কেবল এটি পরে মুছে ফেলতে চাই।
"আমি একক উক্তি হ্যাক করেছি এর দ্বারা আমি কী বোঝাতে চাইছি তা হল:
$i='cat index.php | grep -P '"'"'MYREGEXHERE'"'"