Lompat ke konten
dokumentasi.id
Commit 89c41b0
v1
Star3,2 rb

Kamu membaca versi lama. Halaman ini hanya bisa dibaca.

4.1

XSS dan Local File Inclusion

Repository ini menyimpan lima one-liner untuk dua kelas kerentanan yang paling sering dicari saat recon: Local File Inclusion dan XSS. Semuanya mengikuti pola yang sama — kumpulkan URL, saring yang punya parameter, suntikkan muatan, lalu cari penanda di badan response — tetapi alat dan penanda akhirnya berbeda. Placeholder HOST, HOSTS.txt, URLS.txt, FILE.txt, dan OUT.txt yang muncul di bawah mengikuti konvensi pada Placeholder dan Konvensi Penulisan One-liner.

Siklus satu request LFI

One-liner LFI dibangun dari empat tahap pendek: gau mengumpulkan URL historis untuk HOST, gf lfi menyaring URL yang punya parameter berpotensi rentan, qsreplace "/etc/passwd" mengganti seluruh nilai parameter dengan path target, lalu xargs -I% -P 25 menjalankan curl per URL dan mencetak penanda bila badan response mengandung root:x README.md:19-24.

sequenceDiagram
    participant GAU as gau HOST
    participant GF as gf lfi
    participant QS as qsreplace
    participant XA as xargs -I% -P 25
    participant CUR as curl -s
    participant GR as grep -q root:x
    GAU->>GF: URL historis tanpa saringan
    GF->>QS: URL dengan parameter
    QS->>XA: URL dengan nilai /etc/passwd
    XA->>CUR: 25 proses curl paralel
    CUR->>GR: badan response + stderr
    rect rgb(45,125,70)
    GR-->>XA: root:x ditemukan
    XA-->>QS: echo "VULN! %"
    end
    rect rgb(220,38,38)
    GR-->>XA: root:x tidak ditemukan
    end
%% fig: Siklus request LFI dari gau sampai penanda VULN!
%% desc: gau mengumpulkan URL, gf lfi menyaring parameter, qsreplace menyuntikkan /etc/passwd, xargs menjalankan curl paralel, dan grep menentukan apakah penanda VULN! dicetak.
Fig. 1: Siklus request LFI dari gau sampai penanda VULN!gau mengumpulkan URL, gf lfi menyaring parameter, qsreplace menyuntikkan /etc/passwd, xargs menjalankan curl paralel, dan grep menentukan apakah penanda VULN! dicetak.

Dua detail menentukan hasil pipeline ini. Pertama, -P 25 pada xargs berarti dua puluh lima proses curl berjalan bersamaan, sehingga antrean URL besar selesai dalam hitungan detik. Kedua, 2>&1 menggabungkan stderr ke stdout sebelum grep -q "root:x", sehingga pesan galat curl tetap melewati penyaring yang sama. Penanda VULN! % hanya tercetak ketika grep menemukan root:x, potongan baris pertama /etc/passwd pada sistem Linux. Bila gf lfi tidak menemukan parameter yang cocok, pipeline selesai tanpa keluaran apa pun README.md:19-24.

Tiga jalur pipeline XSS

Empat varian XSS memakai dua mesin berbeda: dalfox untuk menguji muatan dan httpx untuk mencocokkan pola pada berkas JavaScript. Varian gospider menyapu URLS.txt dengan -c 10 -d 5, membuang aset statis lewat --blacklist, mengambil URL berstatus code-200, menyaring yang punya =, menimpa semua nilai parameter dengan qsreplace -a, lalu meneruskan hasilnya ke dalfox pipe dan menyimpannya di OUT.txt README.md:38-43.

Varian waybackurls mengambil rute lebih pendek: gf xss memilih URL berpola rentan, sed 's/=.*/=/' memotong nilai parameter supaya daftar tinggal nama parameter, sort -u menghapus duplikat, hasilnya disimpan di FILE.txt, lalu dalfox -b YOURS.xss.ht pipe menguji setiap parameter dengan blind XSS ke domain callback milikmu README.md:45-49.

Varian ketiga sama sekali tidak memakai dalfox. getJS mengambil daftar berkas JavaScript dari HOSTS.txt, lalu httpx --match-regex "addEventListener\((?:'|\")message(?:'|\")" menyaring hanya host yang memuat listener message — pola yang lazim menjadi sumber postMessage tanpa validasi origin README.md:51-55.

graph LR
  URLS["URLS.txt"] --> GOS["gospider -S -c 10 -d 5"]
  GOS --> C200["grep code-200"]
  C200 --> AWK["awk kolom ke-5"]
  AWK --> EQ["grep = "]
  EQ --> QSA["qsreplace -a"]
  QSA --> DAL1["dalfox pipe"]
  HOST["HOST"] --> WB["waybackurls"]
  WB --> GFX["gf xss"]
  GFX --> SED["sed s/=.*=//"]
  SED --> SORT["sort -u"]
  SORT --> FILE["FILE.txt"]
  FILE --> DAL2["dalfox -b YOURS.xss.ht pipe"]
  DAL1 --> OUT["OUT.txt"]
  DAL2 --> OUT
  HOSTS["HOSTS.txt"] --> GETJS["getJS"]
  GETJS --> HX["httpx --match-regex"]
  style URLS fill:#336791,color:#fff
  style HOST fill:#336791,color:#fff
  style HOSTS fill:#336791,color:#fff
  style FILE fill:#2d7d46,color:#fff
  style OUT fill:#2d7d46,color:#fff
  style GFX fill:#8b5cf6,color:#fff
  style C200 fill:#8b5cf6,color:#fff
  style HX fill:#8b5cf6,color:#fff
  style SED fill:#f59e0b,color:#000
  style QSA fill:#f59e0b,color:#000
  style DAL1 fill:#f59e0b,color:#000
  style DAL2 fill:#f59e0b,color:#000
%% fig: Tiga jalur pipeline XSS menuju dalfox dan httpx
%% desc: Daftar URL dari gospider dan waybackurls bertemu di dalfox, sementara getJS mengalirkan berkas JavaScript ke httpx untuk pencocokan regex listener message.
Fig. 2: Tiga jalur pipeline XSS menuju dalfox dan httpxDaftar URL dari gospider dan waybackurls bertemu di dalfox, sementara getJS mengalirkan berkas JavaScript ke httpx untuk pencocokan regex listener message.

Biru menandai daftar masukan, ungu menandai penyaring turunan, kuning menandai alat yang menyuntikkan muatan atau mengubah URL, dan hijau menandai berkas hasil. Semua jalur XSS di atas berhenti pada berkas, bukan pada penanda VULN! di layar; pembacaan hasilnya dilakukan setelah proses selesai.

One-linerSumber inputPenyaringMuatan atau pencocokanKeluaran
LFIgau HOSTgf lfiqsreplace "/etc/passwd"penanda VULN! % di stdout
XSS gospiderURLS.txtgrep code-200, grep =qsreplace -a, dalfox pipeOUT.txt
XSS waybackurlswaybackurls HOSTgf xss, sed, sort -udalfox -b YOURS.xss.ht pipeOUT.txt
XSS getJSHOSTS.txtgetJShttpx --match-regex pada addEventListenerdaftar host di stdout
XSS tanpa gfwaybackurls HOSTgrep ="><script>alert(1)</script>teks is vulnerable

Varian tanpa gf

Varian terakhir melepas ketergantungan pada gf sepenuhnya. waybackurls HOST mengumpulkan URL historis, grep '=' menyisakan URL berparameter, qsreplace '\"><script>alert(1)</script>' menanam muatan pada setiap nilai parameter, lalu satu while read menjalankan curl -sk --path-as-is per URL dan mencari string muatan yang sama di badan response. Bila muatan muncul kembali tanpa encoding, skrip mencetak $host is vulnerable README.md:379-384.

Perhatikan bahwa penandanya bukan VULN!. Varian ini menulis kalimat is vulnerable, sehingga hasilnya tidak bisa digabung langsung dengan keluaran varian dalfox yang hanya menyimpan URL ke OUT.txt. Opsi --path-as-is juga penting: ia mencegah curl menormalkan ../ atau // di path, sehingga URL yang sudah mengandung traversal tidak berubah sebelum dikirim.

⚠️ Tiga hal yang perlu dijaga sebelum menjalankan blok di atas. grep -q "root:x" mencocokkan string pada seluruh badan response, termasuk halaman decoy dan pesan galat, jadi temuan LFI wajib diverifikasi manual. dalfox -b YOURS.xss.ht mengirim blind XSS ke domain callback milikmu dan butuh domain tersebut sudah terpasang. xargs -P 25 pada pipeline LFI dan gospider -c 10 -d 5 pada pipeline XSS menghasilkan beban request besar ke host target; turunkan nilainya bila host tidak sanggup menerima thread sebanyak itu.

Pola gau → gf → qsreplace → xargs juga dipakai untuk Open Redirect dengan penanda VULN! yang sama; rinciannya ada di Open Redirect dan CORS Misconfiguration. Daftar URL hasil gau dan waybackurls sendiri berasal dari tahap recon pada Pemetaan URL, Berkas JavaScript, dan Endpoint, sedangkan posisi dalfox dan httpx dalam rangkaian tool yang lebih panjang dibahas pada Alur Pipeline dan Toolchain.