We begin with the singular curve
$$
y^2 = x^3 + 17230x + 22699\,.
$$
This curve is singular, as can be immediately determined by its $0$ discriminant. Furthermore, it has a singular point $(23796, 0)$, where both partial derivatives vanish. We translate the curve to have this singular point at $(0, 0)$ by changing variables $(x, y) \mapsto (x - 23796, y - 0)$, after which we obtain the corresponding curve
$$
y^2 = x^3 + 23426x^2\,,
$$
which can be rewritten as
$$
y^2 = x^2(x + 23426)\,.
$$
This curve is a node, not a cusp. A cusp would have, after translation, the form $y^2 = x^3$, because it would have a triple root.
Having the curve in the above form, it becomes easy to solve the logarithm. Because it is a node, we know it maps to a multiplicative group. And because $23426=7020^2$ is a square modulo $23981$, we know it maps to the multiplicative group $\mathbb{F}_{23981}^\ast$, i.e., the integers modulo $23981$. The map is
$$
(x, y) \mapsto \frac{y + 7020x}{y - 7020x}\,,
$$
after which we can simply solve the discrete logarithm over the integers modulo $23981$.
Here's a short Sagemath script that does the transformation and finds the discrete logarithm:
sage: p = 23981
sage: P.<x> = GF(p)[]
sage: f = x^3 + 17230*x + 22699
sage: P = (1451, 1362)
sage: Q = (3141, 12767)
sage: # change variables to have the singularity at (0, 0)
sage: f_ = f.subs(x=x + 23796)
sage: P_ = (P[0] - 23796, P[1])
sage: Q_ = (Q[0] - 23796, Q[1])
sage: # show that the curve is of the form y^2 = x^3 + x^2
sage: print f_.factor()
(x + 23426) * x^2
sage: t = GF(p)(23426).square_root()
sage: # map both points to F_p
sage: u = (P_[1] + t*P_[0])/(P_[1] - t*P_[0]) % p
sage: v = (Q_[1] + t*Q_[0])/(Q_[1] - t*Q_[0]) % p
sage: # use Sage to solve the logarithm
sage: print discrete_log(v, u)
53
This method, and others, are best described in Section 2.10 of Washington's Elliptic Curves: Number Theory and Cryptography.