KyranRana / cloudflare-bypass

A new and improved PHP library which bypasses the Cloudflare IUAM page using cURL
MIT License
275 stars 98 forks source link

Now broken #164

Closed momala454 closed 4 years ago

momala454 commented 4 years ago

Since today, the script is broken because the url on the form is encoded with &xxx;, so the script tries to submit to url containing &

the fix on UAMPageFormParams function on main/Model/UAM/UAMPageFormParams.php

modify like this return new UAMPageFormParams( $sMatches[1], $jschlVcMatches[1], $passMatches[1], self::getJschlAnswerFromPage($pageAttributes), htmlspecialchars_decode($urlMatches[1]) );

gergokee commented 4 years ago

Well for me it is still not working with this change:

Tried reaching this page: https://predb.me/?search=720p

"[ERROR] UAM (retry: 0) -> clearance cookie missing! Unknown error -> CF clearance could not be found!"

judgdredd commented 4 years ago

Yeah it's definitely NOT working. I've tested it on http://medium.com https://torrentz2.eu and various others. My script that was working for over 7 months just stopped working recently due to the bypasser not solving the cloudflare problem and instead returns the usual

setTimeout(function(){\n var s,t,o,p,b,r,e,a,k,i,n,g,f, CNVCtJR={"USHdsl":+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![ ▶ g = String.fromCharCode;\n o = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";\n e = function(s) {\n s += "==".slice(2 - (s.length & 3));\n var bm, r = "", r1, r2, i = 0;\n for (; i < s.length;) {\n bm = o.indexOf(s.charAt(i++)) << 18 | o.indexOf(s.charAt(i++)) << 12\n | (r1 = o.indexOf(s.charAt(i++))) << 6 | (r2 = o.indexOf(s.charAt(i++)));\n r += r1 === 64 ? g(bm >> 16 & 255)\n : r2 === 64 ? g(bm >> 16 & 255, bm >> 8 & 255)\n : g(bm >> 16 & 255, bm >> 8 & 255, bm & 255);\n }\n return r;\n

momala454 commented 4 years ago

i tried both url http://medium.com https://torrentz2.eu and they works. Make sure you put all of those headers (with different values if you want, but they must be present)

'Connection: Keep-Alive', 
'Accept-Language: *', 
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0', 
'Accept: */*', 
'Accept-Encoding: deflate, gzip', 
'Upgrade-Insecure-Requests: 1'
momala454 commented 4 years ago

actually i'll reopen until another release is done with the change for this bug as it's in master

judgdredd commented 4 years ago

This is some of the code re: the headers Screenshot from 2020-03-13 14-14-53 And this is the result Screenshot from 2020-03-13 14-16-16 Screenshot from 2020-03-13 14-25-45

judgdredd commented 4 years ago

This might be a bit messy but the below is the dump output in a terminal of https://torrentz2.eu using your CFCurlTest.php file directly.

`""" <!DOCTYPE HTML>\n

\n \n \n \n \n \n \n \n Just a moment...\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n
\n \n \n \n \n
\n \n \n \n
\n
\n \n \n
\n DDoS protection by Cloudflare\n
\n Ray ID: 5732b6e44b776561\n
\n
\n \n \n`
judgdredd commented 4 years ago

Okay.. So it's important to note i've been using the version pulled and updated from composer require kyranrana/cloudflare-bypass

That being said i did the patch tweaks above to no avail.

I just downloaded the zip file directly from here and unpacked it in the vendor dir and now everything is working. So what is obtained via composer and what fixed are provided here don't work. I'd say update the composer package to what's in the master.zip here.

momala454 commented 4 years ago

yeah i don't get why he don't make a new release

jaymoulin commented 4 years ago

@momala454 I'm pretty sure maintaining this kind of product is really time consuming and Kyran prefer spending time on other things. I already gave him some recommendations for this package to be more usable here : https://github.com/KyranRana/cloudflare-bypass/issues/157

As I am, and many other users are, stuck with this package release process, I published a fork https://github.com/jaymoulin/cloudflare-bypass which is just a usable automatically updated fork of this repo.

Basically, every time a PR is merged, or a commit is pushed to this master, my package will update and make a usable unstable release (dev-master) available on packagist, therefore, composer (composer require jaymoulin/cloudflare-bypass:dev-master).

Also, I added a functional test case to check with both https://torrentz2.eu and https://medium.com on GitHub's servers to check the package's behaviour CI and details (https://github.com/jaymoulin/cloudflare-bypass/actions?query=workflow%3ACI)

As this package is a unstable package, you all have to decrease minimum-stability of your composer.json file to dev (and adding prefer-stable to true when possible). Sorry, but this is mandatory as https://github.com/KyranRana/cloudflare-bypass/issues/157 is still open.

I'm not really happy I had to do this but I understand some of Kyran's choices. I hope this is only a temporary fix and it will unstuck people.

gergokee commented 4 years ago

Well i tried it again, but still can't access https://torrentz2.eu Tried from 2 different servers:

nitemare commented 4 years ago

i'm getting the same errors for https://torrentz2.eu and https://torrentz2.is