Portál AbcLinuxu, 8. května 2025 04:33
curl --user uzivatel:heslo --upload-file /tmp/soubor --location --verbose https://uloz.to/ > /dev/null 2> ulozto.logtak se sice soubor někam fyzicky odešle ale když si potom u sebe otevřu web browser a lognu na uloz.to, tak ho nikde v tom jejich webovém průzkumníkovi nevidím. Ten verbose log vypadá nějak takto (uživatelské jméno jsem změnil):
* Uses proxy env variable no_proxy == 'localhost,127.*,192.168.*,10.*' % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 77.48.29.200:443... * Connected to uloz.to (77.48.29.200) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/ssl/certs/ca-certificates.crt CApath: none } [5 bytes data] * TLSv1.3 (OUT), TLS handshake, Client hello (1): } [512 bytes data] * TLSv1.3 (IN), TLS handshake, Server hello (2): { [97 bytes data] * TLSv1.2 (IN), TLS handshake, Certificate (11): { [2555 bytes data] * TLSv1.2 (IN), TLS handshake, Server key exchange (12): { [333 bytes data] * TLSv1.2 (IN), TLS handshake, Server finished (14): { [4 bytes data] * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): } [70 bytes data] * TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1): } [1 bytes data] * TLSv1.2 (OUT), TLS handshake, Finished (20): } [16 bytes data] * TLSv1.2 (IN), TLS handshake, Finished (20): { [16 bytes data] * SSL connection using TLSv1.2 / ECDHE-RSA-CHACHA20-POLY1305 * ALPN, server did not agree to a protocol * Server certificate: * subject: CN=*.uloz.to * start date: Jun 19 04:36:02 2020 GMT * expire date: Sep 17 04:36:02 2020 GMT * subjectAltName: host "uloz.to" matched cert's "uloz.to" * issuer: C=US; O=Let's Encrypt; CN=Let's Encrypt Authority X3 * SSL certificate verify ok. * Server auth using Basic with user 'uzivatel' } [5 bytes data] > PUT /soubor HTTP/1.1 > Host: uloz.to > Authorization: Basic c2lsdmFoZWQ6dXRwdzIy > User-Agent: curl > Accept: */* > Content-Length: 15728640 > Expect: 100-continue > { [5 bytes data] * Mark bundle as not supporting multiuse < HTTP/1.1 100 Continue } [5 bytes data] 3 15.0M 0 0 3 576k 0 1125k 0:00:13 --:--:-- 0:00:13 1122k 7 15.0M 0 0 7 1088k 0 721k 0:00:21 0:00:01 0:00:20 721k 10 15.0M 0 0 10 1536k 0 622k 0:00:24 0:00:02 0:00:22 622k 13 15.0M 0 0 13 2048k 0 569k 0:00:26 0:00:03 0:00:23 569k 16 15.0M 0 0 16 2496k 0 550k 0:00:27 0:00:04 0:00:23 550k 19 15.0M 0 0 19 2944k 0 539k 0:00:28 0:00:05 0:00:23 478k 22 15.0M 0 0 22 3456k 0 527k 0:00:29 0:00:06 0:00:23 469k 25 15.0M 0 0 25 3904k 0 520k 0:00:29 0:00:07 0:00:22 470k 28 15.0M 0 0 28 4352k 0 514k 0:00:29 0:00:08 0:00:21 472k 31 15.0M 0 0 31 4864k 0 508k 0:00:30 0:00:09 0:00:21 470k 34 15.0M 0 0 34 5312k 0 505k 0:00:30 0:00:10 0:00:20 469k 37 15.0M 0 0 37 5760k 0 502k 0:00:30 0:00:11 0:00:19 468k 40 15.0M 0 0 40 6272k 0 499k 0:00:30 0:00:12 0:00:18 469k 43 15.0M 0 0 43 6720k 0 497k 0:00:30 0:00:13 0:00:17 470k 46 15.0M 0 0 46 7168k 0 495k 0:00:30 0:00:14 0:00:16 470k 50 15.0M 0 0 50 7680k 0 493k 0:00:31 0:00:15 0:00:16 469k 52 15.0M 0 0 52 8128k 0 492k 0:00:31 0:00:16 0:00:15 470k 55 15.0M 0 0 55 8576k 0 491k 0:00:31 0:00:17 0:00:14 469k 59 15.0M 0 0 59 9088k 0 490k 0:00:31 0:00:18 0:00:13 469k 62 15.0M 0 0 62 9536k 0 488k 0:00:31 0:00:19 0:00:12 469k 65 15.0M 0 0 65 9984k 0 488k 0:00:31 0:00:20 0:00:11 469k 68 15.0M 0 0 68 10.2M 0 487k 0:00:31 0:00:21 0:00:10 468k 71 15.0M 0 0 71 10.6M 0 486k 0:00:31 0:00:22 0:00:09 468k 74 15.0M 0 0 74 11.1M 0 485k 0:00:31 0:00:23 0:00:08 469k 77 15.0M 0 0 77 11.6M 0 485k 0:00:31 0:00:24 0:00:07 470k 80 15.0M 0 0 80 12.0M 0 484k 0:00:31 0:00:25 0:00:06 470k 83 15.0M 0 0 83 12.5M 0 483k 0:00:31 0:00:26 0:00:05 469k 86 15.0M 0 0 86 13.0M 0 483k 0:00:31 0:00:27 0:00:04 470k 89 15.0M 0 0 89 13.4M 0 483k 0:00:31 0:00:28 0:00:03 470k 92 15.0M 0 0 92 13.9M 0 482k 0:00:31 0:00:29 0:00:02 470k 95 15.0M 0 0 95 14.3M 0 482k 0:00:31 0:00:30 0:00:01 469k 98 15.0M 0 0 98 14.8M 0 481k 0:00:31 0:00:31 --:--:-- 471k* We are completely uploaded and fine { [5 bytes data] 100 15.0M 0 0 100 15.0M 0 469k 0:00:32 0:00:32 --:--:-- 394k* Mark bundle as not supporting multiuse < HTTP/1.1 404 Not Found < Server: nginx < Date: Thu, 16 Jul 2020 02:26:04 GMT < Content-Type: text/html; charset=utf-8 < Transfer-Encoding: chunked < Connection: close < X-Powered-By: Nette Framework 3 < X-Frame-Options: SAMEORIGIN < Set-Cookie: nette-samesite=1; path=/; HttpOnly; SameSite=Strict < Set-Cookie: ULOSESSID=jqu8ppght5veu0uc9ci5ki6fqm; expires=Thu, 30-Jul-2020 02:26:04 GMT; Max-Age=1209600; path=/; domain=.uloz.to; secure; HttpOnly; SameSite=Lax < Expires: Thu, 19 Nov 1981 08:52:00 GMT < Cache-Control: no-store, no-cache, must-revalidate < Pragma: no-cache < Vary: X-Requested-With < Set-Cookie: uloztoid=911336723; expires=Fri, 16-Jul-2021 02:26:04 GMT; Max-Age=31536000; path=/; domain=uloz.to; secure; SameSite=None < X-Node-Name: ulozto4 < { [7567 bytes data] 100 15.0M 0 7559 100 15.0M 224 455k 0:00:33 0:00:33 --:--:-- 306k 100 15.0M 0 7559 100 15.0M 217 442k 0:00:34 0:00:34 --:--:-- 212k 100 15.0M 0 7559 100 15.0M 211 429k 0:00:35 0:00:35 --:--:-- 124k 100 15.0M 0 7559 100 15.0M 205 418k 0:00:36 0:00:36 --:--:-- 38756 100 15.0M 0 7559 100 15.0M 200 406k 0:00:37 0:00:37 --:--:-- 1505 100 15.0M 0 7559 100 15.0M 195 396k 0:00:38 0:00:38 --:--:-- 0 100 15.0M 0 7559 100 15.0M 190 386k 0:00:39 0:00:39 --:--:-- 0 100 15.0M 0 7559 100 15.0M 185 376k 0:00:40 0:00:40 --:--:-- 0 100 15.0M 0 7559 100 15.0M 181 367k 0:00:41 0:00:41 --:--:-- 0 100 15.0M 0 7559 100 15.0M 176 359k 0:00:42 0:00:42 --:--:-- 0 100 15.0M 0 7559 100 15.0M 172 350k 0:00:43 0:00:43 --:--:-- 0 100 15.0M 0 7559 100 15.0M 168 343k 0:00:44 0:00:44 --:--:-- 0 100 15.0M 0 7559 100 15.0M 165 335k 0:00:45 0:00:45 --:--:-- 0 100 15.0M 0 7559 100 15.0M 161 328k 0:00:46 0:00:46 --:--:-- 0 100 15.0M 0 7559 100 15.0M 158 321k 0:00:47 0:00:47 --:--:-- 0 100 15.0M 0 7559 100 15.0M 154 314k 0:00:48 0:00:48 --:--:-- 0 100 15.0M 0 7559 100 15.0M 151 308k 0:00:49 0:00:49 --:--:-- 0 100 15.0M 0 7559 100 15.0M 148 302k 0:00:50 0:00:50 --:--:-- 0 100 15.0M 0 7559 100 15.0M 145 296k 0:00:51 0:00:51 --:--:-- 0 100 15.0M 0 7559 100 15.0M 143 290k 0:00:52 0:00:52 --:--:-- 0 100 15.0M 0 7559 100 15.0M 140 285k 0:00:53 0:00:53 --:--:-- 0 100 15.0M 0 7559 100 15.0M 137 280k 0:00:54 0:00:54 --:--:-- 0 100 15.0M 0 7559 100 15.0M 135 275k 0:00:55 0:00:55 --:--:-- 0 100 15.0M 0 7559 100 15.0M 133 270k 0:00:56 0:00:56 --:--:-- 0 100 15.0M 0 7559 100 15.0M 130 265k 0:00:57 0:00:57 --:--:-- 0 100 15.0M 0 7559 100 15.0M 128 261k 0:00:58 0:00:58 --:--:-- 0 100 15.0M 0 7559 100 15.0M 126 256k 0:00:59 0:00:59 --:--:-- 0 100 15.0M 0 7559 100 15.0M 124 252k 0:01:00 0:01:00 --:--:-- 0 100 15.0M 0 7559 100 15.0M 122 248k 0:01:01 0:01:01 --:--:-- 0 100 15.0M 0 7559 100 15.0M 120 244k 0:01:02 0:01:02 --:--:-- 0 100 15.0M 0 7559 100 15.0M 118 240k 0:01:03 0:01:03 --:--:-- 0 100 15.0M 0 7559 100 15.0M 116 236k 0:01:04 0:01:04 --:--:-- 0 100 15.0M 0 7559 100 15.0M 114 233k 0:01:05 0:01:05 --:--:-- 0 100 15.0M 0 7559 100 15.0M 113 229k 0:01:06 0:01:06 --:--:-- 0 100 15.0M 0 7559 100 15.0M 111 226k 0:01:07 0:01:07 --:--:-- 0 100 15.0M 0 7559 100 15.0M 109 223k 0:01:08 0:01:08 --:--:-- 0 100 15.0M 0 7559 100 15.0M 108 219k 0:01:09 0:01:09 --:--:-- 0 100 15.0M 0 7559 100 15.0M 106 216k 0:01:10 0:01:10 --:--:-- 0 100 15.0M 0 7559 100 15.0M 105 213k 0:01:11 0:01:11 --:--:-- 0 100 15.0M 0 7559 100 15.0M 103 210k 0:01:12 0:01:12 --:--:-- 0 100 15.0M 0 7559 100 15.0M 102 207k 0:01:13 0:01:13 --:--:-- 0 100 15.0M 0 7559 100 15.0M 100 205k 0:01:14 0:01:14 --:--:-- 0 100 15.0M 0 7559 100 15.0M 99 202k 0:01:15 0:01:15 --:--:-- 0 100 15.0M 0 7559 100 15.0M 98 199k 0:01:16 0:01:16 --:--:-- 0 100 15.0M 0 7559 100 15.0M 97 197k 0:01:17 0:01:17 --:--:-- 0 100 15.0M 0 7559 100 15.0M 95 194k 0:01:18 0:01:18 --:--:-- 0 100 15.0M 0 7559 100 15.0M 94 192k 0:01:19 0:01:19 --:--:-- 0 100 15.0M 0 7559 100 15.0M 93 189k 0:01:20 0:01:20 --:--:-- 0 100 15.0M 0 7559 100 15.0M 92 187k 0:01:21 0:01:21 --:--:-- 0 100 15.0M 0 7559 100 15.0M 91 185k 0:01:22 0:01:22 --:--:-- 0 100 15.0M 0 7559 100 15.0M 90 183k 0:01:23 0:01:23 --:--:-- 0 100 15.0M 0 7559 100 15.0M 89 180k 0:01:24 0:01:24 --:--:-- 0 100 15.0M 0 7559 100 15.0M 87 178k 0:01:25 0:01:25 --:--:-- 0 100 15.0M 0 7559 100 15.0M 86 176k 0:01:26 0:01:26 --:--:-- 0 100 15.0M 0 7559 100 15.0M 85 174k 0:01:27 0:01:27 --:--:-- 0 100 15.0M 0 7559 100 15.0M 85 172k 0:01:28 0:01:28 --:--:-- 0 100 15.0M 0 7559 100 15.0M 84 170k 0:01:29 0:01:29 --:--:-- 0 100 15.0M 0 7559 100 15.0M 83 168k 0:01:30 0:01:30 --:--:-- 0 100 15.0M 0 7559 100 15.0M 82 167k 0:01:31 0:01:31 --:--:-- 0* TLSv1.2 (IN), TLS alert, close notify (256): { [2 bytes data] 100 15.0M 0 7559 100 15.0M 81 165k 0:01:32 0:01:32 --:--:-- 0* transfer closed with outstanding read data remaining 100 15.0M 0 7559 100 15.0M 81 165k 0:01:32 0:01:32 --:--:-- 0 * Closing connection 0 } [5 bytes data] * TLSv1.2 (OUT), TLS alert, close notify (256): } [2 bytes data] curl: (18) transfer closed with outstanding read data remaining
Trochu jsem gůglil jestli už to předemnou někdo neřešil a našel jsem tento skript na githubu. No ten bohužel taky nefunguje. Vyhodí to chybu
sed: -e expression #1, char 36: unknown option to `s'Poraďte prosím něco.
Řešení dotazu:
a546c6d4-400c-468b-80b9-acf64a75bcfe 6ec50ea8-0c89-4ab6-acd6-568a992832b7 137070d8-d103-4685-b9a0-4eb851ceecafA sed z toho odřezává ty pomlčky.
Když ten skript z githubu pustím s v ukecaném debug mode jako:
sh -x ulozto.sh /tmp/soubortak to spíš vypadá že chcípne proto, že je proměnná user_id= prázdná.
tak se sice soubor někam fyzicky odešle ale když si potom u sebe otevřu web browser a lognu na uloz.to, tak ho nikde v tom jejich webovém průzkumníkovi nevidímAno, protože stránka s uploadem téměř určitě nebude https://uloz.to/, ale něco složitějšího (https://uloz.to/foo/bar/upload/bleble), a taky se na dnešním webu téměř nepoužívá HTTP autentizace (curl --user), ale formulář, který ti dá cookie.
tak to spíš vypadá že chcípne proto, že je proměnná user_id= prázdnáNo tak to budeš muset ladit. Pro začátek: co vrátí ten wget? Co vrátí ten grep? Určitě od roku 2014 změnili frontnend a userid nepůjde získat přesně takhle. Letmým pohledem mi přijde, že změnili i přihlašovací formulář, takže nejspíš neprojde ani to přihlášení před tím. Budeš to muset opravit - pomůcky: Burp Suite (bohatě stačí community verze zadarmo), element inspector tvého prohlížeče.
#!/bin/sh username=lppjaclcukbm password=vfdzt6o7tuq6 # falešný user agent, aby server nepanikařil že máme zastaralý browser. ua="Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0" cookie=$(mktemp) file="$1" # první se stáhne prázdná login stránka a uloží se cookie. curl -v -A "$ua" -c $cookie https://uloz.to/login 1>/dev/null sleep 2 # teď se stránka jakoby vyplní a pošle se zpátky. curl -v -A "$ua" -X POST -b $cookie -F username=$username -F password=$password -L https://uloz.to/login?do=loginComponent-loginForm-form-submit 1>/tmp/ut-login-test.html # stáhne se stránka na upload souboru. curl -v -A "$ua" -b $cookie https://uloz.to/sem 1>/tmp/ut-sem.html # až posem to funguje. sleep 1 # dál je asi potřeba pro ten soubor vygenerovat nějaký token # no vrací to json s hodnotama null. curl -v -A "$ua" -b $cookie -H 'Referer: https://uloz.to/sem' https://uloz.to/p-api/get-api-current-user-token 1>/tmp/ut-token.json
Celý ten proces, login a upload souboru v prohlížeči jsem nahrál pomocí mitmproxy aby bylo vidět jak to přesně probíhá. Kompletní dump sem nejde vložit jako příloha protože to má víc jak 5MB tak je na ulozto.
mitmproxy -nr ulozto.dump
nějakej progress?? co jakoby použít selenium třeba a neřešit tyhlety všecky věci ručně?? :O :O
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.