Para o SOCKS, isso é bastante simples se você sabe onde estão todos os proxies, é só pedir a cada um para se conectar ao próximo.
Para HTTP, para especificar um proxy upstream, você precisaria usar o método CONNECT para fazer com que o proxy se conecte ao próximo proxy.