সাধারণ সেটুইড বাইনারি শোষণ


0

আমার কাছে একটি সেটুইড প্রোগ্রাম রয়েছে যা একটি ফাইলকে এইভাবে তালিকাভুক্ত করছে:

#include <stdlib.h>
#include <stdio.h>
int main(void)
{
        system("ls /challenge/binary/binary1/.passwd");
        return 0;
}

আমার যা প্রয়োজন তা হ'ল প্রোগ্রামটির নামটি কেবল তালিকাভুক্ত করার পরিবর্তে ফাইলটির সামগ্রী প্রকাশ করার জন্য get তাই আমি আচরণকে পরিবর্তন করতে উপনাম তৈরি করার চেষ্টা করেছেন এই ভাবে:

alias ls='cat'

কিন্তু এখনও, এটি কাজ করে না। আপনি দয়া করে আমাকে সঠিক দিকে নির্দেশ করতে পারেন!


1
কেন পরিবর্তন করা system("lsদ্বারা system("cat? আপনি সিস্টেম কমান্ড ব্যবহার না করে এমন কিছু করার জন্য কোনও প্রোগ্রামকে অপব্যবহারের উপায় পাওয়ার চেষ্টা করছেন?
M'vy

উত্তর:


3

উপকরণগুলি কেবল সেই শেলটিতেই থাকে যা তাদের সংজ্ঞায়িত করে এবং systemএকটি নতুন শেল শুরু করে। এই শেলটি পড়বে না ~/.bashrcবা অন্যান্য ফাইলগুলি যেখানে এলিয়াসগুলি সাধারণত সংজ্ঞায়িত করা হয়, তা হয়: কেবল ইন্টারেক্টিভ শেলগুলিই করে। কিছু শেল, তবে সমস্ত নয়, অন্য ফাইলটি পড়ে, তবে এটি ব্যবহারের শেল-স্বাধীন উপায় রয়েছে।

শেল কমান্ড লুক এই ক্রমে নিম্নলিখিত উপাদানগুলির চেষ্টা করে:

  • উপাধি - না।
  • কার্য - না, একই কারণে।
  • বিল্টিন - না।
  • কমান্ডগুলি PATH- এটি ডিফল্টরূপে হওয়া উচিত।

তাই নিশ্চিত যে লুকআপ কাজ lsমধ্যে $PATHআপ চালু হবে catপ্রোগ্রাম।


0

পরিবর্তন lsকরুন cat

lsডিরেক্টরিগুলি তালিকাবদ্ধ করে, এটি ফাইলগুলি প্রদর্শন করে না। catএটা করে


নাহ, এটাই প্রশ্ন নয়! আমার কাছে একটি সেটুয়েড প্রোগ্রামের সংকলিত সংস্করণ রয়েছে, এবং
সেটুয়েড

2
আসলে, আল্ট্রাসব্ল্যাডে ন্যায্যতার সাথে, এক্সটি লিখিত হিসাবে প্রশ্নের উত্তর দিয়েছিল। আপনি উত্স না থাকার বিষয়ে কোনও উল্লেখ করেননি। আসলে, প্রশ্ন হিসাবে আপনি উত্স সরবরাহ করেছেন। বা আপনি উল্লেখ করেন নি যে আপনি অন্য কারও প্রোগ্রাম হ্যাক করার চেষ্টা করছেন। দরিদ্র আল্ট্রাসাব্ল্যাড টেলিপ্যাথিক নয়।
JdeBP

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