上げる, くれる, and もらう can be used as auxiliary verbs after Vte (te-form of a verb) in order to express the idea "do something for someone", "someone did something for me", and "I had someone do something for me", respectively.
E.g.:
本を買って上げた。 I bought a book for you.
本を買ってくれた。 He bought a book for me.
本を買ってもらった。 I had him buy a book for me./He bought a book for me.
Auxiliary もらう has two different nuances which are differentiated by context.