آموزش اکسپلویت نویسی با پایتون

جمع کردن
X
 
  • زمان
  • نمایش
پاک کردن همه
پست‌های جدید
  • Reza.Black
    H4ck3r

    • Dec 2022
    • 197

    #1

    آموزش اکسپلویت نویسی با پایتون

    به نام خدا
    با سلام


    برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic.jpg
بازدیدها:	60
حجم:	148.9 کیلوبایت
شناسه:	224395


    این تاپیک به مرور زمان کامل میشه.
    فکر می کنم که یکی از تاپیک های خوب و مفید و البته کاربردی در این زمینه باشه.
    سعی می کنم که مطالب رو ساده بیان کنم. و به هیچ پیش نیازی هم نیاز ندارید.
    همین که علاقه مند باشید. کفایت می کنه.
    موفق باشید.
  • Reza.Black
    H4ck3r

    • Dec 2022
    • 197

    #2
    با سلام خدمت همه ی دوستان

    من در این آموزش از سیستم عامل ویندوز ۱۱ به عنوان سیستم هکر و همچنین از ادیتور VS code برای کد نویسی استفاده می کنم.
    چون که هم ویژگی های خوبی داره و هم خیلی محبوبه در ضمن مفسر پایتون رو هم از قبل بر روی سیستمم نصب کردم.

    برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic1.jpg بازدیدها:	0 حجم:	161.4 کیلوبایت شناسه:	224871

    اما برای سیستم تارگت خودم از اپلیکیشن آسیب پذیر Mutillidae II که مربوط به پروژه ی OWASP هستش استفاده می کنم.
    که اون رو هم بر روی ماشین مجازی VMware نصب کردم.

    برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic2.jpg بازدیدها:	0 حجم:	188.9 کیلوبایت شناسه:	224872

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

    این هم لیست عناوین :

    - Web scraping
    - Brute force attack
    - SQL injection login bypass
    - Command injection
    - Local file inclusion
    - Reflected XSS
    آخرین ویرایش توسط Reza.Black؛ 10-16-2025, 10:25 PM.

    نظر

    • Reza.Black
      H4ck3r

      • Dec 2022
      • 197

      #3
      (Web scraping)

      با سلام

      Web scraping به طور ساده یعنی فرآیند استخراج داده ها از صفحات وب.
      مثل استخراج یک رشته ی خاص از یک صفحه ی وب.

      و کاری رو که ما قصد انجام اون رو داریم همین هست. (البته توسط پایتون)

      در صفحه ی پیش فرض اپلیکیشن آسیب پذیر ما (Mutillidae II) عبارت زیر وجود داره.


      برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic1.jpg بازدیدها:	0 حجم:	180.8 کیلوبایت شناسه:	224991

      من قصد دارم که پایتون خودش این صفحه رو برای من جست و جو کنه و متن مورد نظرم رو پیدا کنه و برای من نمایش بده.
      خب ابتدا ما ادیتور رو باز می کنیم و یک فایل پایتون حالا به هر نامی مثلا web_scraping.py در اون ایجاد می کنیم.
      ابتدای کدمون دو تا کتابخونه ی مهم BeautifulSoup و requests رو به کدمون اضافه می کنیم.
      با استفاده از pip می تونید این دو رو نصب کنید که خیلی ساده هستش.


      برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic2.jpg بازدیدها:	0 حجم:	31.5 کیلوبایت شناسه:	224992


      کتابخونه ی requests برای ایجاد درخواست های http با صفحات وب و همچنین تعامل با API ها طراحی شده.
      و کتابخونه ی ‌BeautifulSoup برای استخراج داده هایی از فایل هایی همچون xml و html کاربرد داره.
      به طور کلی هر دوی این ها در فرآیند Web scraping نقش مهمی دارند. و ما در ادامه با این دو عزیز خیلی کار داریم.

      بریم سراغ اصل مطلب من باید یک درخواست به صفحه ی مورد نظر خودم بفرستم. و این کار رو با استفاده از requests انجام میدم.
      اینجا متود ارسال ما get هستش و در قالب خود url (جلوتر در مورد اینکه کجاها از post یا get استفاده کنیم توضیح میدم).
      خیلی ساده آدرس صفحه ی مورد نظرمون رو به requests.get پاس میدیم و نتیجه رو داخل متغیر req قرار میدیم.


      برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic3.jpg بازدیدها:	0 حجم:	59.9 کیلوبایت شناسه:	224993

      تا اینجا ما اتصال رو ایجاد کردیم ولی چطوری نتیجه ی نهایی رو مشاهده کنیم؟
      اینجا باید از BeautifulSoup استفاده کنیم. و متغیر req رو به صورت text و نه content چون که قصد دارم
      تمامی عناصر صفحه مرتب و به صورت زیر هم نمایش داده بشه و نه یک خط طولانی!
      به BeautifulSoup پاس میدم و بهتر هست که از html.parser برای جلوگیری از یکسری هشدارها استفاده کنیم.
      و نتیجه رو در متغیر html قرار میدیم. خوبه داریم گام به گام جلو میریم.


      برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic4.jpg بازدیدها:	0 حجم:	74.4 کیلوبایت شناسه:	224994

      خب حالا ما محتوای کل صفحه رو در اختیار داریم ولی اینکه به درد ما نمی خوره. من فقط عبارت مورد نظرم رو که مشخص کرده بودم رو لازم دارم.
      پس باید کمی نتایج رو فیلتر کنم کنم تا به داده ی مورد نظرم برسم. اول باید ببینم که این عبارت در داخل چه تگی وجود داره و همین طور از چه کلاسی داره استفاده می کنه. (منظور css)
      (البته اینجا ویژگی کلاس هستش و ممکنه که هر تگی ویژگی های خاص خودش رو داشته باشه)
      خیلی سریع در مرورگرم روی عبارت مورد نظرم کلیک راست می کنم و گزینه ی inspect رو انتخاب می کنم.


      برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic5.jpg بازدیدها:	0 حجم:	115.4 کیلوبایت شناسه:	224995

      خوبه عبارت مورد نظرم داخل تگ div قرار داره و همچنین از کلاس page-title استفاده می کنه. همینم برای من کافیه.
      اینجا از find_all برای پوشش تمامی عناصر مربوطه (div) در صفحه استفاده می کنم که البته باید کمی هم خروجی رو دستکاری کنم.
      دقت کنید که نام و مقدار کلاس به صورت دیکشنری باشه. و نتیجش رو در متغیر div قرار میدم. و به اون ایندکس صفر میدم یعنی همین خودش.
      و با string بهش میگم که فقط متن رو لازم دارم و همچنین space و tab های احتمالی رو هم با ()strip حذف می کنم تا بهتر بشه.
      و این ها هم در متغیر result قرار میدم...
      آخرین ویرایش توسط Reza.Black؛ 10-17-2025, 08:20 PM.

      نظر

      • Reza.Black
        H4ck3r

        • Dec 2022
        • 197

        #4
        برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic6.jpg
بازدیدها:	38
حجم:	99.8 کیلوبایت
شناسه:	224997

        و در نهایت اون رو چاپ می کنم.


        برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic.jpg
بازدیدها:	37
حجم:	45.2 کیلوبایت
شناسه:	224998


        عالی.

        ​​​​

        نظر

        • Reza.Black
          H4ck3r

          • Dec 2022
          • 197

          #5
          (Brute force attack)

          با سلام

          حمله ی Brute force در واقع یک روش برای شکستن نام های کاربری و پسوردها مثلا بر روی یک فرم لاگین هستش.
          درسته که قدیمی هستش و البته همراه با آزمون و خطا ولی هنوز هم برخی مواقع کارساز هستش.

          من قبلا در Mutillidae II با نام کاربری reza و پسورد 12345678 یک اکانت ساختم.
          و قصد دارم که پایتون این نام کاربری و پسورد رو از طریق Brute force برای من پیدا کنه.

          این صفحه ی ورود هستش.


          برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic1.jpg بازدیدها:	0 حجم:	119.3 کیلوبایت شناسه:	225206

          ادیتور رو باز می کنم و یک فایل پایتون حالا به هر اسمی در اون ایجاد می کنم.
          و ابتدا کتابخونه های BeautifulSoup و requests رو به کدمون اضافه می کنم.
          در ادامه باید لیستی به صورت فایل متنی از نام های کاربری و پسوردها ایجاد کنم.
          که احتمال میدم که نام کاربری و پسورد مربوطه در اون وجود داشته باشه.


          برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic2.jpg بازدیدها:	0 حجم:	17.6 کیلوبایت شناسه:	225207


          برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic3.jpg بازدیدها:	0 حجم:	21.0 کیلوبایت شناسه:	225208


          حالا خیلی ساده این فایل ها رو با استفاده از open به کدمون اضافه می کنم همراه با فلگ r یعنی read و از readlines استفاده می کنم.
          تا خط به خط فایل رو بخونه البته خروجی خود readlines به صورت لیست هستش و همراه با یک بک اسلش انتهایی \ که با strip می تونیم حذفش کنیم.
          و در نهایت اون رو close می کنیم. و چون با یک فرم لاگین طرف هستیم بهتر هست که از session استفاده کنیم.


          برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic4.jpg بازدیدها:	0 حجم:	80.3 کیلوبایت شناسه:	225209

          در ادامه باید به فرم لاگین کمی دقت کنیم و ببینیم که از چه ویژگی هایی استفاده میکنه و مقادیرش چی هستن.
          برای این کار از inspect استفاده می کنم.

          برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic5.jpg بازدیدها:	0 حجم:	65.5 کیلوبایت شناسه:	225210


          آخرین ویرایش توسط Reza.Black؛ 10-18-2025, 06:07 PM.

          نظر

          • Reza.Black
            H4ck3r

            • Dec 2022
            • 197

            #6
            برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic6.jpg بازدیدها:	0 حجم:	63.9 کیلوبایت شناسه:	225212


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

            برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic7.jpg بازدیدها:	0 حجم:	122.0 کیلوبایت شناسه:	225213
            اینجا متود post هستش و اشاره به همین صفحه داره.

            باید دو حلقه ی for تو در تو یکی برای تست نام کاربری و دیگری برای تست پسوردها در کدم ایجاد کنم.
            و از session.post استفاده می کنم به صفحه ی لاگین و مقادیر دیکشنری رو که از فرم بدست آورده بودم و در متغیر info قرار داده بودم.
            رو از طریق data که برای روش post کاربرد داره ارسال می کنم.

            برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic8.jpg بازدیدها:	0 حجم:	66.4 کیلوبایت شناسه:	225214

            خب حالا ما چطوری متوجه بشیم که نام کاربری و پسورد مربوطه درسته؟
            یکی از روش ها استفاده از عنوان صفحه هستش. با استفاده از عنوان میشه پی برد که آیا ورود کردیم یا نه.
            درسته من عنوان صفحه ای که لاگین موفقیت آمیز باشه رو ندارم. ولی عنوان صفحه ی جاری رو که میدونم.
            می تونم با یک دستور شرطی if ساده مبنا رو بر این قرار بدم که اگر عنوان برابر با صفحه ی جاری بود خب لاگین موفقیت آمیز نبوده.
            و در غیر این صورت else لاگین موفقیت آمیز بوده. ولی قبل از اون باید از Web scraping استفاده کنم. دقیقا مثل جلسه ی قبل
            عنوان صفحه که Login هست رو پیدا کنم.


            برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic9.jpg بازدیدها:	0 حجم:	76.4 کیلوبایت شناسه:	225215


            در دستور print هم برای چاپ مقادیر از رشته ی فرمت بندی شده استفاده می کنیم.
            و با کلمه ی کلیدی break هم خارج میشیم. (در صورت لاگین موفقیت آمیز).


            برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic15.jpg بازدیدها:	0 حجم:	147.3 کیلوبایت شناسه:	225221

            ​​
            آخرین ویرایش توسط Reza.Black؛ 10-18-2025, 06:33 PM.

            نظر

            • Reza.Black
              H4ck3r

              • Dec 2022
              • 197

              #7
              و در نهایت کدمون رو تست و اجرا می کنیم.


              برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic14.jpg
بازدیدها:	34
حجم:	54.9 کیلوبایت
شناسه:	225220


              باریکلا.
              آخرین ویرایش توسط Reza.Black؛ 10-18-2025, 06:02 PM.

              نظر

              • Reza.Black
                H4ck3r

                • Dec 2022
                • 197

                #8
                (SQL injection login bypass)

                با سلام

                به زبان ساده SQL injection در واقع حمله ای هست که مهاجم یکسری کدهای مخرب SQL رو به یک برنامه وارد می کنه.
                تا به داده های حساس دسترسی داشته باشه و یا اون ها رو تغییر و یا حتی پاک کنه.

                در صفحه ای لاگینی که در جلسه ی قبل ما بر روی اون تست حمله ی Brute force رو انجام دادیم آسیب پذیری SQL injection وجود داره.
                و من قصد دارم کدی با پایتون بنویسم که این صفحه رو با مقادیری که متشکل شده از یکسری شروط منطقی و در قالب یک لیست هستش.
                رو برای من دور بزنه و من بتونم به پنل Admin دسترسی داشته باشم.


                برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic2.jpg
بازدیدها:	33
حجم:	16.2 کیلوبایت
شناسه:	225321


                من اسم این لیست رو payloads.txt قرار دادم ولی می تونه هر اسمی داشته باشه.
                در واقع قصد دارم که پایتون تک تک این ایست رو برای من بر روی فرم لاگین تست کنه و اگه لاگین موفقیت آمیز بود به من پیام بده.
                حالا اینجا لیست ما کوچیکه ولی اگه لیست ما کمی بزرگ باشه استفاده از روش دستی خیلی منطقی نیست.
                و پایتون خودش به سرعت این کار رو برای ما انجام میده.

                طبق معمول ادیتور رو باز می کنیم و یک فایل پایتون در اون ایجاد می کنیم.
                کتابخونه های ضروری و همچنین لیست payloads رو به کدمون اضافه می کنم.


                برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic3.jpg
بازدیدها:	32
حجم:	43.6 کیلوبایت
شناسه:	225322


                حالا inspect از فرم می گیرم. و مقادیری رو که برای من مهم هستند رو در قالب دیکشنری به کدمون اضافه می کنم.


                برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic4.jpg
بازدیدها:	32
حجم:	50.9 کیلوبایت
شناسه:	225323

                برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic5.jpg
بازدیدها:	33
حجم:	61.9 کیلوبایت
شناسه:	225324

                برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic6.jpg
بازدیدها:	32
حجم:	115.8 کیلوبایت
شناسه:	225325

                ولی قبل از اون از یک حلقه ی for ساده استفاده می کنم. که مقدار متغیر bypass رو با username در دیکشنری جایگزین کنه.
                اینجا من از requests استفاده می کنم. و روش ارسال ما هم post هستش.


                نظر

                • Reza.Black
                  H4ck3r

                  • Dec 2022
                  • 197

                  #9
                  برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic7.jpg
بازدیدها:	33
حجم:	51.1 کیلوبایت
شناسه:	225331

                  از Web scraping و دستور شرطی if مثل جلسه ی قبل استفاده می کنم.

                  تا پایتون برای من لیست پیلود ها رو روی فرم لاگین مربوطه تست کنه و در صورت کار کردن هر یک برای من پیلود مربوطه رو هم نمایش بده.


                  برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic8.jpg
بازدیدها:	33
حجم:	116.0 کیلوبایت
شناسه:	225332

                  حالا کدمون رو تست و اجرا می کنیم.


                  برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic9.jpg
بازدیدها:	32
حجم:	47.7 کیلوبایت
شناسه:	225333



                  برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic10.jpg
بازدیدها:	32
حجم:	38.7 کیلوبایت
شناسه:	225334



                  برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic11.jpg
بازدیدها:	32
حجم:	64.3 کیلوبایت
شناسه:	225335


                  نظر

                  • Reza.Black
                    H4ck3r

                    • Dec 2022
                    • 197

                    #10
                    (Command injection)

                    با سلام

                    آسیب پذیری Command injection و یا تزریق دستور به مهاجم این امکان رو میده تا یکسری دستورات رو در سطح سیستم عامل اجرا کنه.
                    و فقط به آسیب پذیری های تحت وب محدود نمیشه. خیلی کلی تر از این حرفها هستش.
                    این آسیب پذیری اون قدر خطرناک هست که توسط اون میشه حتی یک سرور رو نابود کرد.

                    در صفحه ی dns-lookup.php مربوط به Mutillidae آسیب پذیری تزریق دستور در فیلد آسیب پذیر وجود داره.
                    و من می تونم با استفاده از این آسیب پذیری یکسری دستورات رو وارد کنم. مثل دستور ls که برای لیست کردن فایل ها و دایرکتوری ها کاربرد داره.


                    برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic1.jpg بازدیدها:	0 حجم:	144.0 کیلوبایت شناسه:	225470

                    البته باید دستورات به همراه یکسری از کاراکترهای خاص مثل && باشه. که در این آسیب پذیری کاربرد ویژه دارند.
                    که لیست زیادی از اون ها وجود داره. که باز هم در سیستم عامل های گوناگون متفاوت هستش.

                    من قصد دارم که خود پایتون از من مدام دستور بگیره و دستورات رو تزریق کنه و در انتها خروجی رو هم به صورت مرتب برای من نمایش بده.

                    ادیتور رو باز می کنم و یک فایل پایتون با نام دلخواه در اون ایجاد می کنم.
                    کتابخونه ها رو اضافه می کنم. و در ادامه یک حلقه ی while بی نهایت ایجاد می کنم. فقط کافی که از عبارت True در مقابل حلقه استفاده کنم.
                    و با دستور input از کاربر ورودی می گیرم و اگه کاربر کلمه ی exit رو وارد کرد. با break از حلقه خارج میشم.
                    دقت کنید که ورودی دستورات در متغیر command ذخیره میشه.


                    برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic2.jpg بازدیدها:	0 حجم:	53.2 کیلوبایت شناسه:	225471


                    در ادامه باید از فرم inspect بگیرم و مقادیری رو که لازم دارم رو در کدم لحاظ کنم (قبلا در این مورد توضیح دادم)


                    برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic3.jpg بازدیدها:	0 حجم:	85.3 کیلوبایت شناسه:	225472

                    برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic4.jpg بازدیدها:	0 حجم:	41.6 کیلوبایت شناسه:	225473

                    برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic5.jpg بازدیدها:	0 حجم:	43.0 کیلوبایت شناسه:	225474


                    فقط مقدار کلید target_host رو با مقدار ورودی از کاربر به همراه کاراکترهای ویژمون جایگزین می کنم.
                    از روش post هم برای ارسال دیتاها استفاده می کنم.

                    آخرین ویرایش توسط Reza.Black؛ 10-20-2025, 01:10 PM.

                    نظر

                    • Reza.Black
                      H4ck3r

                      • Dec 2022
                      • 197

                      #11
                      برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic6.jpg
بازدیدها:	29
حجم:	47.8 کیلوبایت
شناسه:	225481

                      حالا باید بر روی خروجی کار کنم. اول باید ببینم که خروجی دستورات در چه تگی وجود داره و اون تگ چه ویژگی هایی داره.


                      برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic7.jpg
بازدیدها:	29
حجم:	139.2 کیلوبایت
شناسه:	225482

                      اینجا خروجی در تگ pre هست و همچنین از کلاس report-header استفاده می کنه.
                      من خروجی این تگ رو با استفاده از Web scraping به نوعی فیلتر می کنم.
                      اینجا می تونم از status_code هم استفاده کنم. که اگه برابر با 200 (اتصال موفقیت آمیز) بود برای من خروجی رو نمایش بده.


                      برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic8.jpg
بازدیدها:	29
حجم:	89.4 کیلوبایت
شناسه:	225483

                      حالا فقط باید کدمون رو تست کنیم.


                      برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic9.jpg
بازدیدها:	28
حجم:	46.6 کیلوبایت
شناسه:	225484

                      برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic10.jpg
بازدیدها:	28
حجم:	38.9 کیلوبایت
شناسه:	225485


                      عالی.

                      نظر

                      • Reza.Black
                        H4ck3r

                        • Dec 2022
                        • 197

                        #12
                        (Local file inclusion)

                        با سلام

                        Local file inclusion یا به اختصار LFI نوعی از آسیب پذیری هست که اجازه ی خواندن فایل های داخل سرور رو به هکر میده.
                        و وقتی که هکر به یکسری از فایل ها دسترسی داشته باشه و بتونه محتوای اون ها رو بخونه در نتیجه می تونه به اطلاعات حساس دست پیدا کنه.
                        و این یعنی ضعف امنیتی.

                        در بخشی از Mutillidae با چنین صفحه ای رو به رو هستیم.



                        برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic1.jpg
بازدیدها:	29
حجم:	264.0 کیلوبایت
شناسه:	225567

                        که برای تست نفوذ در مورد این آسیب پذیری و همین طور آسیب پذیری Remote file inclusion میباشد.
                        که دومی مورد بحث ما نیست.

                        و اگه بخوام محتوای فایل passwd که در لینوکس معنا داره و حاوی اطلاعات مربوط به کاربران سیستم هست رو مشاهده کنم.
                        باید از دستور etc/passwd/ استفاده کنم. که اشاره به مسیر فایل های پیکربندی لینوکسی هستش.


                        برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic2.jpg
بازدیدها:	30
حجم:	313.8 کیلوبایت
شناسه:	225568


                        من قصد دارم که پایتون خودش وارد آدرس هدف بشه و این فایل passwd رو بخونه و محتوای خروجی اون رو به من نشون بده.

                        ادیتور رو باز می کنم و یک فایل پایتون در اون ایجاد می کنم.
                        کتابخونه ها رو اضافه و یک متغیر به نام url که حاوی آدرس صفحه ی مورد نظرمون هست رو تعیین می کنم.
                        و در ادامه یک تابع به نام lfi تعریف می کنم که حاوی دو پارامتر هست که یکی برای گرفتن ورودی آدرس صفحه و اون یکی با مقدار پیش فرض etc/passwd/
                        که اشاره به فایل passwd می کنه.


                        برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic3.jpg
بازدیدها:	28
حجم:	60.3 کیلوبایت
شناسه:	225569

                        در بدنه ی تابع از requests.get استفاده می کنم چون با خود url کار داریم. و همچنین status_code
                        باید به خروجی محتوا هم نگاه کنم و ببینم که در چه تگی هست.


                        برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic4.jpg
بازدیدها:	28
حجم:	131.7 کیلوبایت
شناسه:	225570

                        که اینجا تگ blockquote هستش و با استفاده از اون می تونم خروجی رو فیلتر کنم.
                        تابع lfi رو با پارامتر مورد نظرمون یعنی آدرس url فراخوانی می کنم.
                        و خروجی تابع رو در متغیر result قرار میدم و این متغیر رو هم با دستور print چاپ می کنم.


                        برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic5.jpg
بازدیدها:	28
حجم:	100.7 کیلوبایت
شناسه:	225571


                        نظر

                        • Reza.Black
                          H4ck3r

                          • Dec 2022
                          • 197

                          #13
                          کدمون رو تست و اجرا می کنیم.


                          برای مشاهده تصویر بزرگتر کلیک کنید

نام:	pic6.jpg
بازدیدها:	29
حجم:	53.0 کیلوبایت
شناسه:	225573


                          نظر

                          • Reza.Black
                            H4ck3r

                            • Dec 2022
                            • 197

                            #14
                            (Reflected XSS)

                            با سلام

                            XSS مخفف عبارت Cross Site Scripting هستش و معادل فارسی اون میشه اسکریپت نویسی بین سایتی.
                            و هکر از طریق این آسیب پذیری کدهای مخرب خودش که عمدتا جاوا اسکریپت هستش رو توسط وب سایت آلوده به XSS
                            در مرورگر قربانی اجرا می کنه. و مرورگر قربانی هم دستورات رو اجرا می کنه چون منبع اون قانونی هستش.

                            XSS انواع مختلفی داره و روش های نفوذ در اون متفاوته.
                            اما در مورد Reflected XSS این آسیب پذیری زمانی کاربرد داره که قربانی بر روی لینک مخرب کلیک کنه.
                            و باید از روش هایی مثل مهندسی اجتماعی برای فریب کاربر استفاده بشه.

                            در صفحه ی dns-lookup.php از Mutillidae علاوه بر آسیب پذیری Command injection این صفحه دارای آسیب پذیری XSS هم هستش.


                            برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic1.jpg بازدیدها:	0 حجم:	130.6 کیلوبایت شناسه:	225575


                            برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic2.jpg بازدیدها:	0 حجم:	8.4 کیلوبایت شناسه:	225576



                            من فقط قصد یک تست ساده رو با پایتون دارم.
                            که خود پایتون کد مخرب رو در فیلد آسیب پذیر تزریق کنه و واکنشش رو در خروجی ببینم.
                            این دیگه خیلی آسون هستش.

                            فرم رو مثل مثال های قبل بررسی می کنم.
                            و فقط مقدار کلید target_host در دیکشنری رو با مقدار کد مخربم که جاوا اسکریپت هست جایگزین می کنم.


                            این هم کد نهایی :


                            برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic6.jpg بازدیدها:	0 حجم:	74.9 کیلوبایت شناسه:	225577

                            و همین طور تستش :


                            برای مشاهده تصویر بزرگتر کلیک کنید  نام:	pic7.jpg بازدیدها:	0 حجم:	68.3 کیلوبایت شناسه:	225578


                            البته این فقط یک تست ساده بود و من دیگه نخواستم از سایر روش ها استفاده کنم.
                            منتها شما خودتون الان دیگه می تونید خیلی کارها انجام بدید.
                            مثل : گرفتن کوکی و یا حتی باز کردم مرورگر توسط خود پایتون و ادامه فرآیند رو در مرورگر انجام دادن یا ایجاد یک شنونده و خیلی کارهای دیگه.


                            این آموزش هم تموم شد و البته هیچوقت کامل نبود.
                            کد نویسی مخرب واقعا مثل یک اقیانوس هستش و این آموزش حتی یک قطره از اون هم نمیشه.
                            قصد من فقط بیشتر آشنایی شما بود. و خودتون با سعی و تلاش قطعا می تونید به این علم مسلط بشید.
                            این که اندکی با روش ها و جنبه های متفاوت اون آشنا بشید. و همین طور جذابیت های این علم.

                            من تو این آموزش از پایتون استفاده کردم ولی شخصا برای کار اکسپلویت نویسی روبی رو ترجیح میدم.
                            دیگه هر کسی سلیقه ی خاص خودش رو داره.

                            ما هکرهای خیلی خوبی داریم واقعا همشون با هوش و با استعداد هستن.
                            خب من هیچوقت هوش و استعداد اون ها رو نداشتم ولی هیچوقت تسلیم نشدم.

                            دیگه حرفی نمی مونه به جز آرزوی سلامتی و تندرستی.
                            موفق و پیروز باشد.
                            یا علی.

                            آخرین ویرایش توسط Reza.Black؛ 10-20-2025, 07:12 PM.

                            نظر

                            در حال کار...