Let's use Charizard as an example. It is 4x weak to Rock type attacks (2x Flying + 2x Fire). If Onyx uses Rock Slide on a Charizard, will the attack be 6x? (4x + 50% STAB)?
As you can see from the Damage Formula:
where Modifier is:
- STAB is the same-type attack bonus. This is equal to 1.5 if the attack is of the same type as the user, and 1 if otherwise.
- Type is the type effectiveness. This can be either 0, 0.25, 0.5, 1, 2, or 4 depending on the type of attack and the type of the defending Pokémon.
- Critical is 2 for a critical hit in Generations I-V, 1.5 for a critical hit in Generation VI, and 1 otherwise.
- other counts for things like held items, Abilities, field advantages, and whether the battle is a Double Battle or Triple Battle or not.
- random is a random number from 0.85 to 1.00.
You can see that Type effectiveness and STAB are both applied to the final damage.
Yes, STAB applies on top of any other damage modifications, multiplicatively. In this case, Charizard will take 6x damage.