Code Review – Telegram
Code Review
2.72K subscribers
47 photos
5 files
25 links
Security code review
Admin @Scriptkiddo0o0
Download Telegram
فارسی :
درود درود
بچه ها تو این چنل میخوایم Security Code Review انجام بدیم.

حالا اصلا این چی هست ؟
- ما میایم و یه تیکه کد آسیب پذیر رو برمیداریم و سعی میکنیم اون آسیب پذیری رو پیدا کنیم و اگر کد پیچیده بود تحلیلش میکنیم.

به چه درد میخوره ؟
- کلا در روز شاید 10 دقیقه وقت بگیره ولی به مرور زمان باعث میشه با نوع نوشتار (Syntax) زبان های مختلف آشنا بشیم ، مایندست برنامه نویسارو به دست بیاریم ، تست های وایت باکس بتو.نیم انجام بدیم ، تست های بلک باکس رو ساده تر درک کنیم و ...

این تحلیل ها هم برای برنامه نویس ها مناسبه که امن تر کد بزنن هم هانترها و هکرا و ردتیمرا و خلاصه که همه.

نظری انتقادی بود خوشحال میشم : @ScriptKiddo0o0


English :
Hello, hello!

Guys, in this channel, we want to conduct a Security Code Review.

So, what is this exactly?

We take a piece of vulnerable code and try to find the vulnerability, and if the code is complex, we analyze it.
What is it good for?

It might take about 10 minutes a day, but over time it helps us become familiar with the syntax of different languages, understand the mindset of programmers, perform white-box testing, and better understand black-box testing, and so on.
These analyses are suitable for programmers to code more securely, as well as for hunters, hackers, red teamers, and basically everyone.

If you have any critical opinions, I’d be happy to hear them: @ScriptKiddo0o0
🔥94👌3👍2🎉1
Security Code Review #c1

Environment : #PHP

آسیب پذیری کجاست ؟
Where is the vulnerability ?

فارسی :
داخل این تیکه کد ها ممکنه باگ های زیادی باشه ما کار به این باگ ها نداریم ، اون چیزی که مدنظر ماعه آسیب پذیری هست که ایمپکت داره.
این کد به حمله CSRF آسیب پذیره ، چرا ؟ چون هیچ CSRF توکنی استفاده و چک نشده.
لاین 14 و 17 صرفا ولید بودن ایمیل چک میشه.
و در آخر تابع EditUser صدا زده میشه.
پس اگر ما به عنوان کاربر نرمال وارد سایت اتکر بشیم ، اتکر میتونه از طرف ما یک درخواست ولید ارسال کنه و ایمیل مارو تغیر بده.


English :

There might be many bugs in these code snippets, but we are not concerned with those bugs. What we are focused on is the vulnerability that has an impact. This code is vulnerable to a CSRF attack. Why? Because no CSRF token is used or checked. Lines 14 and 17 only check for the validity of the email. Finally, the EditUser function is called. So, if we log into the attacker’s site as a normal user, the attacker can send a valid request on our behalf and change our email.
5👍5🤔2
Security Code Review #c2

Environment : #PHP

آسیب پذیری رو اکسپلویت کنین.


Solution :

فارسی :
اکسپلویتش میشه : shell.jpg.php

کل مشکل تو لاین 15 هست که ریجکسش مشکل داره.
تو لاین 15 مثلا چک میکنه که آیا فایل دریافتی عکس هست یا نه ( checker function )
این ریجکس داره میگه که آقا تو رشته ای که (اسم فایل) برای من ارسال شده باید نقطه باشه به اضافه jpg یا jpeg یا png ، درغیراینصورت خطا برمیگردونم.
ماهم میگیم اوکی و یه فایل php براش ارسال میکنیم با این اسم : shell.jpg.php


English :
The vulnerability can be exploited by using a file named shell.jpg.php.

The entire issue is in line 15, where the regex has a problem. In line 15, it checks whether the received file is an image or not (checker function). This regex is saying that in the string (file name) sent to me, there must be a dot followed by jpg, jpeg, or png; otherwise, it returns an error. We say okay and send a PHP file with this name: `shell.jpg.php
👍52😁1
Security Code Review #c3

Environment : #NodeJS

آسیب پذیری کجاست ؟
Where is the vulnerability ?
2
Security Code Review #c4

Environment : #PHP

کدوم خط آسیب پذیره ؟
(اکسپلویت کنین)

Solution :
فارسی :
با path traversal میتونیم فایل های دیگه رو بخونیم ولی چجوری ؟
فقط کافیه این پیلود رو وارد کنیم :
/../secret.txt
اتفاقی که میوفته :
include(index_/../secret.txt)


English :
The vulnerable line is the one that allows for path traversal. By using a payload like /../secret.txt, you can exploit this vulnerability. The code effectively executes something like:

include(index_/../secret.txt);


This allows you to read other files on the server.
👏7👍2
Security Code Review #c5

Environment : #PHP

کدوم خط آسیب پذیره ؟
(اکسپلویت کنین و فلگ رو به دست بیارین)
بچه ها شاید آسیب پذیری تو نگاه اول قابل تشخیص باشه ولی اصل کار اکسپلویت کردنشه که برای درک بهتر میتونین تو لوکال رانش کنین.


Which line is vulnerable?
(Exploit it and get the flag)
Guys, the vulnerability might be obvious at first glance, but the main task is exploiting it, which you can better understand by running it locally.
👍63
Security Code Review #c6

Environment : #NodeJS #Nginx

چجوری میتونیم به فلگ دسترسی پیدا کنیم؟
یکیش کانفیگ Nginx و اون یکی NodeJS.


How can we access the flag?
one image is Nginx config and the other one is NodeJS.


Hint : It's all your fault Phillip Hallam-Baker.
👍54👏3
Security Code Review #c7

Environment : #Flask

آسیب پذیری کدوم قسمته؟
اصلا آسیب پذیر هست؟


Which part is vulnerable?
Is it vulnerable at all?


Author : logicalhunter
👍8🔥43
Security Code Review #c8

Environment : #PHP

آسیب پذیری کدوم قسمته؟
(اکسپلویت لازم نیست ، همین که با چشم بتونین تشخیص بدین کدوم تیکه آسیب پذیره و آسیب پذیری چی هست کافیه)
پ ن:
این کد چلنج بونس استعدادیابی Blackhole هست. آنچنان تو سناریوهای Real world کاربرد نداره خیلی خیلی کم ، اونم بعضی جاها که به صورت وایت باکس پنتست میشه ، تو بلک باکس هم هست ولی درصدش خیلی پایینه. بیشترین جایی هم که استفاده میشه داخل CTF ها هست.
(جواب داخل کامنت ها هستش)


Which part is vulnerable?

(An exploit is not necessary; just being able to visually identify which part is vulnerable and what the vulnerability is will suffice.)

Note: This code is a bonus challenge for Blackhole talent scouting. It doesn’t have much application in real-world scenarios, very rarely, and only in some cases where white-box pentesting is done. It’s also present in black-box testing, but the percentage is very low. The most common use is in CTFs.

(The answer is in the comments.)
🔥71
Security Code Review #c9

Environment : #Flask

آسیب پذیری کدوم قسمته؟
(چجوری اکسپلویتش کنیم)
پ ن : جواب داخل کامنت ها هستش


Which part is vulnerable?
How to exploit it ?
👍10🔥21
Security Code Review #c10

Environment : #Java

آسیب پذیری کدوم قسمته ؟
(چجور اکسپلویت کنیم؟)
پ ن : جواب تو کامنتا هست.


Which part is vulnerable?
How to exploit it ?
👍5🔥31🐳1
Security Code Review #c11

Environment : #C

وقتشه یکم بریم زبان های سطح پایین تر ، اینجا آسیب پذیری کدوم قسمته ؟
پ ن : جواب و توضیحات تو کامنت


It's time to dive into lower-level languages. Where is the vulnerability here?
4👏2
Security Code Review #c12

Environment : #NodeJS

آسیب پذیری کجاست ؟
چجوری اکسپلویتش کنیم ؟
پ ن : جواب تو کامنتا هست. سناریوهم Real هست.


Where is the vulnerability?
How can we exploit it?
The answer is in the comments. The scenario is real.
👍10
Security Code Review #c13

Environment : #PHP

قسمت آسیب پذیر کجاست؟
و از همه مهم تر چرا آسیب پذیره ؟


Where is the vulnerable part?
And most importantly, why is it vulnerable?


پ ن : بچه ها من یه تایمی نبودم ، درگیر ریکورد کردن یه سری دوره بودم.
یکی از دوره ها JS for bug hunters هست که سعی کردم قسمت هایی که برای برنامه نویس ها هست رو اسکیپ کنم و فقط قسمت هایی که برای Hunter ها نیازه رو آموزش بدم ، امیدوارم جبران اون تایمی ک نبودم باشه :
https://www.huntlearn.com/courses/JS-for-Bug-Bounty-Hunters
👍8
تو این رایت‌اپ سعی کردم یه مایندستی که خیلی میتونه به‌دردتون بخوره رو تو سناریو واقعی نشونتون بدم.
(آسیب‌پذیری‌ کیف‌پول تو یکی از سایت‌های ایرانی)
امیدوارم لذت ببرین.
https://huntlearn.com/blogs/Unlimited-wallet-recharge-in-one-of-the-well-known-Iranian-platforms

اگر خوشتون اومد ممنون میشم تو توییتر حمایت کنین.
Twitter
👏11❤‍🔥2👍2🔥2
Security Code Review #c14

Environment : #NodeJS , TS

آسیب پذیری چیه؟
اکسپلویتش کنین.


What is vulnerability ?
Exploit it.
👍12
Security Code Review #c15 - Challenge

Environment : #PHP

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

جواب هاتونو به این آیدی بفرستین به این صورت :
باگ فلان
با استفاده از این روش میشه اکسپلویتش کرد.
@Challenge_Answer0o0

از بین 6 نفر اولی که جواب درست رو بگن یه قرعه کشی ریز انجام میشه و برنده یه پیتزا جایزه میگیره.


We have a small code review challenge with a prize.
All you need to do is identify the bug and explain how to exploit it.

Send your answers to this ID in the following format:
Bug Name
This is how you can exploit it.
@Challenge_Answer0o0

Among the first 6 people who provide the correct answer, a small raffle will be held, and the winner will receive a pizza as a prize.
🔥7👍442🤣1
Code Review
Security Code Review #c15 - Challenge Environment : #PHP یه چلنج کد ریو کوچولو داریم ، همراه با جایزه. فقط کافیه بگین باگ چیه؟ و چجور اکسپلویتش کنیم. جواب هاتونو به این آیدی بفرستین به این صورت : باگ فلان با استفاده از این روش میشه اکسپلویتش کرد. @Cha…
Solution:

آقای افشین فخیم لطف کردن به صورت خیلی تخصصی و خوب توضیح دادن :
نوع آسیب پذیری padding oracle هستش که بدلیل استفاده از mode رمزنگاری CBC و پاسخ کد backend به اشتباه بودن مقادیر padding رخ میده.

یعنی زمانی که هکر در روش منطق رمزگشایی اگر بلاک رمز شده قبل از بلاک هدف به عنوان اولین قدم رمزگشایی XOR شود، هکر برای این شناسایی اسیب پذیری بلاک قبلی را که به عنوان Cipher key بلاک به صورت بایت به بایت از آخر شروع به بروت فورس می کند، این عمل به این علت است که در رمزنگاری CBC اگر یک بلاک 16 بایتی تا 8 بایت آن داده گرفته باشد ۸ بایت دیگر آن به عنوان padding در نظر گرفته می شود الگو تخصیص Padding به این صورت است که به تعداد خانه هایی که از یک بلوک 16 بایتی خالی مانده است عدد خانه های خالی قرار می گیرد. به طور مثال اگر یک بلاک 16 بایتی 8 بایت آن رمز شده و دارای داده کاربر باشد 8 بایت دیگر آن عدد 8 قرار می گیرد.

حالا هکر با استفاده از Brute Force که پیش تر توضیح دادم شروع به کشف بایت به بایت خانه های Padding می کند تا متوجه شود که چه عددی در خانه Padding قرار داد برای مثال اگر در Brute Force و تغییر یک بایت آخر بلاک قبلی که به عنوان Cipher Key بلاک قبلی ما است تغییر کند و بر مبنای XOR 254 کارکتر شود در این Brute Force اگه عدد 8 که عدد صحیح Padding است خطا ندهد یعنی سرور به جز عدد 8 به اعداد دیگر پاسخ خطا می دهد ولی به عدد 8 خطا نمیدهد زیرا معیار صحیح خواندن ساختار رمزنگاری CBC به این صورت است که فقط الگو پیاده سازی Padding در بلوک ها چک می شود این عملکرد موجب رخداد یک آسیب پذیری می شود.

بعد از آنکه هکر تعداد خانه های بایت Padding را شناسایی کرد به خانه بعدی که داده کاربر به صورت رمز شده وجود دارد و به End-Point دریافت کننده این القا را می کند که آن خانه دارای محتویات کاربر هم یک خانه Padding است، یعنی اگر عدد Padding صحیح 8 باشد هکر به طور زیرکانه آن را عدد 9 اعلام می کند با این عمل سرور بایتی که دارای داده کاربر است را به عنوان Padding در نظر میگیرد حالا نحوه عملکرد این عمل به چه صورت است؟

مبنای XOR صورت گرفته بر روی بلاک هدف ما مشخص نیست ما برای آنکه بتوانیم مبنا را به دست بیاوریم ( Cipher Key ) بدین صورت عمل میکنیم که خانه داده اصلی را هم به صورت XOR شده Brute Force کرده تا عدد 9 از آن عملیات XOR خارج شود و سرور به دلیل آنکه عدد Padding صحیح القا شده است خطا ارسال نمی کند. با این کار نتیجه ای که به دست می آوریم مبنای کاراکتری که موجب خروج عدد صحیح 9 در رمزنگاری XOR شده است یک مبنای کشف شده معادله XOR انجام شده بوده که در نقطه آغازین رمزنگاری قرار داشته است، حال به همین روش شروع به کشف تمامی مبنای Cipher Key XOR شده خواهیم کرد و بدین ترتیب کلید XOR کشف می شود و با آن کلید XOR در نهایت داده رمز شده را رمزگشایی می کنیم.

خلاصه: این آسیب پذیری به این دلیل رخ می دهد که طراحی که از این نوع رمزنگاری استفاده کرده است رویه تصدیق بلاک را صرفا Padding بلاک اعلام داشته و بر مبنای آن واکنش به کاربر نشان می دهد همین واکنش موجب می شود که هکر بتواند آسیب پذیری را بهره برداری کند.


خودمم یه ویدیو ریکورد کردم و داخلش به صورت خیلی خلاصه به این آسیب پذیری پرداختم و اکسپلویتش کردم :
https://www.youtube.com/watch?v=fblCp-qCRUA
14👎2🤔11
بچه ها اگر تا اینجا راضی بودین خوشحال میشم چنل رو برای محتوای بهتر بوست کنین : بوست
🏆21👍62👎22🤔1