2
Placeholder dan Konvensi Penulisan One-liner
Repository ini tidak menyertakan skrip pembungkus atau parser: placeholder hanyalah teks literal yang pembaca ganti sendiri sebelum perintah dijalankan. Bagian Definitions di README menetapkan bentuk-bentuk placeholder itu beserta artinya README.md:6-151, dengan kalimat pembuka yang menyatakan bahwa bagian tersebut mendefinisikan istilah dan placeholder yang dipakai di seluruh one-liner README.md:82.
Enam placeholder dan artinya
README memberi nomor pada setiap butir definisi, dan nomor itu memperlihatkan pasangan konsepnya: 1.1 dan 1.2 untuk keluarga HOST, 2.1 dan 2.2 untuk keluarga URL README.md:10-133.
| Placeholder | Arti menurut README | Contoh penggantian | Rujukan |
|---|---|---|---|
HOST | satu hostname, (sub)domain, atau IP address | internal.host, domain.tld, sub.domain.tld, 127.0.0.1 | README.md:104 |
HOSTS.txt | berkas yang memuat lebih dari satu nilai kriteria 1.1 | daftar subdomain satu program | README.md:115 |
URL | URL utuh yang dimulai dengan protokol HTTP/HTTPS | http://domain.tld/path/page.html | README.md:126 |
URLS.txt | berkas yang memuat lebih dari satu nilai kriteria 2.1 | daftar URL hasil crawl | README.md:137 |
FILE.txt / FILE{N}.txt | berkas yang dibutuhkan perintah sesuai konteks dan kebutuhannya | FILE1.txt, FILE2.txt | README.md:148 |
OUT.txt / OUT{N}.txt | berkas tujuan penyimpanan hasil perintah | OUT.txt | README.md:159 |
Pemetaan placeholder ke nilai nyata
graph LR
HOST["HOST"] --> V1["domain.tld"]
HOST --> V2["sub.domain.tld"]
HOST --> V3["127.0.0.1"]
URL["URL"] --> V4["http://domain.tld/path/page.html"]
HOSTS["HOSTS.txt"] --> HOST
URLS["URLS.txt"] --> URL
FILE["FILE.txt / FILE{N}.txt"] --> OUT["OUT.txt / OUT{N}.txt"]
style HOST fill:#f59e0b,color:#000
style URL fill:#f59e0b,color:#000
style HOSTS fill:#8b5cf6,color:#fff
style URLS fill:#8b5cf6,color:#fff
style FILE fill:#336791,color:#fff
style OUT fill:#336791,color:#fff
style V1 fill:#2d7d46,color:#fff
style V2 fill:#2d7d46,color:#fff
style V3 fill:#2d7d46,color:#fff
style V4 fill:#2d7d46,color:#fff
%% fig: Placeholder ke nilai nyata
%% desc: HOST dan URL diisi satu nilai konkret, sedangkan HOSTS.txt dan URLS.txt mengumpulkan banyak nilai; FILE.txt menyimpan hasil antara dan OUT.txt hasil akhir.Satu nilai versus satu berkas
HOST diisi satu target, jadi ia muncul langsung sebagai argumen flag: subfinder -d HOST -all -silent README.md:6110. Sebaliknya HOSTS.txt dipakai untuk banyak target, dan bentuk pemakaiannya berbeda-beda. Ada yang membaca berkas lewat pipa, cat HOSTS.txt | getJS | httpx README.md:5411, ada yang menyerahkannya sebagai argumen program, python3 hosthunter.py HOSTS.txt > OUT.txt README.md:39012, dan ada yang memakai xargs dengan replace-str %, cat HOSTS.txt | xargs -I % python3 paramspider.py -l high -o ./OUT/% -d % README.md:27413. Ketiga bentuk itu menuntut penggantian yang sama, yaitu mengisi berkasnya, tetapi susunan perintahnya tidak dapat dipertukarkan.
Pola yang sama berlaku untuk keluarga URL. URLS.txt muncul sebagai nilai flag, gospider -S URLS.txt -c 10 -d 5 README.md:4214, dan juga sebagai sumber while read, cat URLS.txt | while read h do README.md:8215.
FILE.txt sebagai simpanan sementara
FILE.txt bukan berkas masukan yang harus disiapkan pembaca. Pada many one-liner ia ditulis oleh perintah pertama lalu dibaca ulang oleh perintah berikutnya dalam rantai yang sama: tee FILE.txt && cat FILE.txt | dalfox -b YOURS.xss.ht pipe > OUT.txt README.md:4816. Ketika satu perintah butuh dua tempat penampungan sekaligus, README memakai bentuk berindeks, tee -a FILE1.txt dan tee -a FILE2.txt README.md:24917, sesuai definisi FILE{N}.txt README.md:148.
⚠️ Placeholder
FILEjuga muncul tanpa ekstensi:subfinder -d HOST >> FILE; assetfinder --subs-only HOST >> FILEREADME.md:26718. Definisinya menyebutFILE.txtatauFILE{N}.txtREADME.md:148, jadi bentuk tanpa ekstensi itu menyimpang dari konvensi meskipun maksudnya sama, yaitu berkas penampung sementara.
OUT.txt dan varian direktori
OUT.txt adalah ujung rantai. Contoh paling ringkas ada pada python3 hosthunter.py HOSTS.txt > OUT.txt README.md:39012 dan pada > OUT.txt di akhir one-liner XSS README.md:4816.
⚠️
OUTjuga dipakai sebagai nama direktori, bukan nama berkas:-o ./OUT/%README.md:27413. Di situ%adalah replace-str darixargs -I %, sehingga perintah menulis ke direktoriOUTyang harus sudah ada sebelum perintah dijalankan.
Placeholder yang tidak masuk Definitions
Beberapa penanda dipakai di one-liner tanpa butir definisi, sehingga pembaca harus menyimpulkannya dari konteks. YOURS.xss.ht adalah host blind XSS pribadi yang diisi pada flag -b dalfox README.md:4816. Keyword FUZZ milik ffuf digabung dengan HOST menjadi https://FUZZ.HOST README.md:22119, dan dipakai terpisah pada -H "Host: FUZZ" README.md:36220. Satu one-liner bahkan tidak memakai placeholder sama sekali, melainkan positional parameter skrip, curl -s $1 ... grep $2 | grep -v $3 README.md:34121.
Placeholder yang dibungkus variabel shell
Sebagian penulis membungkus nilai di awal perintah agar penggantian cukup sekali. Bentuk yang muncul adalah export LHOST="URL" README.md:3022, export host="HOST" README.md:11823, dan site="URL" README.md:355. Setelah baris itu perintah memakai $LHOST, $host, atau $site, jadi teks yang diganti tetap satu nilai tunggal. Yang perlu dibedakan adalah variabel hasil while read, seperti LINE README.md:75 dan h README.md:82: keduanya bukan placeholder, karena nilainya berasal dari stdin.
Aturan penggantian
- Ganti semua kemunculan placeholder dalam satu perintah; nama berkas placeholder dipakai apa adanya, yaitu
HOSTS.txtdanURLS.txtREADME.md:11-1326. - Placeholder ditulis huruf besar tanpa tanda
$; awalan$hanya dipakai untuk variabel shell yang memang diekspor lebih dulu README.md:3022. - Indeks
{N}padaFILE{N}.txtdanOUT{N}.txtdiganti angka, misalnyaFILE1.txtdanFILE2.txtREADME.md:24917, sesuai rentang definisi README.md:14-1527. - Bila targetnya banyak, pindahkan nilai tunggal ke
HOSTS.txtatauURLS.txt, lalu sesuaikan bentuk masukan perintahnya, apakah dibaca lewatcatatau diserahkan sebagai argumen README.md:5411 README.md:39012.
graph LR
IN["HOSTS.txt atau URLS.txt"] --> PIPE["cat berkas | perintah"]
PIPE --> MID["FILE.txt"]
MID --> SECOND["perintah kedua"]
PIPE --> RESULT["OUT.txt"]
SECOND --> RESULT
style IN fill:#8b5cf6,color:#fff
style PIPE fill:#f59e0b,color:#000
style MID fill:#336791,color:#fff
style SECOND fill:#f59e0b,color:#000
style RESULT fill:#2d7d46,color:#fff
%% fig: Peran berkas dalam satu one-liner
%% desc: Berkas masukan dibaca lewat pipe, hasil antara ditulis ke FILE.txt untuk dipakai perintah berikutnya, dan hasil akhir disimpan ke OUT.txt.Kaitan dengan halaman lain
Konvensi di halaman ini dipakai ulang di seluruh dokumentasi. Penerapannya pada pengumpulan aset dibahas di Teknik Recon dan Pengumpulan Aset, sedangkan susunan rantai perintah yang menghubungkan FILE.txt dan OUT.txt dibahas di Alur Pipeline dan Toolchain.