curl, netcat, telnet.

You can easily upload your files to our service using a Unix/Linux command-line interface.
We allow HTTP PUT for curl -T and some TCP ports for uploads using netcat/telnet.

All the ports described below are available via our Tor hidden service as well - oshiatwowvdbshka.onion

Using curl (PUT method)

curl -T /path/to/file https://oshi.at
curl -T /path/to/file https://oshi.at/customfilename # use a different filename
curl -T /path/to/file https://oshi.at/customfilename/15 # use a different filename and expire in 15 minutes
curl --upload-file /path/to/file https://oshi.at/customfilename/60 # expire in 60 minutes
curl -T /path/to/file https://oshi.at/customfilename/-1 # auto-destroy after first download
curl -T /path/to/file http://oshiatwowvdbshka.onion # upload using our Tor hidden service

Using curl (POST method)

curl https://oshi.at -F f=@/path/to/file
curl https://oshi.at -F f=@/path/to/file -F expire=5 # expire in 5 minutes
curl https://oshi.at -F f=@/path/to/file -F expire=120 -F autodestroy=1 # autodestroy on download or expire in 120 minutes
curl https://oshi.at -F f=@/path/to/file -F shorturl=0 # force a long URL in order to prevent possible short URL bruteforce
curl https://oshi.at -F f=@/path/to/file -F randomizefn=1 # randomize filename

Using TCP (netcat/telnet)

Are you an advanced IT person and need to upload your files using raw TCP session? It's possible right here. This service is inspired by tcp.st

Our TCP ports:

As a response we return 3 URLs: Management URL, Clearnet download URL and Onion download URL

The maximum size for TCP uploads is currently limited to 150 MB

Netcat example
nc -q2 oshi.at 7777 < /path/to/file
Telnet examples

Now let's imagine you've got an illegal access to a MIPS router running OpenWRT and found some rogue malware binary that you would like to analyze or send to VirusTotal. There is no netcat or curl, but only telnet and there is no easy way to download the file. Here comes dat boi!
Sending raw binary files via telnet is impractical, you better encode them in Base64 or Hex, that's why we have these ports

Our 7778 port is a TCP server decoding everything from Base64, so you just need to encode your file.
Below examples demonstrate how to upload a file using different tools for encoding

( sleep 1 && base64 /path/to/file ) | telnet oshi.at 7778
( sleep 1 && perl -MMIME::Base64 -0777 -ne 'print encode_base64($_)' /path/to/file ) | telnet oshi.at 7778

Our 7779 port is a TCP server decoding everything from Hex, so you just need to encode it. Here is how to upload using different tools for encoding in Hex

— fast (using xxd)
( sleep 1 && xxd -p /path/to/file | tr -d '\n' ) | telnet oshi.at 7779
— fast (using perl)
( sleep 1 && perl -ne 'print unpack "H*", $_' /path/to/file ) | telnet oshi.at 7779
— slow (using hexdump)
( sleep 1 && hexdump -ve '1/1 "%.2x"' /path/to/file ) | telnet oshi.at 7779
— slow (using od)
( sleep 1 && od -v -t x1 -An /path/to/file | tr -d '\n ' ) | telnet oshi.at 7779

We use sleep for telnet because unlike netcat, it has no -q option to receive data from server after sending eof
thus it might close the connection immediately after sending the data without receiving a response from us.
However, sleep may not be needed when sending big files.