Strictly social XSS в WordPress

23:53 01.11.2011

Ще 15.10.2008 я знайшов Cross-Site Scripting уразливість в WordPress. І після публікації статті про Виключно соціальний XSS, до якої має відношення ця дірка, я публікую дану інформацію.

В WordPress має місце Cross-Site Scripting уразливість, в даному випадку Strictly social XSS. Причому одразу двох типів цього класу XSS: Strictly social XSS persistent (лінка з JavaScript/VBScript) та Strictly social XSS persistent self-contained (лінка з data з JavaScript). Тобто при бажанні цю дірку можна розбити на дві дірки. Це хороший приклад цих двох різновидів Strictly social XSS уразливостей.

XSS:

В полі коментарю (параметр comment):

<a href="javascript:alert(document.cookie)">test</a>
<a href="vbscript:MsgBox(document.cookie)">test</a>
<a href="data:text/html;base64,PHNjcmlwdD5hbGVydChkb2N1bWVudC5jb29raWUpPC9zY3JpcHQ+">test</a>

Атака спрацює лише, якщо коментар опублікував адмін, а не незалогінений відвідувач. Для чого можна використати CSRF уразливість в WordPress <= 2.1.2. В описі даної уразливості ciri розповів про persistent XSS (що працювала разом з CSRF), а я веду мову про Strictly social XSS. В нових версіях WP, де присутній захист від CSRF, можна використати reflected XSS дірку (або ж використати інші техніки розроблені мною) для обходу цього захисту та публікації коментаря з атакуючим кодом.

В WordPress 2.0.10 та 2.1.3 розробники вже виправили CSRF, але можливість проведення Strictly social XSS (через anchor тег) все ще залишилася навіть в останній версії WP. Розробники не стали прибирати цей функціонал адміна, для повного виправлення XSS, обмежившись виправленням CSRF. Тому як вищезгадана persistent XSS, так і знайдена мною Strictly social XSS, все ще працюють.

Відмінність WP 3.x від попередніх версій в тому, що в адмінці (на сторінці edit-comments.php) код з коментарю прибирається (чого не робилося в старих версіях) і атака лише можлива на самій сторінці з коментарем. Для автоматизації запуску коду (після того як він буде розміщений) через Strictly social XSS уразливість можна скористатися технікою ClickJacking, причому атакувати можна не тільки адміна, але й будь-яких користувачів та відвідувачів сайта.

Уразливі всі версії WordPress - WP 3.2.1 та попередні версії. Тестував в різних 2.0.x версіях, включно з 2.0.11, та в 3.1.1.


Leave a Reply

You must be logged in to post a comment.