Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
github.com/matthew17-21/captcha-tools
Python module to help solve captchas with Capmonster, 2Captcha and Anticaptcha API's!
To see documentation for the Go implementation, click here
pip3 install captchatools
pip3 install -U captchatools
import captchatools
solver = captchatools.new_harvester(solving_site="capmonster", api_key="YOUR API KEY", sitekey="6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-", captcha_url="https://www.google.com/recaptcha/api2/demo")
captcha_answer = solver.get_token()
or
from captchatools import new_harvester
solver = new_harvester(solving_site=1, api_key="YOUR API KEY", sitekey="6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-", captcha_url="https://www.google.com/recaptcha/api2/demo")
captcha_answer = solver.get_token()
Parameter | Required | Type | Default | Description |
---|---|---|---|---|
api_key | true | String | - | The API Key for the captcha solving site |
solving_site | true | String (name of site) or int (site ID) | "capmonster" | The captcha solving site that will be used. Refer to the site IDs |
sitekey | true | String | - | Sitekey from the site where captcha is loaded |
captcha_url | true | String | - | URL where the captcha is located |
captcha_type | false | String | "v2" | Type of captcha you are solving. Either captcha image , v2 , v3 ,hcaptcha (hcap works aswell) or hcaptchaturbo |
invisible_captcha | false | bool | false | If the captcha is invisible or not. This param is only required when solving invisible captchas |
min_score | false | double | 0.7 | Minimum score for v3 captchas. This param is only required when solving V3 and it needs a higher / lower score |
action | false | String | "verify" | Action that is associated with the V3 captcha. This param is only required when solving V3 captchas |
soft_id | false | int | - | 2captcha Developer ID. Developers get 10% of spendings of their software users. |
Field | Required | Type | Description |
---|---|---|---|
b64_img | false | string | Base64 encoded captcha image This param is only required when solving image captchas |
proxy | false | string | Proxy to be used to solve captchas. This will make the captcha be solved from the proxy ip Format: ip:port:user:pass |
proxy_type | false | string | Type of the proxy being used. Options are:HTTP , HTTPS , SOCKS4 , SOCKS5 |
user_agent | false | string | UserAgent that will be passed to the service and used to solve the captcha |
rq_data | false | string | Custom data that is used in some implementations of hCaptcha. Most of the times, you want to set the invisible_captcha param to true . |
from captchatools import new_harvester
def main():
harvester = new_harvester(
api_key="CHANGE THIS",
solving_site="capsolver",
captcha_type="v2",
sitekey="6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
captcha_url="https://www.google.com/recaptcha/api2/demo"
)
answer = harvester.get_token()
from captchatools import new_harvester
def main():
harvester = new_harvester(
api_key="CHANGE THIS",
solving_site="capsolver",
captcha_type="v3",
sitekey="6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf",
captcha_url="https://antcpt.com/score_detector/",
action="homepage",
min_score=0.7
)
token = harvester.get_token()
from captchatools import new_harvester
def main():
harvester = new_harvester(
api_key="CHANGE THIS",
solving_site="capsolver",
captcha_type="image",
)
token = harvester.get_token(b64_img="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")
from captchatools import new_harvester
def main():
harvester = new_harvester(
api_key="CHANGE THIS",
solving_site="capsolver",
captcha_type="v2",
sitekey="6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
captcha_url="https://www.google.com/recaptcha/api2/demo"
)
token = harvester.get_token(
proxy="ip:port:user:pass",
proxy_type="http",
user_agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
)
Site | Site ID | Captcha Types Supported | Task Types Supported |
---|---|---|---|
Capmonster | captchatools.CapmonsterSite | Image captchas, Recaptcha V2, Recaptcha V3, HCaptcha | ImageToTextTask, NoCaptchaTask, NoCaptchaTaskProxyless, RecaptchaV3TaskProxyless, HCaptchaTaskProxyless |
Anticaptcha | captchatools.AnticaptchaSite | Image captchas, Recaptcha V2, Recaptcha V3, HCaptcha | ImageToTextTask, RecaptchaV2Task RecaptchaV2TaskProxyless, RecaptchaV3TaskProxyless, HCaptchaTaskProxyless |
2Captcha | captchatools.TwoCaptchaSite | Image captchas, Recaptcha V2, Recaptcha V3, HCaptcha | - |
Capsolver | captchatools.CapsolverSite | Image captchas, Recaptcha V2, Recaptcha V3, HCaptcha HcaptchaTurbo | - |
CaptchaAI | captchatools.CaptchaAISite | Image captchas, Recaptcha V2, Recaptcha V3, HCaptcha | - |
ErrNoBalance
is thrown, tasks should stop. Some sites will temporarily ban IP's if constant requests come in.Errors | Returned When |
---|---|
ErrNoBalance | Balance is below 0 for captcha solving site |
ErrWrongAPIKey | Incorrect API Key for captcha solving site |
ErrWrongSitekey | Incorrect sitekey |
ErrIncorrectCapType | Incorrectly chose a captcha type. When initializing a new harvester. Refer to the captcha types |
ErrNoHarvester | When the user did not / incorrectly chose a captcha harvester. Refer to the "how to use" guide |
from captchatools import new_harvester, exceptions as captchaExceptions,
def main():
try:
harvester = new_harvester()
token = harvester.get_token()
except captchaExceptions.NoHarvesterException:
print("I need to set my captcha harvester!")
new_harvester
function rather than the old captcha_harvesters
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.