There are 45 attacking moves that can lower the stat of the opponent
I used a command on Pokemon Showdown that helps to find all the moves that do damage and lower a stat:
/nms !status, lowers [insert stat here]
> /ms !status, lowers Atk:
Aurora Beam, Breaking Swipe, Lunge, Play Rough, Trop Kick
> /ms !status, lowers defense:
Crunch, Crush Claw, Fire Lash, Grav Apple, Iron Tail, Liquidation, Razor Shell, Rock Smash, Shadow Bone, Thunderous Kick
> /nms !status, lowers specialattack:
Mist Ball, Moonblast, Mystical Fire, Skitter Smack, Snarl, Spirit Break, Struggle Bug
> /nms !status, lowers specialdefense:
Acid, Acid Spray, Apple Acid, Bug Buzz, Earth Power, Energy Ball, Flash Cannon, Focus Blast, Luster Purge, Psychic, Seed Flare, Shadow Ball
> /nms !status, lowers speed:
Bubble, Bubble Beam, Bulldoze, Constrict, Drum Beating, Electroweb, Glaciate, Icy Wind, Low Sweep, Mud Shot, Rock Tomb
The command I used searches for moves that lowers a stat, and !status excludes status moves that lowers stats, making me able to search for attacking moves that can lower the stat of an opponent. Hope this helps.
In total, there are 45 moves that do damage and lowers the stat of the opponent.