How to make that poisons were 24 hours?
You need to extend custom time in core. Easy to do look at DBC and edit the value.
DBC can not change the time poisons
Not even in SpellMgr::LoadSpellCustomAttr()
In dbc, there's "DurationIndex", you need to set to appropriate index, but there's no with 24 hours.
However, there's is a close one - 18 hours - index 580
I wouldn't recomment editing dbcs, tho. Better use the SpellMgr::LoadSpellCustomAttr (SpellMgr.cpp)