خروجی فقط عددی؟ دادهها رو با base36 بیرون بکش!
وقتی یه آسیبپذیری تزریق کد پیدا میکنی ولی سیستم هدف فقط اعداد برمیگردونه، ترافیک خارجی رو بلاک کرده و خطاها رو هم مدیریت میکنه، چطور میشه دادهها رو بیرون کشید؟ جواب اینه که از تبدیل پایه استفاده کنی؛ خروجی دستور رو بهعنوان یه عدد base36 بخونی و نتیجه دسیمال رو برگردونی. برای کاراکترهای غیرالفبایی هم میشه با `str.maketrans` اونها رو حذف کرد تا تبدیل موفق بشه. این روش در پایتون بیش از ۲ کیلوبایت داده الفبایی رو میتونه بهصورت یه عدد دسیمال خارج کنه.
این محتوا بهصورت خودکار با استفاده از هوش مصنوعی تولید شده است. بررسی نهایی آن پیش از استفاده توصیه میشود و مسئولیت استفاده از آن بهعهده کاربر است. برای مطالعه متن اصلی خبر،اینجا را کلیک کنید
خلاصهٔ کاملتر
فرض کن یه آسیبپذیری تزریق کد پیدا کردی، ولی سیستم هدف نه خروجی رو رفلکت میکنه، نه ترافیک خارجی بهش میرسه، نه timing attack جواب میده، و تنها چیزی که برمیگردونه یه عدد دسیمال معتبره. این سناریو خیلی هم دور از ذهن نیست؛ مثلاً یه ماشینحساب ساده پایتون که ورودی کاربر رو مستقیم به eval() میده:
import sys
res = eval(sys.argv[1])
try:
print(int(res))
except:
print('error: invalid number')خلاصهٔ کاملتر این خبر رو میتونی با داشتن اشتراک ویژه بخونی!
اشتراک رایگان
- دسترسی به خلاصهٔ کوتاه خبر
- دسترسی به خلاصهٔ کامل/اختصاصی خبر + نکات کلیدی
- ارسال اخبار مورد علاقه به ایمیل شما
- ارسال اخبار مورد علاقه به تلگرام شما
- عدم نمایش تبلیغات
اشتراک ویژه
- دسترسی به خلاصهٔ کوتاه خبر
- دسترسی به خلاصهٔ کامل/اختصاصی خبر + نکات کلیدی
- ارسال اخبار مورد علاقه به ایمیل شما
- ارسال اخبار مورد علاقه به تلگرام شما
- عدم نمایش تبلیغات




