چه جوری فایل شل رو با استفاده از دستورات sql آپلود کنیم؟

وقتی می خواهید یه فایل شل توی یه سایتی آپلود کنید،اول باید توی اون سایت یه باگی پیدا کنید،

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

مثلا moein.moein.png خوب این یه فایل با فرمت png و اجازه آپلود شدن هم داره، چرا؟ چون عبارت بعد از آخرین نقطه رو به عنوان فرمت فایل در نظر می گیره که اونم png یه و فایل رو آپلود می کنه.البته این دفعه سیستم فرمت فایل رو درست تشخیص داد. ولی ما می خوایم گولش بزنیم … من یه فایل php درست می کنم و توش هرچی که دوست دارم رو می نویسم، به عنوان یه چیز ساده یه فایلی که فقط یه عبارت کوچولو رو چاپ کنه … Hacked By KNTU Hackers

<?php

echo (“Hacked By KNTU Hackers”);

?>

خوب حالا فایلم رو save می کنم ولی این دفعه اسمش رو می ذارم moein.php?f=.png

موقع آپلود اون سایت میاد دوباره آخرین دات رو پیدا می کنه، ادامش رو می خونه و به png می رسه و اجازه آپلود رو می ده.حالا من توی سایت اونا یه فایلی به اسم moein.php دارم که وقتی اجرا شه، توی صفحه Hacked By KNTU Hackers رو نشون می ده.البته این یه فایل ساده php بود ، به جای آپلود این فایل می تونید یه فایل شل آپلود کنیم و کلا اون سایت رو دیفیس کنید، از دیتابیسش بک آپ بگیرید یا …

ولی در اصل قرار بود با دستورات sql بگیم که چه جوری می شه یه فایل شل رو آپلود کرد و همه اینایی که گفتم یه جورایی مقدمه و در فشانی بود:دی

برای راحتی کار فرض کنید که به phpmyadmin یه سایتی دسترسی دارید، حالا می خواهید با استفاده از همین امکان ساده یه فایل php رو آپلود کنید.

خوب به عنوان یه کار ساده یه table توی یکی از دیتابیس ها درست می کنیم.

CREATE TABLE IF NOT EXISTS shell (
shell text NOT NULL
) ;

یه جدولی که فقط یه فیلد داره و اسم اونم shell گذاشتیم.

حالا یه سری اطلاعات مفیدتری توی این جدول می ریزیم، مثلا

INSERT INTO shell (

shell

) VALUES (

‘<?php echo (“Hacked By KNTU Hackers”); ?>’
الان ما یه سطری رو به جدول insert کردیم که توی اون یه کد php قرار داره.
حالا از این جدول یه خروجی می گیریم و توی یه فایل php ذخیره می کنیم ، مثلا
select * into dumpfile ‘/var/www/hacked.php’ from shell
حالا یه فایل به اسم hacked.php تولید شده،که توی اون یه عبارت php قرار داره.
وقتی اون فایل رو اجرا کنید، عبارت Hacked By KNTU Hackers نمایش داده می شه.حالا دوباره می تونید به جای این اطلاعات، می تونید با یه فایل شل این کارو انجام بدید و یه فایل شل رو با استفاده از دستورات sql آپلود کنید.

چه بر سر hivemined اومد که یه روز down بود؟

متاسفانه یه روز سایت خوابید :((

آآآآآآآآآآماااااااا چرا؟

راستش رو بخواین خودم گند زدم:دی

یعنی در اصل قرار نبود گند بخوره، ولی خورد

البته به دلیل مراتب امنیتی نمی تونم اطلاعات کافی بدم که چی شد:دی

ولی همین قدر بهتون بگم که فایل های pid پوشه run سرور رو پاک کردم … دریغ از اینکه سرور رو طوری کانفیگ کردند که واسه هر دامین یه یوزر جدید می سازه ( که البته مثل اینکه درستشم همینه ) ، و اون pid هایی که پاک کردم، pid های یوزر خودم بوده … واسه همین کل فایل های سایت پاک شد (متاسفانه)

از اول همه کارهارو انجام دادم،فایلی هایی که داشتم رو درست کردم ولی بعضی هاشون رو نشد. :(

مثلا بعضی از عکس ها رو نداشتم واسه همین نمی یان.

البته تنها شانسی که آوردم این بود که دیتابیس روی یوزر اصلی ران شده. خدارو هزااااااااار مرتبه شکر

بسی شانس آوردم