There are always hundreds of ways to do stuff. And if someone has a better approach, please do tell.
I would use a combination of, empty game objects parented to my character with triggers and the "set property" action targeting the enabling and disabling of the triggers.
For example, when I play my attacking animation, I also turn on the gameobjects that has my attack trigger, and then off again once the attack is done. All of my enemies are checking for a trigger with the tag "attack" on it so that when my fist or sword or whatever intersects they know they are hit.
Depending on how you are animating the fighter, you could do this directly using Unity's animation tools. Its just another keyframe inside the animation.
The theory would work with blocking as well. When ever the blocking animation is playing, I turn on my blocking trigger so that I know I am blocking instead of being attacked.