
xpath هو ماسح سريع متعدد التقنيات لحقن XPath مكتوب بلغة Nim. يركز على الكشف العملي، ومقارنة الاستجابات، والاستخراج المرئي، والاستخراج الأعمى.
ماسح متقدم لحقن XPath لاختبارات الأمان المصرح بها.
برمجة Chokri Hammedi (blue0x1) · مرخّص بموجب MIT
xpath هو ماسح حقن XPath سريع ومتعدد التقنيات مكتوب بلغة Nim. يركز على الكشف العملي، ومقارنة الاستجابات، والاستخراج المرئي، والاستخراج الأعمى، وتغطية الحمولات للتطبيقات الحقيقية المدعومة بـ XML.
لا توجد لديه اعتماديات تشغيل خارجية تتجاوز المكتبة القياسية للغة Nim.
| المجال | الدعم |
|---|---|
| الكشف | قائم على الأخطاء، أعمى قائم على القيم المنطقية، أعمى قائم على الوقت، تجاوز المصادقة، union/اختيار العقد |
| الاستخراج | تحليل HTML المرئي، استخراج union للمحددات، استخراج بيانات XPath الأعمى |
| الحمولات | كلاسيكية، مسندية، قائمة على الدوال، كسر المسار، مشفّرة، كيانات، صيغ متغيرة الأحرف |
| الاكتشاف | اكتشاف معاملات URL وزحف نماذج HTML |
| التهرب | مؤشرات WAF/IDS، حمولات تجاوز مشفّرة عبر URL وقائمة على الكيانات |
| المخرجات | تقرير طرفية قابل للقراءة وتصدير تقرير JSON |
| النقل | ملفات تعريف الارتباط، الترويسات، الوكيل، إعادة المحاولة، المهلة، User-Agent، ضوابط إعادة التوجيه |
nimble install xpath
يقوم هذا بتثبيت أحدث حزمة من قائمة حزم Nim الرسمية.
git clone https://github.com/blue0x1/xpath.git
cd xpath
make linux
make test
يُكتب الملف الثنائي الخاص بـ Linux إلى:
dist/xpath-linux-amd64
sudo make install
يتم افتراضيًا التثبيت إلى:
/usr/local/bin/xpath
لتغيير بادئة التثبيت:
sudo make install PREFIX=/usr
make deb
sudo dpkg -i dist/xpath_1.0.0_amd64.deb
make windows
يُكتب الملف الثنائي الخاص بـ Windows إلى:
dist/xpath-windows-amd64.exe
على Linux، يتطلب البناء الخاص بـ Windows تثبيت MinGW:
sudo apt install mingw-w64
فحص معامل GET:
xpath -u "http://target.local/search?q=test" -p q
فحص جميع معاملات الاستعلام المكتشفة:
xpath -u "http://target.local/search?q=test&id=1"
فحص نص POST:
xpath -u "http://target.local/login" -m POST -d "user=*&pass=test"
تشغيل جميع التقنيات واستخراج البيانات المرئية أو العمياء عند الإمكان:
xpath -u "http://target.local/search?q=test" -p q -t A -x
استخدام وكيل:
xpath -u "http://target.local/search?q=test" -p q --proxy http://127.0.0.1:8080
حفظ المخرجات بصيغة JSON:
xpath -u "http://target.local/search?q=test" -p q -t A -o report.json -f json
USAGE
xpath [OPTIONS] -u <URL>
TARGET
-u, --url <URL> Target URL
-m, --method <METHOD> HTTP method: GET or POST
-d, --data <DATA> POST body, use * to mark injection point
-p, --param <PARAM> Parameter(s) to test, comma-separated
-c, --cookie <COOKIE> Cookie string
-H, --header <HEADER> Extra header, repeatable
DETECTION
-t, --technique <FLAGS> E, B, T, U, P, or A
-l, --level <1-5> Payload thoroughness level
-x, --extract Extract data after confirming injection
--xpath <EXPR> XPath expression for extraction
OUTPUT
-o, --output <FILE> Save report
-f, --format <FMT> text or json
-v, --verbose Verbose output
يرسل حمولات XPath غير صالحة ويكتشف تواقيع الأخطاء الخاصة بأطر العمل من أكواد أخطاء Java و.NET وPHP وlibxml2 وSaxon وXalan وW3C XQuery.
xpath -u "http://target.local/item?id=1" -p id -t E
يقارن استجابات الحمولات المزدوجة TRUE/FALSE باستخدام تشابه جسم الاستجابة وفروقات الحجم. يكون هذا مفيدًا عندما لا تتم طباعة النتائج مباشرة ولكن سلوك التطبيق يتغير.
xpath -u "http://target.local/search?q=test" -p q -t B
يستخدم تعبيرات XPath مكلفة حسابيًا لإنشاء فروقات زمنية قابلة للقياس في الاستجابات عندما تكون الإشارات القائمة على المحتوى غير متاحة.
xpath -u "http://target.local/search?q=test" -p q -t T --time-sec 3
يختبر ما إذا كان يمكن دمج معامل شبيه بالمحدد مع مسارات XPath مطلقة أو نسبية، مثل //text() و../../..//text() و//@* والمسارات المفهرسة.
xpath -u "http://target.local/search?q=INVALID&field=name" -p field -t U -x
يفحص الحمولات التي تكسر المسندات، والحمولات القائمة على الموضع، وحمولات النصوص الفرعية للأدوار، والدوال المنطقية، وأشكال التجاوز المراعية للسياق.
xpath -u "http://target.local/login" -m POST -d "username=*&password=test" -t P
عند تفعيل -x، يختار xpath أفضل وضع استخراج متاح:
| الوضع | الوصف |
|---|---|
| استجابة مصادقة مرئية |
مثال:
xpath -u "http://target.local/query?q=test" -p q -t A -x
تعبير مخصص:
xpath -u "http://target.local/query?q=test" -p q -x --xpath "name(/*[1])"
src/
xpath.nim
core/
analyzer.nim
crawler.nim
extractor.nim
http.nim
payloads.nim
reporter.nim
scanner.nim
utils/
cli.nim
config.nim
logger.nim
MIT License. راجع LICENSE.
هذه الأداة مخصصة لاختبارات الأمان المصرح بها فقط. استخدمها فقط على الأنظمة التي تملكها أو لديك إذن كتابي صريح لاختبارها.
| يحلل الصفوف والروابط وعمليات إعادة التوجيه والقيم المعروضة من استجابات التجاوز الناجحة |
| مسارات union مرئية | يستخرج النصوص المعروضة حديثًا من حمولات union/اختيار العقد |
| الاستخراج الأعمى | يستخدم string-length() وsubstring() وname() وcount() لاستنتاج بيانات XML |
| المستوى | التركيز |
|---|
1 | حمولات كلاسيكية سريعة |
2 | كسور مسندات شائعة في العالم الحقيقي |
3 | الفحص المتوازن الافتراضي |
4 | حمولات مشفّرة وقائمة على الكيانات وكسر المسار |
5 | أقصى تغطية وصيغ نادرة |
| الهدف | المخرجات |
|---|
make linux | dist/xpath-linux-amd64 |
make windows | dist/xpath-windows-amd64.exe |
make test | تشغيل مجموعة اختبارات Nim |
make install | التثبيت إلى $(PREFIX)/bin/xpath |
make deb | dist/xpath_1.0.0_amd64.deb |
make clean | إزالة build/ وdist/ |