Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
njsscan — ماسح SAST واعي دلالياً لتطبيقات Node.js يكتشف أنماط الشيفرة غير الآمنة باستخدام مطابقة أنماط libsast وتحليل semgrep الواعي بالصياغة. | Kitploit
أدوات/GitHubGitHub/ajinabraham/njsscan
التحليل الثابتماسحات الثغرات الأمنيةتحليل الكودأمن الويبDevSecOps
GitHubajinabraham/njsscan

njsscan

ماسح SAST واعي دلالياً لتطبيقات Node.js يكتشف أنماط الشيفرة غير الآمنة باستخدام مطابقة أنماط libsast وتحليل semgrep الواعي بالصياغة.

عرض المستودع
436108منذ 10 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

njsscan

njsscan هي أداة اختبار التطبيقات الثابتة (SAST) يمكنها العثور على أنماط الأكواد غير الآمنة في تطبيقات node.js الخاصة بك باستخدام مطابق الأنماط البسيط من libsast وأداة البحث الدلالي Syntax-aware عن أنماط الأكواد semgrep.

صُنع بـ Love في الهند Tweet

PyPI version platform License python Build

دعم njsscan

  • تبرع عبر PayPal: Donate via Paypal
  • ادعم المشروع: Github Sponsors

الدورات الإلكترونية والشهادات

OpSecX Video Course OpSecX Node.js Security: Pentesting and Exploitation - NJS

التثبيت

pip install njsscan

يتطلب Python 3.10+ ويدعم نظامي Mac و Linux فقط

خيارات سطر الأوامر

root@kitploit:~
$ njsscan
usage: njsscan [-h] [--json] [--sarif] [--sonarqube] [--defectdojo] [--gitlab-sast] [--html] [-o OUTPUT] [-c CONFIG] [--missing-controls] [-w] [-v] [path ...]

positional arguments:
  path                  Path can be file(s) or directories with source code

optional arguments:
  -h, --help            show this help message and exit
  --json                set output format as JSON
  --sarif               set output format as SARIF 2.1.0
  --sonarqube           set output format compatible with SonarQube
  --defectdojo          set output format compatible with DefectDojo Generic Findings Import
  --gitlab-sast         set output format as GitLab SAST report
  --html                set output format as HTML
  -o OUTPUT, --output OUTPUT
                        output filename to save the result
  -c CONFIG, --config CONFIG
                        Location to .njsscan config file
  --missing-controls    enable missing security controls check
  -w, --exit-warning    non zero exit code on warning
  -v, --version         show njsscan version

مثال الاستخدام

root@kitploit:~
$ njsscan test.js
- Pattern Match ████████████████████████████████████████████████████████████ 1
- Semantic Grep ███████████████████████████ 160

njsscan: v0.1.9 | Ajin Abraham | opensecurity.in
╒═════════════╤═══════════════════════════════════════════════════════════════════════════════════════════════╕
│ RULE ID     │ express_xss                                                                                   │
├─────────────┼───────────────────────────────────────────────────────────────────────────────────────────────┤
│ OWASP       │ A1: Injection                                                                                 │
├─────────────┼───────────────────────────────────────────────────────────────────────────────────────────────┤
│ CWE         │ CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')  │
├─────────────┼───────────────────────────────────────────────────────────────────────────────────────────────┤
│ DESCRIPTION │ Untrusted User Input in Response will result in Reflected Cross Site Scripting Vulnerability. │
├─────────────┼───────────────────────────────────────────────────────────────────────────────────────────────┤
│ SEVERITY    │ ERROR                                                                                         │
├─────────────┼───────────────────────────────────────────────────────────────────────────────────────────────┤
│ FILES       │ ╒════════════════╤═══════════════════════════════════════════════╕                            │
│             │ │ File           │ test.js                                       │                            │
│             │ ├────────────────┼───────────────────────────────────────────────┤                            │
│             │ │ Match Position │ 5 - 46                                        │                            │
│             │ ├────────────────┼───────────────────────────────────────────────┤                            │
│             │ │ Line Number(s) │ 7: 8                                          │                            │
│             │ ├────────────────┼───────────────────────────────────────────────┤                            │
│             │ │ Match String   │ const { name } = req.query;                   │                            │
│             │ │                │     res.send('<h1> Hello :' + name + "</h1>") │                            │
│             │ ╘════════════════╧═══════════════════════════════════════════════╛                            │
╘═════════════╧═══════════════════════════════════════════════════════════════════════════════════════════════╛

nodejsscan SAST

nodejsscan، المبنية فوق njsscan، توفر واجهة مستخدم متكاملة لإدارة الثغرات الأمنية إلى جانب تكاملات مفيدة أخرى.

nodejsscan web ui

انظر nodejsscan

واجهة برمجة التطبيقات Python

root@kitploit:~
>>> from njsscan.njsscan import NJSScan
>>> node_source = '/node_source/true_positives/sqli_node.js'
>>> scanner = NJSScan([node_source], json=True, check_controls=False)
>>> scanner.scan()
{
    'templates': {},
    'nodejs': {
        'node_sqli_injection': {
            'files': [{
                'file_path': '/node_source/true_positives/sqli_node.js',
                'match_position': (1, 24),
                'match_lines': (4, 11),
                'match_string': 'var employeeId = req.foo;\n\nvar sql = "SELECT * FROM trn_employee WHERE employee_id = " + employeeId;\n\n\n\nconnection.query(sql, function (error, results, fields) {\n\n    if (error) {\n\n        throw error;\n\n    }\n\n    console.log(results);'
            }],
            'metadata': {
                'owasp': 'A1: Injection',
                'cwe': "CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')",
                'description': 'Untrusted input concatinated with raw SQL query can result in SQL Injection.',
                'severity': 'ERROR'
            }
        }
    },
    'errors': []
}

إعداد njsscan

يتيح لك ملف .njsscan الموجود في جذر دليل الكود المصدري إعداد njsscan. يمكنك أيضًا استخدام ملف .njsscan مخصص عبر وسيط --config.

root@kitploit:~
---
- nodejs-extensions:
  - .js

  template-extensions:
  - .new
  - .hbs
  - ''

  ignore-filenames:
  - skip.js

  ignore-paths:
  - __MACOSX
  - skip_dir
  - node_modules

  ignore-extensions:
  - .jsx

  ignore-rules:
  - regex_injection_dos
  - pug_jade_template

  severity-filter:
  - WARNING
  - ERROR

  severity-overrides:
    express_xss: WARNING
    node_secret: ERROR

كتم النتائج

يمكنك كتم النتائج من ملفات جافاسكربت بإضافة التعليق // njsscan-ignore: rule_id1, rule_id2 إلى السطر الذي يؤدي إلى ظهور النتائج.

مثال:

root@kitploit:~
app.get('/some/redirect', function (req, res) {
    var target = req.param("target");
    res.redirect(target); // njsscan-ignore: express_open_redirect
});

تكاملات CI/CD

يمكنك تفعيل njsscan في مسارات CI/CD أو DevSecOps الخاصة بك.

إجراء GitHub

أضف ما يلي إلى الملف .github/workflows/njsscan.yml.

root@kitploit:~
name: njsscan
on:
  push:
    branches: [ master, main ]
  pull_request:
    branches: [ master, main ]
jobs:
  njsscan:
    runs-on: ubuntu-latest
    name: njsscan check
    steps:
    - name: Checkout the code
      uses: actions/checkout@v7
    - uses: actions/setup-python@v7
      with:
        python-version: '3.12'
    - name: nodejsscan scan
      id: njsscan
      uses: ajinabraham/njsscan-action@master
      with:
        args: '.'

مثال: dvna مع إجراء njsscan على GitHub

تكامل فحص كود GitHub

أضف ما يلي إلى الملف .github/workflows/njsscan_sarif.yml.

root@kitploit:~
name: njsscan sarif
on:
  push:
    branches: [ master, main ]
  pull_request:
    branches: [ master, main ]
jobs:
  njsscan:
    runs-on: ubuntu-latest
    name: njsscan code scanning
    steps:
    - name: Checkout the code
      uses: actions/checkout@v7
    - uses: actions/setup-python@v7
      with:
        python-version: '3.12'
    - name: nodejsscan scan
      id: njsscan
      uses: ajinabraham/njsscan-action@master
      with:
        args: '. --sarif --output results.sarif || true'
    - name: Upload njsscan report
      uses: github/codeql-action/upload-sarif@v3
      with:
        sarif_file: results.sarif

nodejsscan web ui

GitLab CI/CD

أضف ما يلي إلى الملف .gitlab-ci.yml.

root@kitploit:~
stages:
  - test

njsscan:
  image: python:3.12
  stage: test
  before_script:
    - pip3 install --upgrade njsscan
  script:
    - njsscan . --gitlab-sast -o gl-sast-report.json
  artifacts:
    reports:
      sast: gl-sast-report.json

مثال للأمر (محليًا):

root@kitploit:~
njsscan . --gitlab-sast -o gl-sast-report.json

ينشئ هذا تقرير GitLab SAST الأصلي بحيث تظهر النتائج في تقرير الثغرات / أداة أمان طلب الدمج (MR) دون الحاجة إلى محوّل SARIF.

مثال: dvna مع njsscan على GitLab

Travis CI

أضف ما يلي إلى الملف .travis.yml.

root@kitploit:~
language: python
install:
    - pip3 install --upgrade njsscan
script:
    - njsscan .

Circle CI

أضف ما يلي إلى الملف .circleci/config.yaml

root@kitploit:~
version: 2.1
jobs:
  njsscan:
    docker:
      - image: cimg/python:3.9.6
    steps:
      - checkout
      - run:
          name: Install njsscan
          command: pip install --upgrade njsscan
      - run:
           name: njsscan check
           command: njsscan .

Docker

صورة جاهزة من DockerHub

root@kitploit:~
docker pull opensecurity/njsscan
docker run -v /path-to-source-dir:/src opensecurity/njsscan /src

البناء محليًا

root@kitploit:~
docker build -t njsscan .
docker run -v /path-to-source-dir:/src njsscan /src
تنزيل الأداة