It sounds like your problem is not so much with texture painting, but rather knowing how to use the texture in the material editor. I am not going to repeat an entire tutorial in a comment, but I have something slightly different that might help you:
It uses a mix rgb node set to multiply, so the dirt texture appears as a dark layer on top of the concrete. The color ramp controls the dirt texture, allowing its contrast to be adjusted precisely.
The mask texture is just a new black image that you create in Blender. You then paint it with a solid white brush and this will decide where the dirt texture appears. The mask doesn’t need to be painted with a textured brush, as it will reveal dirt which is already textured.