Convolution backpropagation
Note that a CNN is a feed-forward neural network. Thus, if you understand how to perform backpropagation in feed-forward neural networks, you have it for CNNs.
A convolution layer can be understood as a fully connected layer, with the constraints that several edge weights are identical and many edge weights are set to 0.
You can also build a pooling layer in this way. For example an average pooling layer is nothing but a specific convolution layer, with fixed weights.
For max-pooling, use the fact that $\max\{x,y\} = \frac{x+y+|x-y|}{2}$.