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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
strot — وكيل كشط لواجهات برمجة تطبيقات الويب | Kitploit
أدوات/GitHubGitHub/vertexcover-io/strot
الاستطلاعالبرمجة النصية والأتمتةاختبار أمان APIجمع المعلوماتأمن الويبزاحف الويب
GitHubvertexcover-io/strot

strot

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

عرض المستودع
186منذ 9 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

قم بالهندسة العكسية لواجهة API الداخلية لأي موقع ويب باستخدام اللغة الطبيعية

License Python


المشكلة

تُحمِّل المواقع الحديثة البيانات عبر استدعاءات AJAX خفية:

  • البيانات ليست في HTML - بل يتم جلبها عبر واجهات برمجية داخلية
  • يجب عليك فحص طلبات الشبكة يدويًا
  • منطق ترقيم معقد مدفون في JavaScript
  • تغيّر واجهات API نقاط النهاية والمعاملات بشكل متكرر

الحل

يحلل Strot المواقع ويكتشف استدعاءات واجهاتها البرمجية الداخلية نيابةً عنك.

ما الذي يفعله Strot فعليًا:

  1. يحلل صفحة الويب لفهم البيانات التي تريدها
  2. يلتقط طلب AJAX الذي يجلب تلك البيانات
  3. يكتشف جميع المعاملات - الترقيم (limit/offset، المؤشرات، أرقام الصفحات) والمعاملات الديناميكية (الفرز، التصفية، البحث)
  4. يولّد كود استخراج لتحليل استجابة JSON
  5. يُعيد كائن Source يحاكي استدعاءات API الخاصة بالموقع مع تحكم كامل في المعاملات

🐳 جرّبه الآن - دون أي إعداد!

احصل على تجربة Strot الكاملة (واجهة الويب + API) فورًا:

باستخدام متصفح Patchright

root@kitploit:~
docker run -d --name browser-server -p 5678:5678 synacktra/patchright-headless-server
STROT_ANTHROPIC_API_KEY=sk-ant-apiXXXXXX \
  docker compose -f https://raw.githubusercontent.com/vertexcover-io/strot/refs/heads/main/docker-compose.yml up

أو باستخدام متصفح Steel

root@kitploit:~
STROT_BROWSER_WS_URL=wss://connect.steel.dev?apiKey=ste-XXXXXX STROT_ANTHROPIC_API_KEY=sk-ant-apiXXXXXX \
  docker compose -f https://raw.githubusercontent.com/vertexcover-io/strot/refs/heads/main/docker-compose.yml up

ثم قم بزيارة:

  • 🌐 لوحة الويب: http://localhost:3000 - واجهة مرئية لتحليل المواقع
  • 🔌 REST API: http://localhost:1337 - وصول برمجي

🐍 مكتبة بايثون

التثبيت

root@kitploit:~
pip install strot

أو باستخدام uv:

root@kitploit:~
uv pip install strot

مثال 1: الهندسة العكسية لواجهة برمجة المراجعات

root@kitploit:~
import strot
import asyncio
from pydantic import BaseModel

class Review(BaseModel):
    title: str | None = None
    username: str | None = None
    rating: float | None = None
    comment: str | None = None
    date: str | None = None

async def get_reviews():
    # Strot discovers the internal API that loads reviews
    source = await strot.analyze(
        url="https://www.getcleanpeople.com/product/fresh-clean-laundry-detergent/",
        query="Customer reviews with ratings and comments",
        output_schema=Review,
        code_executor="e2b" # Defaults to "unsafe"
    )

    # Use the same API call the website uses, with full parameter control
    async for reviews in source.generate_data(limit=500, offset=100, sortBy="date desc"):
        for review in reviews:
            print(f"{review['rating']}⭐ by {review['username']}: {review['comment']}")

if __name__ == "__main__":
    asyncio.run(get_reviews())

مثال 2: التقاط واجهة برمجة قائمة المنتجات

root@kitploit:~
import strot
import asyncio
from pydantic import BaseModel

class Product(BaseModel):
    name: str | None = None
    price: float | None = None
    rating: float | None = None
    availability: str | None = None
    description: str | None = None

async def get_products():
    # Strot finds the AJAX endpoint that loads product listings
    source = await strot.analyze(
        url="https://blinkit.com/cn/fresh-vegetables/cid/1487/1489",
        query="Listed products with names and prices.",
        output_schema=Product
    )

    # Set code executor of your choice into source
    source.set_code_executor("e2b")

    # Access all products with custom filtering and sorting
    async for products in source.generate_data(limit=100, offset=0, category="vegetables", sortBy="price"):
        for product in products:
            print(f"{product['name']}: ${product['price']} ({product['rating']}⭐)")

if __name__ == "__main__":
    asyncio.run(get_products())

🔌 خادم MCP

يوفر Strot خادم MCP (بروتوكول سياق النموذج) يمكّن عملاء MCP مثل Claude من تحليل المواقع واكتشاف واجهاتها البرمجية الداخلية مباشرة.

الإعداد

root@kitploit:~
git clone https://github.com/vertexcover-io/strot.git
cd strot && uv sync --group mcp

قم بتعيين متغيرات البيئة:

root@kitploit:~
export STROT_ANTHROPIC_API_KEY=sk-ant-apiXXXXXX
export STROT_BROWSER_MODE_OR_WS_URL=headless  # or 'headed' or ws://browser-url

إذا كنت تريد استخدام متصفح مستضاف، يمكنك القيام بما يلي:

شغّل خادمًا بدون واجهة رسومية داخل docker

root@kitploit:~
docker run -d --name browser-server -p 5678:5678 synacktra/patchright-headless-server
export STROT_BROWSER_MODE_OR_WS_URL=ws://localhost:5678/patchright

أو الاتصال بخادم متصفح بعيد:

root@kitploit:~
export STROT_BROWSER_MODE_OR_WS_URL=wss://...

الاستخدام

root@kitploit:~
$ uv run strotmcp
Usage: strotmcp COMMAND

╭─ Commands ─────────────────────────────────────────────╮
│ http             Start an http server.                 │
│ sse              Start an sse server.                  │
│ stdio            Start a stdio server.                 │
│ streamable-http  Start a streamable http server.       │
╰────────────────────────────────────────────────────────╯

مع Claude Code

  • ناقل stdio

    root@kitploit:~
    claude mcp add strot-mcp "uv run strotmcp stdio" --transport stdio \
      --env STROT_ANTHROPIC_API_KEY=$STROT_ANTHROPIC_API_KEY STROT_BROWSER_MODE_OR_WS_URL=$STROT_BROWSER_MODE_OR_WS_URL
    
  • نواقل sse وhttp وstreamable-http

    شغّل خادم MCP بالناقل المطلوب في طرفية منفصلة:

    root@kitploit:~
    uv run strotmcp sse --port 8888
    # uv run strotmcp http --host 0.0.0.0
    # uv run strotmcp streamable-http --host 127.0.0.1 --port 8777
    

    أضف خادم MCP إلى Claude:

    root@kitploit:~
    claude mcp add strot-mcp http://127.0.0.1:8888/sse --transport sse
    

🧪 التقييم

اختبر وتحقق من دقة تحليل Strot عبر مواقع مختلفة ومكونات فردية. يدعم نظام التقييم خمسة أنواع من المدخلات:

  • الوظائف الحالية (تقييم الوظائف المكتملة حسب المعرف)،
  • الوظائف الجديدة (إنشاء وتقييم مهام تحليل كاملة)،
  • كشف الطلبات (اختبار مجموعات URL والاستعلامات)،
  • كشف المعاملات (اختبار تحليل معاملات الطلب الفردية - سواء معاملات الترقيم أو المعاملات الديناميكية)،
  • الاستخراج المنظم (اختبار تحليل الاستجابة باستخدام مخططات محددة).

يقارن النتائج الفعلية بالنتائج المتوقعة، ويتتبع مقاييس مثل مطابقة عنوان URL المصدر، واكتشاف مفتاح الترقيم، واكتشاف المعاملات الديناميكية، ودقة عدد الكيانات. تُخزَّن جميع التقييمات وخطوات التحليل التفصيلية في Airtable.

الإعداد

root@kitploit:~
git clone https://github.com/vertexcover-io/strot.git
cd strot && uv sync --group eval

إعداد Airtable

  1. أنشئ قاعدة Airtable جديدة:

    • انتقل إلى مساحات العمل
    • انقر على زر Create في مساحة العمل المطلوبة
    • حدد Build an app on your own
    • انسخ معرف القاعدة من عنوان URL (مثل appXXXXXXXXXXXXXX)
  2. أنشئ رمز وصول شخصيًا:

    • انتقل إلى /create/tokens
    • أضف النطاقات التالية:
      • data.records:read
      • data.records:write
      • schema.bases:read
      • schema.bases:write
    • امنح حق الوصول إلى القاعدة التي أنشأتها في الخطوة 1
    • اضغط Create token وانسخ الرمز (مثل patXXXXXXXXXXXXXX)
  3. قم بتعيين متغيرات البيئة:

    root@kitploit:~

ملاحظة: يتم إنشاء الجداول المطلوبة تلقائيًا بالمخطط المناسب عند تشغيل التقييمات.

الاستخدام

root@kitploit:~
$ uv run stroteval
Usage: stroteval [OPTIONS]

Evaluate multiple job-based or task-based inputs from a file or stdin.

╭─ Parameters ──────────────────────────────────────────────────────────────────╮
│ --file  -f  Path to the JSON/JSONL file. If not provided, reads from stdin.   │
╰───────────────────────────────────────────────────────────────────────────────╯

تأكد من أن خادم API قيد التشغيل إذا كنت تقيّم مدخلات قائمة على المهام.

root@kitploit:~
echo '[
  {
    "job_id": "existing-job-uuid",
    "expected_source": "https://api.example.com/reviews",
    "expected_pagination_keys": ["cursor", "limit"],
    "expected_dynamic_keys": ["sortBy", "category"],
    "expected_entity_count": 243
  },
  {
    "site_url": "https://example.com/category/abc",
    "query": "Listed products with name and prices",
    "expected_source": "https://api.example.com/products",
    "expected_pagination_keys": ["limit", "offset"],
    "expected_dynamic_keys": ["category", "sortBy"],
    "expected_entity_count": 100
  },
  {
    "request": {
      "method": "GET",
      "url": "https://example.com/api/products",
      "type": "ajax",
      "queries": {"page": "2", "limit": "50", "sortBy": "price", "category": "electronics"}
    },
    "expected_pagination_keys": ["page", "limit"],
    "expected_dynamic_keys": ["sortBy", "category"]
  },
  {
    "response": {
      "value": "",
      "request": {
        "method": "GET",
        "url": "https://example.com/api/reviews",
        "type": "ajax"
      },
      "preprocessor": {"element_selector": ".reviews-container"}
    },
    "output_schema_file": "review_schema.json",
    "expected_entity_count": 10
  }
]' | uv run stroteval

🆘 بحاجة إلى المساعدة؟

  • 💬 مناقشات GitHub - اطرح الأسئلة
  • 🐛 الإبلاغ عن المشكلات - وجدت خطأ؟

📄 الترخيص

ترخيص MIT - استخدمه كيفما تشاء!


صُنع بكل ❤️ بواسطة Vertexcover Labs

تنزيل الأداة
export STROT_AIRTABLE_BASE_ID=appXXXXXXXXXXXXXX export STROT_AIRTABLE_TOKEN=patXXXXXXXXXXXXXX # set the following if you wish to evaluate separate tasks export STROT_ANTHROPIC_API_KEY=sk-ant-apiXXXXXX