1
0
Fork 0
forked from mCaptcha/website
mcaptcha-website/docs/user-manual/cli/index.html
2023-10-30 18:08:03 +05:30

53 lines
No EOL
20 KiB
HTML

<!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin><link rel=stylesheet href=/main.c5ebec6f69f6fedddbd813e6fbeec336e7050cd17bb6fef39275d0956f6115409a7083647b41bca8cc86d5c0a35d49b0692a89702d12c76f9b8d315ea33c0b87.css integrity="sha512-xevsb2n2/t3b2BPm++7DNucFDNF7tv7zknXQlW9hFUCacINke0G8qMyG1cCjXUmwaSqJcC0Sx2+bjTFeozwLhw==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><meta name=robots content="index, follow"><meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><title>CLI tool - mCaptcha</title><meta name=description content="Instructions to install mCaptcha CLI"><link rel=canonical href=/docs/user-manual/cli/><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="/icon.png"><meta name=twitter:title content="CLI tool"><meta name=twitter:description content="Instructions to install mCaptcha CLI"><meta name=twitter:site content="@"><meta name=twitter:creator content="@"><meta property="og:title" content="CLI tool"><meta property="og:description" content="Instructions to install mCaptcha CLI"><meta property="og:type" content="article"><meta property="og:url" content="/docs/user-manual/cli/"><meta property="og:image" content="/icon.png"><meta property="article:published_time" content="2023-10-27T08:48:45+00:00"><meta property="article:modified_time" content="2023-10-28T01:09:37+05:30"><meta property="og:site_name" content="mCaptcha"><meta property="article:publisher" content="https://www.facebook.com/"><meta property="article:author" content="https://www.facebook.com/"><meta property="og:locale" content="en_US"><script type=application/ld+json>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"\/"},{"@type":"ListItem","position":2,"name":"Docsuser Manualcli","item":"\/docsuser-manualcli\/"}]}</script><meta name=theme-color content="#fff"><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest></head><body class="docs single"><div class="header-bar fixed-top"></div><header class="navbar fixed-top navbar-expand-md navbar-light"><div class=container><input class="menu-btn order-0" type=checkbox id=menu-btn>
<label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label><a class="navbar-brand order-1 order-md-0 me-auto" href=/>mCaptcha</a>
<button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/docs/webmasters/installing-captcha/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row flex-xl-nowrap"><div class="col-lg-5 col-xl-4 docs-sidebar"><nav class=docs-links aria-label="Main navigation"><h3>Webmasters</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/webmasters/installing-captcha/>Installing mCaptcha on your website</a></li><li><a class=docs-link href=/docs/webmasters/configuring-difficulty-factor/>Configuring Difficulty Factor</a></li><li><a class=docs-link href=/docs/webmasters/terminology/>Terminology</a></li><li><a class=docs-link href=/docs/webmasters/faq/>Webmasters FAQ</a></li></ul><h3>User Manual</h3><ul class=list-unstyled><li><a class="docs-link active" href=/docs/user-manual/cli/>CLI tool</a></li><li><a class=docs-link href=/docs/user-manual/how-to-mcaptcha-without-js/>Use mCaptcha without JavaScript</a></li></ul><h3>Self-Hosting</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/self-hosting/getting-started/>Getting started</a></li><li><a class=docs-link href=/docs/self-hosting/bare-metal/>Deploy bare metal</a></li><li><a class=docs-link href=/docs/self-hosting/docker/>Using Docker</a></li><li><a class=docs-link href=/docs/self-hosting/dependencies/>Database and cache</a></li></ul><h3>API</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/api/browser/>Browser libraries</a></li><li><a class=docs-link href=/docs/api/mcaptcha-system/>mCaptcha System Library</a></li><li><a class=docs-link href=/docs/api/pow-sha256/>pow_sha256</a></li></ul><h3>Help</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/help/troubleshooting/>Troubleshooting</a></li><li><a class=docs-link href=/docs/help/faq/>FAQ</a></li></ul></nav></div><nav class="docs-toc d-none d-xl-block col-xl-3" aria-label="Secondary navigation"><div class=page-links><h3>On this page</h3><nav id=TableOfContents><ul><li><a href=#install>Install</a><ul><li><a href=#cratesio>crates.io</a></li><li><a href=#pre-compiled-binaries>Pre-compiled binaries</a></li><li><a href=#build-from-source>Build from source</a></li></ul></li><li><a href=#pass-mcaptcha-challenge>Pass mCaptcha challenge</a><ul><li><a href=#from-protected-page-url>From protected page URL</a></li><li><a href=#widget-url>Widget URL</a></li><li><a href=#developer-mode-offline>[Developer mode] Offline</a></li></ul></li></ul></nav></div></nav><main class="docs-content col-lg-11 col-xl-9 mx-xl-auto"><h1>CLI tool</h1><p class=lead></p><p>A CLI tool exists to compute mCaptcha challenges. It can be installed
from multiple sources:</p><h2 id=install>Install<a href=#install class=anchor aria-hidden=true>#</a></h2><h3 id=cratesio>crates.io<a href=#cratesio class=anchor aria-hidden=true>#</a></h3><p>The CLI tool is available on, <a href=https://crates.io>crates.io</a>, the Rust
language&rsquo;s package registry. Rust language toolchain is required to
install from crates.io, please see <a href=https://rustup.rs>rustup.rs</a> for
Instructions to install it.</p><div class=highlight><pre style=color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">1</span>cargo install mcaptcha-cli
</code></pre></div><h3 id=pre-compiled-binaries>Pre-compiled binaries<a href=#pre-compiled-binaries class=anchor aria-hidden=true>#</a></h3><p>Nightly builds and stable releases are regularly published to
<a href=https://dl.mcaptcha.org/mcaptcha/cli>dl.mcaptcha.org</a> for a variety of
CPU architectures and operating systems.</p><ol><li>Download binary, checksum and GPG signature files</li></ol><div class=highlight><pre style=color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">1</span>wget https://dl.mcaptcha.org/mcaptcha/cli/<span style=color:#ff79c6>{</span>VERSION<span style=color:#ff79c6>}</span>/<span style=color:#ff79c6>{</span>FILENAME<span style=color:#ff79c6>}</span>.tar.gz
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">2</span>wget https://dl.mcaptcha.org/mcaptcha/cli/<span style=color:#ff79c6>{</span>VERSION<span style=color:#ff79c6>}</span>/<span style=color:#ff79c6>{</span>FILENAME<span style=color:#ff79c6>}</span>.tar.gz.asc
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">3</span>wget https://dl.mcaptcha.org/mcaptcha/cli/<span style=color:#ff79c6>{</span>VERSION<span style=color:#ff79c6>}</span>/<span style=color:#ff79c6>{</span>FILENAME<span style=color:#ff79c6>}</span>.tar.gz.sha256
</code></pre></div><ol start=2><li>Verify checksum</li></ol><div class=highlight><pre style=color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">1</span>sha256sum -c <span style=color:#ff79c6>{</span>FILENAME<span style=color:#ff79c6>}</span>.tar.gz.sha256
</code></pre></div><ol start=3><li>Download mCaptcha&rsquo;s GPG release keys and verify GPG signature</li></ol><div class=highlight><pre style=color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">1</span>gpg --keyserver keyserver.ubuntu.com --recv 73DAC973A9ADBB9ADCB5CDC4595A08135BA9FF73
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">2</span>gpg --verify <span style=color:#ff79c6>{</span>FILENAME<span style=color:#ff79c6>}</span>.tar.gz.asc
</code></pre></div><ol start=4><li>Install Binary</li></ol><div class=highlight><pre style=color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">1</span>tar -xvzf <span style=color:#ff79c6>{</span>FILENAME<span style=color:#ff79c6>}</span>.tar.gz <span style=color:#ff79c6>&amp;&amp;</span> sudo cp <span style=color:#ff79c6>{</span>FILENAME<span style=color:#ff79c6>}</span>/mcaptcha-cli /usr/local/bin
</code></pre></div><h3 id=build-from-source>Build from source<a href=#build-from-source class=anchor aria-hidden=true>#</a></h3><ol><li>Install Rust tool chain
Please see <a href=https://rustup.rs>here</a> for instructions.</li><li>Download source code</li></ol><div class=highlight><pre style=color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">1</span>git clone https://git.batsense.net/mCaptcha/cli
</code></pre></div><ol start=3><li>Compile and install</li></ol><div class=highlight><pre style=color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">1</span>cargo build --release <span style=color:#ff79c6>&amp;&amp;</span> sudp cp ./target/release/mcaptcha-cli
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">2</span>/usr/local/bin
</code></pre></div><h2 id=pass-mcaptcha-challenge>Pass mCaptcha challenge<a href=#pass-mcaptcha-challenge class=anchor aria-hidden=true>#</a></h2><p>The CLI tool requires details about the challenge to work on it. The
tool can be used in three different modes compute challenge:</p><ol><li>Protected Page: Compute mCaptcha challenge for the CAPTCHA at a
protected page</li><li>Widget URL: Compute PoW for captcha at widget URL</li><li>(Developer mode) Offline: Computes PoW over given CAPTCHA parameters</li></ol><h3 id=from-protected-page-url>From protected page URL<a href=#from-protected-page-url class=anchor aria-hidden=true>#</a></h3><p>The most convenient mode: copy the URL of the webpage which has the
mCaptcha widget (example: showcase.mcaptcha.org) and run the CLI tool
with it to get an authorization code:
Compute challenge using the URL</p><div class=highlight><pre style=color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">1</span>03:39 atm@lab cli ±|feat-parse-webpage ✗|→ mcaptcha-cli protected-page https://showcase.mcaptcha.org/
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">2</span>Authorization token: eRAZJiMrW58uDYA1s64Tmwq1u30HutuF
</code></pre></div><h3 id=widget-url>Widget URL<a href=#widget-url class=anchor aria-hidden=true>#</a></h3><p>If you have the widget URL (will be in format https://mcaptcha.example.org/widget?sitekey=randomstring), it can be used to solve challenge as well:</p><div class=highlight><pre style=color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">1</span>Compute PoW by fetching parameters from CAPTCHA URL
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">2</span>
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">3</span>Usage: mcaptcha-cli online --url &lt;URL&gt;
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">4</span>
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">5</span>Options:
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">6</span> -u, --url &lt;URL&gt; URL of the CAPTCHA. Example: https://example.org/widget?sitekey<span style=color:#ff79c6>=</span>foo
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">7</span> -h, --help Print <span style=color:#8be9fd;font-style:italic>help</span>
</code></pre></div><p>Example usage:</p><div class=highlight><pre style=color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">1</span>13:32 atm@lab cli ±|online ✗|→ mcaptcha-cli online -u https://demo.mcaptcha.org/widget?sitekey<span style=color:#ff79c6>=</span>pHy0AktWyOKuxZDzFfoaewncWecCHo23
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">2</span>Authorization token: 3xleN26OctBuVu3X4t6CYyUjErhaxQvz
</code></pre></div><h3 id=developer-mode-offline>[Developer mode] Offline<a href=#developer-mode-offline class=anchor aria-hidden=true>#</a></h3><p>Useful while debugging mCaptcha configurations, works on raw challenge
parameters.</p><p>Help menu:</p><div class=highlight><pre style=color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">1</span>Compute PoW with offline parameters
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">2</span>
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">3</span>Usage: mcaptcha-cli offline --salt &lt;SALT&gt; --phrase &lt;PHRASE&gt; --difficulty-factor &lt;DIFFICULTY_FACTOR&gt;
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">4</span>
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">5</span>Options:
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">6</span> -s, --salt &lt;SALT&gt; Salt with which PoW should be computed
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">7</span> -p, --phrase &lt;PHRASE&gt; Phrase over which PoW should be computed
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">8</span> -d, --difficulty-factor &lt;DIFFICULTY_FACTOR&gt; Difficulty Factor
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">9</span> -h, --help Print <span style=color:#8be9fd;font-style:italic>help</span>
</code></pre></div><p>Example usage:</p><div class=highlight><pre style=color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">1</span>13:28 atm@lab cli ±|online|→ mcaptcha-cli offline -s <span style=color:#ff79c6>$(</span>rand 32<span style=color:#ff79c6>)</span> -p <span style=color:#ff79c6>$(</span>rand 32<span style=color:#ff79c6>)</span> -d <span style=color:#bd93f9>50000</span>
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">2</span>difficulty: <span style=color:#bd93f9>50000</span>
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">3</span>nonce: <span style=color:#bd93f9>90507</span>
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">4</span>original phrase: f351f333d44b2c6b5bf7f033b065bbb8fb5e9dd153bd402e43ed04425f5a3859
<span style="margin-right:.4em;padding:0 .4em;color:#7f7f7f">5</span>result: <span style=color:#bd93f9>340276562956196291522979356090220150471</span>
</code></pre></div><p>Where rand is <a href=https://github.com/realaravinth/dotfiles/blob/6fc6c87cc912e17488a35c0d3327ecf393221270/scripts/rand#L20>this</a> script.</p><p class=edit-page><a href=https://git.batsense.net/mCaptcha/website/blob/master/content/docs/user-manual/cli.md><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828.0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>Edit this page on git.batsense.net</a></p><div class="docs-navigation d-flex justify-content-between"><a href=/docs/help/faq/><div class="card my-1"><div class="card-body py-2">&larr; FAQ</div></div></a><a class=ms-auto href=/docs/user-manual/how-to-mcaptcha-without-js/><div class="card my-1"><div class="card-body py-2">Use mCaptcha without JavaScript &rarr;</div></div></a></div></main></div></div></div><footer class="footer text-muted"><div class=container><div class=row><div class="col-lg-8 order-last order-lg-first"><ul class=list-inline><li class=list-inline-item>Powered by <a href=https://gohugo.io/>Hugo</a>, and <a href=https://getdoks.org/>Doks</a></li></ul></div><div class="col-lg-8 order-first order-lg-last text-lg-end"><ul class=list-inline><li class=list-inline-item><a href=/about/>About</a></li><li class=list-inline-item><a href=/donate>Donate</a></li><li class=list-inline-item><a href=/privacy-policy/>Privacy</a></li><li class=list-inline-item><a href=/security>Security</a></li><li class=list-inline-item><a href=https://stats.uptimerobot.com/GK7VLFJnBl>Status</a></li><li class=list-inline-item><a href=/thanks>Thanks</a></li></ul></div></div></div></footer><script src=/main.min.993b2b4c58b07e7a4bb3423cf18ccd78a85d0063680c0fc9bf6d9cc02be98e08793034d984dd8f7c60ad5b70f3186cc8bc280b1077b7e37c2d64f36f118099bb.js integrity="sha512-mTsrTFiwfnpLs0I88YzNeKhdAGNoDA/Jv22cwCvpjgh5MDTZhN2PfGCtW3DzGGzIvCgLEHe343wtZPNvEYCZuw==" crossorigin=anonymous defer></script><script src=/index.min.80cc62918990f0b9afd15b81ea43df0bc0090a2419660eb4a32b4d122db3bdd007faabd824064bd5d275cbeb3d1e2d2bd650220c94c2ef3aeffb4dc2ef6551f5.js integrity="sha512-gMxikYmQ8Lmv0VuB6kPfC8AJCiQZZg60oytNEi2zvdAH+qvYJAZL1dJ1y+s9Hi0r1lAiDJTC7zrv+03C72VR9Q==" crossorigin=anonymous defer></script></body></html>