چگونه به کشف HTTP پارامترهای برای پیدا کردن نقاط ضعف در برنامه های وب

هک برنامه های کاربردی تحت وب می تواند گاهی اوقات به چالش کشیدن با توجه به مقدار مطلق از قطعات متحرک آنها دارا

توسط PATRIS-MUSIC در 22 اردیبهشت 1399

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

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

http://example.com/name?id=1

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

http://example.com/form?field1=v1&field2=v2

در برخی از موارد برخی از این پارامترها ممکن است از نظر پنهان است. برای مثال اگر یک پارامتر از admin به واقعیوجود دارد ممکن است قابلیت های مختلف از یک کاربر معمولی.

آرجون یک ابزار خط فرمان است که در می یابد پنهان HTTP پارامترها با استفاده از یک wordlist از پارامتر نام. این ویژگی چند نخ, نرخ, حد دست زدن و اجازه می دهد تا هدر های سفارشی اضافه شده به درخواست. آن را نیز پشتیبانی از دریافت, ارسال, و, JSON, روش ساخت آن را یک منبع ارزشمند برای کاوش برنامه های کاربردی وب.

دانلود و راه اندازی

ما استفاده خواهد کرد Metasploitable 2 به عنوان هدف و Kali Linux به عنوان محلی ما اما شما می توانید با استفاده از هر آنچه که شما راحت با زمانی که زیر همراه است.

اولین چیزی که ما نیاز به انجام است دانلود Arjun از GitHub. ما به راحتی می توانید کلون کپی از مخزن با استفاده از git clone فرمان:

~# git clone https://github.com/s0md3v/Arjun شبیه سازی به 'Arjun'...
کنترل از راه دور: شمارش اشیاء: 226 انجام می شود.
کنترل از راه دور: در مجموع 226 (دلتا 0) مورد استفاده مجدد قرار 0 (دلتا 0) بسته-226 مورد استفاده مجدد قرار
دریافت اشیاء: 100% (226/226), 159.03 KiB | 1024.00 KiB/s انجام می شود.
حل و فصل دلتا: 100% (104/104) انجام می شود.

در حال حاضر فقط به دایرکتوری جدید با استفاده از cd:

~# cd آرجون/

و ما می توانیم لیست مطالب با ls command:

~/Arjun# ls arjun.py تغییرات.md هسته db مجوز README.md

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

~/Arjun# که python3 /usr/bin/python3

و ما می توانید شماره نسخه با -V سوئیچ:

~/Arjun# python3 -V Python 3.7.5rc1

اگر پایتون 3.4 یا بالاتر نیست روی سیستم ما نصب آن می توانید از طریق package manager:

~/Arjun# apt-get install python3

که باید همه ما نیاز به شروع کنید.

آرجون در عمل

این همیشه یک ایده خوب برای بررسی منوی help هنگامی که مواجه با یک ابزار جدید. استفاده از -h پرچم برای مشاهده Arjun کمک و اختیاری استدلال:

~/Arjun# python3 arjun.py -h
_ /_| _ ' ( |/ /(//) v1.6
_/ طریقه استفاده: arjun.py [-h] [-u URL] [-o OUTPUT_FILE] [-d تاخیر] [-t تاپیک] [-f WORDLIST] [--آدرس URL_FILE] [--دریافت] [--post] [--هدر [عناوین]] [- json] [--پایدار] [--include INCLUDE] اختیاری استدلال: -h, --help نشان می دهد این کمک پیام و خروج -تو آدرس url مقصد -o OUTPUT_FILE مسیر برای فایل خروجی -d تاخیر درخواست تاخیر -t موضوعات تعدادی از موضوعات -f WORDLIST wordlist مسیر --آدرس URL_FILE فایل حاوی url های موافق با هدف --استفاده از متد get --پست با استفاده از متد post --هدر [عناوین] اضافه کردن هدر - json درمان ارسال داده ها به عنوان json --پایدار ترجیح می دهند ثبات بیش از سرعت --شامل شامل شامل این اطلاعات در هر درخواست

اساسی ترین راه برای اجرای این ابزار است که با تهیه یک URL معتبر — با استفاده از -u پرچم برای انجام این کار:

~/Arjun# python3 arjun.py -u http://10.10.0.50/phpMyAdmin/
_ /_| _ ' ( |/ /(//) v1.6
_/ [~] تجزیه و تحلیل محتوای صفحه وب
[~] تجزیه و تحلیل رفتار غیر موجود پارامتر
[!] بازتاب: 0
[!] پاسخ کد: 200
[!] محتوای ظهر: 4145
[!] ساده-طول متن: 474
[~] تجزیه صفحه وب به صورت بالقوه پارامترهای
[+] اکتشافی در بر داشت بالقوه ارسال پارامتر: phpMyAdmin
[!] اولویت بندی آن
[+] اکتشافی در بر داشت بالقوه ارسال پارامتر: db
[!] اولویت بندی آن
[+] اکتشافی در بر داشت بالقوه ارسال پارامتر: جدول
[!] اولویت بندی آن
[+] اکتشافی در بر داشت بالقوه ارسال پارامتر: lang
[!] اولویت بندی آن
[+] اکتشافی در بر داشت بالقوه ارسال پارامتر: convcharset
[!] اولویت بندی آن
[+] اکتشافی در بر داشت بالقوه ارسال پارامتر: رمز
[!] اولویت بندی آن
[+] اکتشافی در بر داشت بالقوه ارسال پارامتر: pma_username
[!] اولویت بندی آن
[+] اکتشافی در بر داشت بالقوه ارسال پارامتر: pma_password
[!] اولویت بندی آن
[+] اکتشافی در بر داشت بالقوه ارسال پارامتر: سرور
[!] اولویت بندی آن
[~] انجام اکتشافی سطح چک
[!] اسکن کامل
[+] معتبر پارامتر داشت: db
[+] معتبر پارامتر داشت: phpMyAdmin
[+] معتبر پارامتر یافت: جدول
[+] معتبر پارامتر داشت: هدف
[+] معتبر پارامتر داشت: GLOBALS
[+] معتبر پارامتر داشت: pma_username

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

ما همچنین می توانید مشخص کنید که کدام نوع درخواست داده استفاده کنید. برای مثال برای جستجوی دریافت پارامترهای اضافه کنید --دریافت گزینه:

~/Arjun# python3 arjun.py -u http://10.10.0.50/phpMyAdmin/ --دریافت
_ /_| _ ' ( |/ /(//) v1.6
_/ [~] تجزیه و تحلیل محتوای صفحه وب
[~] تجزیه و تحلیل رفتار غیر موجود پارامتر
[!] بازتاب: 0
[!] پاسخ کد: 200
[!] محتوای ظهر: 4145
[!] ساده-طول متن: 474
[~] تجزیه صفحه وب به صورت بالقوه پارامترهای ...

به جستجو برای ارسال پارامتر استفاده کنید --پست گزینه:

~/Arjun# python3 arjun.py -u http://10.10.0.50/phpMyAdmin/ --پست
_ /_| _ ' ( |/ /(//) v1.6
_/ [~] تجزیه و تحلیل محتوای صفحه وب
[~] تجزیه و تحلیل رفتار غیر موجود پارامتر
[!] بازتاب: 0
[!] پاسخ کد: 200
[!] محتوای ظهر: 4145
[!] ساده-طول متن: 474
[~] تجزیه صفحه وب به صورت بالقوه پارامترهای ...

و به جستجو برای JSON پارامترها با استفاده از --json گزینه:

~/Arjun# python3 arjun.py -u http://10.10.0.50/phpMyAdmin/ - json
_ /_| _ ' ( |/ /(//) v1.6
_/ [~] تجزیه و تحلیل محتوای صفحه وب
[~] تجزیه و تحلیل رفتار غیر موجود پارامتر
[!] بازتاب: 0
[!] پاسخ کد: 200
[!] محتوای ظهر: 4145
[!] ساده-طول متن: 474
[~] تجزیه صفحه وب به صورت بالقوه پارامترهای ...

ما همچنین می توانید عرضه Arjun با یک لیست از Url های متعدد به استفاده از به جای فقط یک. استفاده از --آدرس ها پرچم به دنبال نام فایل حاوی لیستی از آدرس ها:

~/Arjun# python3 arjun.py --آدرس ها urls.txt
_ /_| _ ' ( |/ /(//) v1.6
_/ [~] اسکن: http://10.10.0.50/phpMyAdmin/
[~] تجزیه و تحلیل محتوای صفحه وب
[~] تجزیه و تحلیل رفتار غیر موجود پارامتر
[!] بازتاب: 0
[!] پاسخ کد: 200
[!] محتوای ظهر: 4145
[!] ساده-طول متن: 474
[~] تجزیه صفحه وب به صورت بالقوه پارامترهای ...

در همین راستا ما می توانیم با استفاده از خود ما wordlist حاوی پارامتر های سفارشی نام به جای به طور پیش فرض یک Arjun استفاده می کند. استفاده از -f پرچم و به دنبال آن نام سفارشی wordlist:

~/Arjun# python3 arjun.py -u http://10.10.0.50/phpMyAdmin/ -f parameters.txt
_ /_| _ ' ( |/ /(//) v1.6
_/ [~] تجزیه و تحلیل محتوای صفحه وب
[~] تجزیه و تحلیل رفتار غیر موجود پارامتر
[!] بازتاب: 0
[!] پاسخ کد: 200
[!] محتوای ظهر: 4145
[!] ساده-طول متن: 474
[~] تجزیه صفحه وب به صورت بالقوه پارامترهای ...

آرجون به ما اجازه می دهد به مجموعه ای از تعدادی از موضوعات برای استفاده به عنوان پیش فرض بودن ، استفاده از -t سوئیچ و به دنبال آن تعداد مورد نظر با موضوعات:

~/Arjun# python3 arjun.py -u http://10.10.0.50/phpMyAdmin/ -t 16
_ /_| _ ' ( |/ /(//) v1.6
_/ [~] تجزیه و تحلیل محتوای صفحه وب
[~] تجزیه و تحلیل رفتار غیر موجود پارامتر
[!] بازتاب: 0
[!] پاسخ کد: 200
[!] محتوای ظهر: 4145
[!] ساده-طول متن: 474
[~] تجزیه صفحه وب به صورت بالقوه پارامترهای ...

ما همچنین می توانید تاخیر بین درخواست با -d پرچم:

~/Arjun# python3 arjun.py -u http://10.10.0.50/phpMyAdmin/ -d 5
_ /_| _ ' ( |/ /(//) v1.6
_/ [~] تجزیه و تحلیل محتوای صفحه وب
[~] تجزیه و تحلیل رفتار غیر موجود پارامتر
[!] بازتاب: 0
[!] پاسخ کد: 200
[!] محتوای ظهر: 4145
[!] ساده-طول متن: 474
[~] تجزیه صفحه وب به صورت بالقوه پارامترهای ...

به خصوص از روی حیله و تزویر اهداف ما می توانیم با استفاده از --پایدار گزینه ای که مجموعه ای از تعدادی از موضوعات به 1 و تاخیر به یک عدد تصادفی از ثانیه بین 6 و 12:

~/Arjun# python3 arjun.py -u http://10.10.0.50/phpMyAdmin/ --پایدار
_ /_| _ ' ( |/ /(//) v1.6
_/ [~] تجزیه و تحلیل محتوای صفحه وب
[~] تجزیه و تحلیل رفتار غیر موجود پارامتر
[!] بازتاب: 0
[!] پاسخ کد: 200
[!] محتوای ظهر: 4145
[!] ساده-طول متن: 474
[~] تجزیه صفحه وب به صورت بالقوه پارامترهای ...

آرجون باعث می شود آن را آسان برای ذخیره نتایج در فرمت JSON — فقط با استفاده از -o تغییر به دنبال نام فایل خروجی:

~/Arjun# python3 arjun.py -u http://10.10.0.50/phpMyAdmin/ -o نتایج.json
_ /_| _ ' ( |/ /(//) v1.6
_/ [~] تجزیه و تحلیل محتوای صفحه وب
[~] تجزیه و تحلیل رفتار غیر موجود پارامتر
[!] بازتاب: 0
[!] پاسخ کد: 200
[!] محتوای ظهر: 4145
[!] ساده-طول متن: 474
[~] تجزیه صفحه وب به صورت بالقوه پارامترهای
[+] اکتشافی در بر داشت بالقوه ارسال پارامتر: phpMyAdmin
[!] اولویت بندی آن
[+] اکتشافی در بر داشت بالقوه ارسال پارامتر: db
[!] اولویت بندی آن
[+] اکتشافی در بر داشت بالقوه ارسال پارامتر: جدول
[!] اولویت بندی آن
[+] اکتشافی در بر داشت بالقوه ارسال پارامتر: lang
[!] اولویت بندی آن
[+] اکتشافی در بر داشت بالقوه ارسال پارامتر: convcharset
[!] اولویت بندی آن
[+] اکتشافی در بر داشت بالقوه ارسال پارامتر: رمز
[!] اولویت بندی آن
[+] اکتشافی در بر داشت بالقوه ارسال پارامتر: pma_username
[!] اولویت بندی آن
[+] اکتشافی در بر داشت بالقوه ارسال پارامتر: pma_password
[!] اولویت بندی آن
[+] اکتشافی در بر داشت بالقوه ارسال پارامتر: سرور
[!] اولویت بندی آن
[~] انجام اکتشافی سطح چک
[!] اسکن کامل
[+] معتبر پارامتر داشت: GLOBALS
[+] معتبر پارامتر داشت: db
[+] معتبر پارامتر داشت: phpMyAdmin
[+] معتبر پارامتر یافت: جدول
[+] معتبر پارامتر داشت: هدف
[+] معتبر پارامتر داشت: pma_username
[!] صرفه جویی در خروجی به فایل JSON در نتایج.json

یکی دیگر از ویژگی های مفید است توانایی شامل داده های خاص ارسال می شود با هر درخواست. استفاده از --شامل گزینه ای با داده های رشته ارسال شود نقل قول:

~/Arjun# python3 arjun.py -u http://10.10.0.50/phpMyAdmin/ --شامل 'data=آزمون'
_ /_| _ ' ( |/ /(//) v1.6
_/ [~] تجزیه و تحلیل محتوای صفحه وب
[~] تجزیه و تحلیل رفتار غیر موجود پارامتر
[!] بازتاب: 0
[!] پاسخ کد: 200
[!] محتوای ظهر: 4145
[!] ساده-طول متن: 474
[~] تجزیه صفحه وب به صورت بالقوه پارامترهای ...

ما همچنین می توانید با استفاده از --هدر گزینه ای که به ما اجازه خواهد داد به ارسال اطلاعات هدر با درخواست:

~/Arjun# python3 arjun.py -u http://10.10.0.50/phpMyAdmin/ --هدر

که باز خواهد شد تا یک ویرایشگر متن (نانو به طور پیش فرض) ما اجازه می دهد به قرار دادن هر گونه هدر سمت راست:

گنو نانو 4.5 /tmp/tmptvwpv4kd
میزبان: مثال
پذیرش: آزمون
ارجاع: https://www.google.com

ویرایشگر پیش فرض را می توان در /core/prompt.py به یک ویرایشگر انتخاب کنید.

کاغذ بسته بندی

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

می خواهید شروع به ساختن پول به عنوان یک کلاه سفید هکر? پرش شروع خود را-کلاه سفید هک حرفه ای با ما 2020 حق بیمه هک اخلاقی, گواهینامه آموزشی از بسته نرم افزاری جدید Null Byte فروشگاه و دریافت بیش از 60 ساعت آموزش از هک اخلاقی حرفه ای است.

خرید در حال حاضر (96٪) >

تصویر جلد توسط drd_/Null Byte


tinyurlis.gdu.nuclck.ruulvis.netshrtco.de
آخرین مطالب
مقالات مشابه
نظرات کاربرن