
أداة سريعة لفحص ثغرة CRLF مكتوبة بلغة Go.
أداة سريعة لفحص ثغرة CRLF مكتوبة بلغة Go
التثبيت سهل. يمكنك تنزيل ملف ثنائي مُعد مسبقًا من صفحة الإصدارات، فك الضغط وتشغيله! أو باستخدام الأمر:
▶ curl -sSfL https://git.io/crlfuzz | sh -s -- -b /usr/local/bin
إذا كان لديك مترجم go1.13+ مثبتًا ومُهيأً:
▶ GO111MODULE=on go install github.com/dwisiswant0/crlfuzz/cmd/crlfuzz@latest
لتحديث الأداة، يمكنك استخدام الخيار -u مع أمر go get.
▶ git clone https://github.com/dwisiswant0/crlfuzz
▶ cd crlfuzz/cmd/crlfuzz
▶ go build .
▶ mv crlfuzz /usr/local/bin
ببساطة، يمكن تشغيل CRLFuzz باستخدام:
▶ crlfuzz -u "http://target"
▶ crlfuzz -h
سيظهر هذا المساعدة للأداة. إليك جميع المفاتيح التي تدعمها.
يمكنك تحديد الهدف بثلاث طرق:
▶ crlfuzz -u "http://target"
▶ crlfuzz -l /path/to/urls.txt
في حال رغبت في الربط مع أدوات أخرى.
▶ subfinder -d target -silent | httpx -silent | crlfuzz
افتراضيًا، يقوم CRLFuzz بإرسال الطلبات باستخدام طريقة GET.
إذا أردت تغييرها، يمكنك استخدام الخيار -X.
▶ crlfuzz -u "http://target" -X "GET"
يمكنك أيضًا حفظ نتائج الفحص في ملف باستخدام الخيار -o.
▶ crlfuzz -l /path/to/urls.txt -o /path/to/results.txt
إذا أردت إرسال طلب بيانات باستخدام POST أو DELETE أو PATCH أو طرق أخرى، فقط استخدم الخيار -d.
▶ crlfuzz -u "http://target" -X "POST" -d "data=body"
قد ترغب في استخدام رؤوس مخصصة لإضافة ملفات تعريف الارتباط أو أجزاء رأس أخرى.
▶ crlfuzz -u "http://target" -H "Cookie: ..." -H "User-Agent: ..."
عند استخدام بروكسي، يمكن تحديد سلسلة البروكسي مع بادئة protocol:// لتحديد بروتوكولات بديلة للبروكسي.
▶ crlfuzz -u "http://target" -x http://127.0.0.1:8080
التوازي هو عدد عمليات الفحص المتزامنة. القيمة الافتراضية التي يوفرها CRLFuzz هي 25، يمكنك تغييرها باستخدام الخيار -c.
▶ crlfuzz -l /path/to/urls.txt -c 50
إذا قمت بتفعيل الوضع الصامت باستخدام الخيار -s، فسترى فقط الأهداف الثغرة.
▶ crlfuzz -l /path/to/urls.txt -s | tee vuln-urls.txt
على عكس الوضع الصامت، سيعرض تفاصيل الأخطاء إذا حدث خطأ باستخدام الخيار -v.
▶ crlfuzz -l /path/to/urls.txt -v
لعرض الإصدار الحالي لـ CRLFuzz باستخدام الخيار -V.
▶ crlfuzz -V
يمكنك استخدام CRLFuzz كمكتبة.
package main
import (
"fmt"
"github.com/dwisiswant0/crlfuzz/pkg/crlfuzz"
)
func main() {
target := "http://target"
method := "GET"
// Generates a potentially CRLF vulnerable URLs
for _, url := range crlfuzz.GenerateURL(target) {
// Scan against target
vuln, err := crlfuzz.Scan(url, method, "", []string{}, "")
if err != nil {
panic(err)
}
if vuln {
fmt.Printf("VULN! %s\n", url)
}
}
}
إذا كنت لا تزال مرتبكًا أو وجدت خطأً، فيرجى فتح مشكلة. جميع تقارير الأخطاء محل تقدير، بعض الميزات لم تُختبر بعد بسبب ضيق الوقت.
CRLFuzz صدر تحت رخصة MIT. راجع ملف LICENSE لمزيد من التفاصيل.
الإصدار الحالي هو 1.4.0 ولا يزال قيد التطوير.
| الخيار | الوصف |
|---|
| -u, --url | تحديد عنوان URL واحد للفحص |
| -l, --list | فحص عناوين URL داخل ملف |
| -X, --method | تحديد طريقة الطلب المستخدمة (الافتراضي: GET) |
| -o, --output | ملف لحفظ النتائج |
| -d, --data | تحديد بيانات الطلب |
| -H, --header | تمرير رأس مخصص للهدف |
| -x, --proxy | استخدام بروكسي محدد للفحص |
| -c, --concurrent | ضبط مستوى التوازي (الافتراضي: 25) |
| -s, --silent | الوضع الصامت |
| -v, --verbose | الوضع المفصّل |
| -V, --version | عرض إصدار CRLFuzz الحالي |
| -h, --help | عرض المساعدة |