The Diary
Дневникът на Георги
<- Сряда, 24 Ноември 2004 | Начална страница | Петък, 26 Ноември 2004 ->
Четвъртък, 25 Ноември 2004
15:58Винаги съм обичал да се забавлявам, като гледам какви весели и "сигурни" сайтове правят т.н. "web програмисти". Днес случайно попаднах на поредният български сайт магазин helikon.bg. Гордо озаглавен "Българската книжарница". Все едно няма други, но хайде ще им простим.
Първо впечатление - изглежда шаренко и горе-долу добре. Дотук всичко е ок, я да пробвам няколко елементарни трика.
Тествам стандартните добавяния на единични кавички в параметрите към сайта и защо ли не се учудвам, че почва да се чупи. Не с някое просто "Error in query", а със страшното съобщение: "Fatal error: Maximum execution time of 30 seconds exceeded in /home/www/www/helikon.bg/template.php on line 131". Купон. Мдааа, ясно ви е, че SQL Injection има. Поне навсякъде където се сетих да пробвам, имаше.
Време е да се тества дали търсачката филтрира специлни символи. Хммм, намерено "1 до 20 от 16803", браво доста заглавия имат и не лъжат в текста отгоре на страницата. :-) Освен това не филтрират специалните символи _ и % (май не ги знаят). Тръгвам да цъкна за да видя следващата страница от резултатите и тук вече очите ми се пълнят със сълзи от умиление. И вашите ще се напълнят след като проумеете какво е измислил гениалният програмистки мозък.
Вижте внимателно адреса, който ви се отваря:
http://www.helikon.bg/search.php
?act=sql
&sql=U0VMRUNUICogRlJPTSBtYWluIHdoZXJlIHRpdGxlI Gxpa2UgJyVfXyUnIG9yZGVyIGJ5IHRpdGxlIEFTQyA=
&sql_which=20
&sub_act=1
За ваше удобство съм го разделил по параметри (махнете шпациите във SQL параметъра,
добавил съм ги аз).
Лично на мен веднага ми привлича вниманието параметъра sql и "странната"
поредица от букви след него. Нещо кодирано? Нещо неразчитаемо? Дали? Като
гледам символа равно (=) накрая това май ще да е обикновен base64 кодиран
текст. Я да вземем да проверим дали е така. Пишем една кратка PHP програмка:
<?
и мислено си представяме как сега най-вероятно ще ни изплюе SQL заявката, която
ползват за да търсят в базата. Но не, не може да са толкова малоумни, НЕ МОЖЕ!
print base64_decode("U0VMRUNUICogRlJPTSBtYWluIHdoZXJlIHRpdGxl IGxpa2UgJyVfXyUnIG9yZGVyIGJ5IHRpdGxlIEFTQyA=");
?>
Пускаме си скрипта (php -q bozi.php) и какво виждат невярващите ми очи:
SELECT * FROM main where title like '%__%' order by title ASC
А стига бре! Значи все пак МОЖЕ да са толкова малоумни, че да получават цялата заявка от клиента като текст.
Това ни отваря доста интересни възможности, набързо се сещам за няколко. Едната е абсолютно грубианска, какво ще стане ако заменим "SELECT ...." с "DELETE FROM main"? Дали няма да изчезнат някои данни, които helikon.bg сигурно смятат за важни? Или нещо още по-подло - какво ще стане ако вземем да пипаме по цените на книгите с подходящи заявки? Оставям отговора на тези въпроси и експериментите на любезният читател.
Аз само мога да кажа за пореден път, ееееееееееееееех програмистиииииии.
[ Коментари: 7 ]Коментари
Ей, кракер гаден! ;) Нали ти беше този, дето щеше да изхака сайта на Автора (онзи с безплатните обеди). Какво си тръгнал да се заяждаш с хората, бе!
Признавам обаче, това с гениалният похват да се изпълняват директно заявки от потребите и мен ме разтърси. Всъщност, май за потребител не не са разрешили *всякакви* операции с таблиците (което не ги оправдава, де), самият факт, че позволяват да се изпълнява код е доста стряскащ. Какво ли не прави "улеснението" и (вероятно) сроковете с всеки проект.
Нека да им е лесно на момчетата/момичетата програмисти. Сигурен съм обаче, че от Helikon не знаят за какво са платили и каква работа им е свършена. Просто се радват на шаренията и им е кеф. Не им го разваляй...остави ги да се изненадат някой ден.
Искам да ти благодаря за цветовите гами на блога. Днес след около 4 месеца по-късно рекох да видя кое как е направено и гледам някакъв иконостас се мъдри в Мозилата. Чак сего го забелязах.
http://www.karatebulgaria.com/alex/txt/2004-11-26/css .png
Още по-интересно става като видиш какви още клиенти имат - министерства, хотели, БАН, БНР ...
А и имат награда "BG Site 2002"
Всъшност проблема идва от това, че разработката на динамични уеб приложения е много достъпна и доста хора след 2-3 седмични занимания с някоя книжка за PHP се обявяват за Уеб програмисти. Лошото е, че обикновенно развитието спира до тук и резултата е налице ;)
В този ред на мисли - можем да очакваме големи изненади от набиращите сила .НЕТ програмисти ;)
Всъшност сега достигам до извода, че достъпността на една технология е нещо много коварно.
1. намалява цената на труда свързан с технологията (напр. PHP програмисти има доста)
2. позволява разработката на отговорни системи от неотговорни програмисти ;)
Ако потърсиш по кавичка в същият сайт резултат е следният:
SELECT main.id as book_id,main.title,main.memo,main.price,main.NR, autor.name as author,main.autor as author_id FROM autor,main where autor.id=main.autor and main.autor=15684 order by main.title ASC
показва в хедъра на сайта със ситен шрифт ;))) хихи
iavno sa se usetili se pak momchetata zashtoto veche ne stava i tova ne e mnogo losho ;) zabeliazvam obache i v tozi sait neshto stranno shapciite se iziajdat m/u dumite kato napisha "tova_ne" sas shpacii zashto mi stava tovane sliato?
Ne e mnogo losho sysadmina da si pogledne tvorenieto che mai i toi ima za dialane ;))
to iavno che "ne" se izpolzva i za neshto drugo ama ...
Disclaimer: Except where otherwise noted all opinions expressed here are personal
opinions of the author and do not reflect official opinions of my employer or
any other person, company or organization associated with the author.
Copyright: Except where otherwise noted the content of this site is licensed under a
Creative Commons Attribution License. Текстът на договора за ползване на български
Copyright (cc) 2003-2011 Georgi Chorbadzhiyski. Some rights reserved.
Comments, texts and pictures not signed by me are property of their respective owners.
Страницата е генерирана от Glog v3.99-test
Да бе с такива всеки ден се сблъсквам, умниците с кривите пръсти
Написа :))) на 25-Nov-2004 15:41