Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
semgrep-rules — A collection of my Semgrep rules to facilitate vulnerability research. | Kitploit
उपकरण/GitHubGitHub/0xdea/semgrep-rules
Static Code Analysis (SAST)Vulnerability AnalysisCode AnalysisBinary AnalysisLearning & EducationCurated Resources
GitHub0xdea/semgrep-rules

semgrep-rules

A collection of my Semgrep rules to facilitate vulnerability research.

रिपॉजिटरी देखें
866896 दिन पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
वेबसाइट

semgrep-नियम

validate

"हमला सतह ही कमजोरी है। वहाँ बग ढूंढना सिर्फ एक विस्तार है।"

-- Mark Dowd

"कुछ विवरण दूसरों से अधिक महत्वपूर्ण हैं।"

-- Fedor G. Pikus

मेरे Semgrep नियमों का एक संग्रह जो कमजोरी अनुसंधान को सुविधाजनक बनाता है।

Program in C

ब्लॉग पोस्ट

  • https://hnsecurity.it/blog/semgrep-ruleset-for-c-c-vulnerability-research
  • https://hnsecurity.it/blog/automating-binary-vulnerability-discovery-with-ghidra-and-semgrep
  • https://hnsecurity.it/blog/big-update-to-my-semgrep-c-cpp-ruleset
  • https://hnsecurity.it/blog/streamlining-vulnerability-research-with-the-idalib-rust-bindings-for-ida-9-2/
  • https://hnsecurity.it/blog/my-semgrep-c-cpp-ruleset-is-ready-for-prime-time-again/

यह भी देखें

  • https://appsec.guide/docs/static-analysis/semgrep/
  • https://semgrep.dev/docs/writing-rules/overview
  • https://semgrep.dev/r

सेटअप और उपयोग निर्देश

  1. Semgrep स्थापित करें।
  2. इन नियमों का उपयोग Semgrep रजिस्ट्री के माध्यम से करने के लिए, अपने लक्ष्य स्रोत कोड रिपॉजिटरी के रूट फ़ोल्डर से निम्नलिखित चलाएँ:
root@kitploit:~
# high priority scan (quick wins)
semgrep --severity ERROR --config "p/0xdea"

# high and medium priority scan (recommended)
semgrep --severity ERROR --severity WARNING --config "p/0xdea"

# full scan (might include marginal findings and more false positives)
semgrep --config "p/0xdea"

वैकल्पिक रूप से, आप इस GitHub रिपॉजिटरी को स्थानीय रूप से क्लोन कर सकते हैं और चला सकते हैं:

root@kitploit:~
# full scan
semgrep --config semgrep-rules/rules /path/to/source

# specific rule scan
semgrep --config semgrep-rules/rules/c/command-injection.yaml /path/to/source

[!TIP] --no-git-ignore स्विच निर्दिष्ट करें ताकि फ़ाइलों को git ट्रैकिंग स्थिति या .gitignore नियमों की परवाह किए बिना स्कैन किया जा सके।

बेहतर सुव्यवस्थित अनुभव के लिए, मैं Semgrep स्कैन आउटपुट को SARIF प्रारूप में सहेजने और VS Code में SARIF Explorer का उपयोग करने की सलाह देता हूँ:

root@kitploit:~
semgrep --sarif --sarif-output=/path/to/source/SEMGREP.sarif --config semgrep-rules/rules /path/to/source
code /path/to/source # then open the SEMGREP.sarif file in VS code with SARIF Explorer 

शामिल SARIF आउटपुट उदाहरण भी देखें।

अनुकूलता

Semgrep CLI 1.169.0 के साथ परीक्षण किया गया।

नियम

C/C++

युद्ध-परीक्षित C (और कभी-कभी C++) नियम सेट।

बफर ओवरफ्लो

  • insecure-api-gets. असुरक्षित API फ़ंक्शन gets का उपयोग।
  • insecure-api-strcpy-strcat. संभावित रूप से असुरक्षित API फ़ंक्शन strcpy, stpcpy, strcat का उपयोग।
  • insecure-api-sprintf-vsprintf. संभावित रूप से असुरक्षित API फ़ंक्शन sprintf और vsprintf का उपयोग।
  • insecure-api-scanf. scanf परिवार में संभावित रूप से असुरक्षित API फ़ंक्शन का उपयोग।
  • incorrect-use-of-strncat. strncat को गलत आकार तर्क पारित किया गया।
  • use-of-source-size-in-copy. strncpy, , , और वेरिएंट को गलत आकार तर्क पारित किया गया।

पूर्णांक ओवरफ्लो

  • integer-wraparound. संभावित पूर्णांक रैपअराउंड त्रुटियाँ।
  • unsafe-strlen. strlen के वापसी मान को short में कास्ट करना खतरनाक हो सकता है।
  • integer-truncation. संभावित पूर्णांक छोटा करने की त्रुटियाँ।
  • signed-unsigned-conversion. संभावित signed/unsigned रूपांतरण त्रुटियाँ।
  • incorrect-unsigned-comparison. यह जाँचना कि क्या एक अहस्ताक्षरित चर ऋणात्मक है।

प्रारूप स्ट्रिंग

  • format-string-bugs. संभावित प्रारूप स्ट्रिंग बग।

मेमोरी प्रबंधन

  • insecure-api-alloca. संभावित रूप से असुरक्षित API फ़ंक्शन alloca का उपयोग।
  • use-after-free. free के बाद संभावित उपयोग।
  • double-free. संभावित डबल free।
  • incorrect-use-of-free. हीप में नहीं मौजूद मेमोरी पर free कॉल करना।
  • unchecked-ret-malloc. malloc, calloc, realloc, आदि का अनियंत्रित वापसी कोड।
  • putenv-stack-var. स्टैक-आवंटित चर के साथ putenv पर कॉल।
  • ret-stack-address. स्टैक-आवंटित चर के पते का संभावित वापसी।

कमांड इंजेक्शन

  • command-injection. system या popen के माध्यम से संभावित OS कमांड इंजेक्शन।

रेस कंडीशन

  • insecure-api-access-stat. असुरक्षित API फ़ंक्शन access, stat, lstat, आदि का उपयोग।
  • insecure-api-mktemp-tmpnam-tempnam. असुरक्षित API फ़ंक्शन mktemp, tmpnam, tempnam का उपयोग।
  • insecure-api-signal. असुरक्षित API फ़ंक्शन signal का उपयोग।

विशेषाधिकार प्रबंधन

  • incorrect-order-setuid-setgid. गलत क्रम में बुलाए गए विशेषाधिकार प्रबंधन फ़ंक्शन।
  • unchecked-ret-setuid-seteuid. setuid और seteuid का अनियंत्रित वापसी कोड।

सेवा से इनकार

  • regex-dos. रेगुलर एक्सप्रेशन जो एक्सपोनेंशियल रनटाइम प्रदर्शित कर सकता है और ReDoS की ओर ले जा सकता है।

विविध

  • incorrect-use-of-memset. memset के तर्कों का गलत क्रम।
  • insecure-api-rand-srand. संभावित रूप से असुरक्षित API फ़ंक्शन rand और srand का उपयोग।
  • overlapping-source-destination. कॉपी फ़ंक्शन में स्रोत और गंतव्य का ओवरलैप।
  • suspicious-assert. एसर्शन मैक्रो के उपयोग के कारण संभावित रूप से अमान्य आकार जाँच।
  • interesting-api-calls. दिलचस्प और संभावित रूप से असुरक्षित API फ़ंक्शन के कॉल।
  • unchecked-ret-scanf. scanf परिवार के फ़ंक्शन का अनियंत्रित वापसी कोड।
  • insecure-api-ato. संभावित रूप से असुरक्षित API फ़ंक्शन atoi, atol, atof का उपयोग।
  • . उच्च-एंट्रॉपी मान का असाइनमेंट जो एक रहस्य हो सकता है।

शोरगुल

ये नियम संभावित रूप से बहुत अधिक शोरगुल वाले और सामान्य उपयोग के लिए अनुपयुक्त माने जाते हैं।

सामान्य

  • bad-words. कीवर्ड और टिप्पणियाँ जो बगों की उपस्थिति का सुझाव देती हैं।

चेंजलॉग

  • CHANGELOG.md

TODO

अल्पकालिक कार्य आइटम

  • खुले मुद्दों और पुल अनुरोधों को संसाधित करें।
  • मौजूदा नियमों में नई जाँचें जोड़ें और जहाँ आवश्यक हो नए नियम जोड़ें।
  • कोड में संभावित हॉट स्पॉट को खोए बिना समग्र सटीकता में सुधार करें और झूठी सकारात्मकता को कम करें।
  • प्रदर्शन जांचें (देखें test_public_repos.py)।
  • वास्तविक दुनिया के कोड के विरुद्ध अतिरिक्त --time बेंचमार्किंग करें ताकि धीमे नियमों को पहचाना जा सके जिनमें अनुकूलन की आवश्यकता है।

दीर्घकालिक कार्य आइटम

  • Semgrep पार्सिंग में सुधार के लिए सामान्य डीकंपाइलर्स द्वारा उत्पन्न स्यूडोकोड को साफ करने के लिए स्क्रिप्ट जोड़ें।
  • नियमों को Semgrep Pro इंजन में पोर्ट करें, जो अंतर-फ़ाइल और अंतर-फ़ंक्शन विश्लेषण की अनुमति देता है।
  • जहाँ उपयुक्त हो, डेटा प्रवाह विश्लेषण के साथ नियमों में सुधार करने के लिए टेंट मोड लागू करें।
  • प्रतीकात्मक प्रसार की जांच करें जो कुछ झूठी सकारात्मकता को कम करने के लिए उपयोगी हो सकता है।
  • इस शोध में वर्णित अनुसार एक Semgrep रैपर और पोस्ट-प्रोसेसर लागू करें।

डोमेन-विशिष्ट नियम सेट

  • समर्पित कर्नेल नियम (Linux, BSD, macOS, आदि) लागू करें।
  • समर्पित क्रिप्टो और rng नियम लागू करें।
  • समर्पित C++ नियम लागू करें और उन्हें C नियमों से अलग दूसरे फ़ोल्डर में ले जाएँ।
  • Rust के लिए एक विशिष्ट नियम सेट बनाएँ।
टूल डाउनलोड करें
memcpy
snprintf
  • incorrect-use-of-sizeof. इसके लक्ष्य के बजाय पॉइंटर पर sizeof ऑपरेटर का आकस्मिक उपयोग।
  • unterminated-string-strncpy. strncpy और stpncpy के बाद स्पष्ट NUL-समाप्ति का अभाव।
  • off-by-one. संभावित एक-से-कम त्रुटि।
  • unsafe-ret-snprintf-vsnprintf. snprintf और vsnprintf के वापसी मान का संभावित रूप से असुरक्षित उपयोग।
  • unsafe-ret-strlcpy-strlcat. strlcpy और strlcat के वापसी मान का संभावित रूप से असुरक्षित उपयोग।
  • pointer-subtraction. आकार निर्धारित करने के लिए पॉइंटर घटाव का संभावित उपयोग।
  • write-into-stack-buffer. स्टैक पर आवंटित बफर में सीधा लेखन।
  • mismatched-memory-management. संभावित रूप से बेमेल C मेमोरी प्रबंधन रूटीन।
  • mismatched-memory-management-cpp. संभावित रूप से बेमेल C++ मेमोरी प्रबंधन रूटीन।
  • memory-address-exposure. अंतर्निहित मेमोरी पतों का संभावित प्रकटीकरण।
  • high-entropy-assignment
  • argv-envp-access. कमांड-लाइन तर्क या पर्यावरण चर तक पहुँच।
  • missing-default-in-switch. स्विच स्टेटमेंट में डिफ़ॉल्ट केस की कमी।
  • missing-break-in-switch. स्विच स्टेटमेंट में break या समतुल्य की कमी।
  • missing-return. गैर-void फ़ंक्शन में रिटर्न स्टेटमेंट की कमी।
  • typos. सुरक्षा निहितार्थ वाली संभावित टाइपो।