Io,
Uploader un shell via XSS, bon courage. C'est pas possible directement. Par exemple, tu pourrais si tu trouvais une XSS, que l'admin du site clique sur ta xss ou l'éxecute en allant sur une page (dépend de si ta xss est permanente ou non), et que ta XSS fasse exécuter les bonnes commandes à l'admin. Mais pour ça, il faut savoir exactement comment fonctionne le backoffice du site. Mais du JS client side ne pourra jamais écrire sur le serveur.
Via SQL c'est plus facile déjà, il existe quelques commandes pour écrire sur le serveur avec mysql, je les ai plus en tête, je te laisse chercher
Enjoy
The lsd