simta / simta

A Simple Internet Mail Transfer Agent.
MIT License
9 stars 3 forks source link

Sneakier write-before-banner check #33

Open flowerysong opened 6 months ago

flowerysong commented 6 months ago

Some bot clients are smart enough to wait until they've received some data from the server before starting to firehose commands at it; these can be caught by sending the first part of a multi-line banner, then pausing to check for non-compliant writes, then finishing the banner.

write("250-do androids dream of electric sheep?")
write("250-and in that sleep of death what dreams may come")
pause(receive.connection.banner.delay)
write("rugged-odorobiwa.mx.x.mail.umich.edu Simple Internet Message Transfer Agent ready")