PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : اسیب پذیری jsp



kxxxxxx
November 6th, 2012, 13:43
سلام
اگه میشه یه کم راجع به امنیت در برنامه نویسی jsp توضیح بدید و اسیب پذیری های اون را نام ببرید
ممنونم

parsian2host
November 6th, 2012, 13:49
در باره
jsp سرچ کنید مقاله زیاد هست . ولی در باره اسیب پذیری
نمی دونم چقدر با آسیب پذیری Expression Language Injection آشنا هستین اما تازه باهاش اشنا شدم
تو گوگل سرچ کنید نتایج زیادی می بینید اما می خوام اینجا دور هم بحث کنیم راجع بهش

این آسیب پذیری رو من تو صفحات JSP دیدم که میشه یه مقدار جاوا رو بهش داد و نتیجش رو گرفت اما دقیقا نمی دونم چه اتفاقی میفته و چه خطراتی داره

یه مثال ساده :

http://target/carts.jsp?item=${1+1}&submit=addخروجی میشه 2

اما
EL Injection هم باز کار stefano di palo است و خیلی پیچیده نیست EL برای JSTL نوشته شد پس فقط این آسیب پذیری به این شکل مربوط JAVA و همنطور که گفتید JSP میشه . و بیشترین حالت رخ دهی در تگ های Spring JSP است.
من مقاله رو چند وقت پیش کاملا روزنامه ای خوندم اما تا به امروز در هیچ تارگتی به کارمون نیومده از اونجایی که تو پروژه ها وب بیشتر از PHP و ASP.net میشه و اون تارگت هایی هم که JSP هستند روش های دیگه ای هم وجود کار رو راه انداخته پس عملی تستش نکردیم که ببینیم چه idea هایی میشه روش داد.

و روش تستش همینه که اشاره کردید مثلا اگر ${1+1} برای شما 2 رو برگردونه سایت آسیب پذیره البته به دلیل encoding موجود مستقیم نمیتونید XSS ازش بگیرید اما سناریو های استفاده مختلفی هم میتونه داشته باشه.
- یک سناریو میتونه درخواست یک مقدار ($xx.ss) باشه شما یک variable رو که درخواست بدید error که بر میگردونه میتونه شامل اطلاعاتی مانند path disclosure و ... رو از سرور داشته باشید.
- یک سناریو میتونه دورزدن کوکی httponly باشه (یعنی ${cookie["JSESSIONID"].value} )
- سناریو خواندن کوکی ها (بدون XSS)
- سناریو های دیگر رو میتونید با توجه به شرایطی که توش هستید بهش فکر کنید

یک نکته دیگه هم اینکه این نوع attack هم میتونه blind باشه یعنی شما reponse رو مستقیم نبینید که باز هم با inject کردن میتونیم صحیح یا غلط بودن یک شرط رو چک کنیم.
این روش کاملا توسط کاشفش مستد شده و تقریبا تمام حالت هاشو توضیح داده

اگر کسی اطلاعات بیشتری خواست این هم مقاله ی کامل : پیوست شد