View Issue Details

IDProjectCategoryView StatusLast Update
0000891unrealircdpublic2003-11-20 19:43
Reporterpoisoner Assigned Tocodemastr 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version3.2-beta15 
Summary0000891: Ban version {} can be passed by on slowing down version replies
DescriptionIf chatter has multiple lines of ctcp version reply, mostly the second line seems to be ignored if the first reply did not match any ban line...

Also it can be passed by if User tells his client to ignore a User called "IRC".

What about using a username from host-cloaking routine, and checking all lines of the version reply?
3rd party modules

Activities

codemastr

2003-04-14 16:14

reporter   ~0002317

Well Unreal handles multi-line CTCP VERSION replies just fine:

in mIRC:
ctcp *:version*:*:{
  ctcpreply $nick VERSION blah
}

in UnrealIRCd:
ban version {
        mask "*blah*";
        reason "test";
};

And when I connect,
[12:09] Closing Link: codemastr[XXX.XXX.XXX.XXX] (test)

So I'm not sure what you mean when you say it isn't working, because it works perfectly here. And I will consider the randomized nick for sending the version, but keep in mind that that won't solve anything either, if you ignore all ctcp requests, it will evade the system anyway...

poisoner

2003-04-15 09:15

reporter   ~0002333

Yes... it works perfectly, if the first reply matches any ban version {} statement. But have a look at scripts like looksharp... And insert a reply line before the reply of the script...
If the reply is like that:
Apr 14 14:24:03 -_Iris__- VERSION mIRC32 v5.91 K.Mardam-Bey
Apr 14 14:24:07 -_Iris__- L o o k s h a r p 3.1Æ by Amaz|ng^ - HighAce http://www.looksharp.com.ar - http://www.looksharp.at IRC/IRCX Futura Theme für mIRC
Apr 14 14:24:07 -_Iris__- VERSION mIRC32 v5.91 K.Mardam-Bey
It does not match...
If the first line is not send, it matches...
I think every line of a reply should be checked. But I know that there should be a timeout. Slowing down the connection ist not good. Another way may be to check every version reply which goes through the server. But that may result in a higher load of the server...

AngryWolf

2003-04-15 12:37

reporter   ~0002335

Is the second line (from the three examples) a CTCP version reply? Because it isn't a standard one...

poisoner

2003-04-15 13:00

reporter   ~0002337

This is the reply which was added by the mIRC Script "looksharp".
Most Scripts for mIRC add a line to the original mIRC Version reply, or replace ist. (hennesscript, showdown, pnp. looksharp, german fun script etc.).
Mostly to distribute the URL to download it from.
btw. this is _ONE_ example... The original reply send first, sleep 4 secs, then send the normal scriptreply.

mister

2003-04-16 07:59

reporter   ~0002352

AFAIK replies from most script are notices, not ctcpreply... no ?
(using xchat since my first irc word... never had this kind of 'problem'... never even thinked more than 2sec about such a problem...)

Xuefer

2003-05-06 05:19

reporter   ~0002665

it should be a feature request that do "ban ctcp {}"
not only "ban version{}" (which should be "ban ctcp version{}"

AngryWolf

2003-05-06 19:07

reporter   ~0002672

Currently there is no support for multiple block values yet, so your example might be solved by an additional directive in ban block, dunno. However, I don't wholly agree with your suggestion. That "L o o k S h a r p" CTCP reply is pretty invalid, and should be ignored (Or even better: we should follow standards and make them stricter by banning clients sending such a bad CTCP reply?)

codemastr

2003-05-06 21:42

reporter   ~0002681

Umm that makes no sense? Why would you ban for other replies? What possible reason would you have to ban someone because of a PING/TIME/FINGER reply?

Xuefer

2003-05-07 02:42

reporter   ~0002686

hrmm.... there is 2 step to check ctcp
1. send /CTCP VERSION request
2. wait for "/CTCPREPLY VERSION", and check
we need not to change step 1 to do PING TIME FINGER
but just modify the step 2, to check not only the "/CTCPREPLY VERSION" but all "/CTCPREPLY" from client, it shouldn't be hard
it the client is non-standard, why should be standard to be spoof?
and yes, all of us know it's just a reply from client, and not believable
but what poisoner want to do is just to ban some bad bot which want to show off itself.
e.g., in ctcpreply, use non-standard reply to show off and escape from the check
in quit/part msgs, show off it's long dirty-colored URL

codemastr

2003-05-07 03:34

reporter   ~0002687

hmm well not sure if I'll make it check for ALL ctcp replies, but I'll add CTCP SCRIPT checking. I've seen a couple of scripts that use that to show their added crap.

codemastr

2003-05-08 19:09

reporter   ~0002720

Ok, as of .1784 it will also listen for CTCP SCRIPT messages.

Issue History

Date Modified Username Field Change
2003-04-14 12:38 poisoner New Issue
2003-04-14 16:14 codemastr Note Added: 0002317
2003-04-15 09:15 poisoner Note Added: 0002333
2003-04-15 12:37 AngryWolf Note Added: 0002335
2003-04-15 13:00 poisoner Note Added: 0002337
2003-04-16 07:59 mister Note Added: 0002352
2003-05-06 05:19 Xuefer Note Added: 0002665
2003-05-06 19:07 AngryWolf Note Added: 0002672
2003-05-06 21:42 codemastr Note Added: 0002681
2003-05-07 02:42 Xuefer Note Added: 0002686
2003-05-07 03:34 codemastr Note Added: 0002687
2003-05-08 19:09 codemastr Status new => resolved
2003-05-08 19:09 codemastr Resolution open => fixed
2003-05-08 19:09 codemastr Assigned To => codemastr
2003-05-08 19:09 codemastr Note Added: 0002720
2003-11-20 19:43 syzop Status resolved => closed