A gullible person believes what other people say and does what others ask without thinking. Gullible people trust others too much, too easily. Bad people steal money and take advantage of gullible people. For example, a gullible person would buy a used car without checking it carefully, and later discover the car is in poor condition and not worth its price. Gullible is often used to tell about this kind of situation. Other much harsher words (nouns) for this kind of person are sucker or maybe dupe, patsy, or chump. There are other more vulgar words for gullible I won't list.
Naive includes a lack of wisdom about life in general. A naive person does not have much knowledge about how people behave and how the world works. A naive person thinks like a child and tends to believe the world is good. A naive person doesn't understand that many people lie, that life isn't fair, and that what people promise can be very different from what they do. (A naive person is gullible, too.) Other words for naive might include childlike, happy-go-lucky, eternal optimist, or sees the world through rose-colored glasses.
Naive is used much more than gullible. Maybe this is because naive includes the idea of gullible. Also, naive is usually not meant to be an insult, especially when used to describe young people. Gullible is often used instead of stupid, and is insulting.