Notes |
|
|
Do you have an example?
Each of the following worked fine for me (in spk_player):
ON=*boo* // accepts "boo", "()=boo", "(boo)", "boo()="
SYSMESSAGE You said *boo*!
RETURN 2
ON=*boo // accepts "boo", "()=boo"
SYSMESSAGE You said *boo!
RETURN 2
ON=boo* // accepts "boo", "boo()="
SYSMESSAGE You said boo*!
RETURN 2 |
|
|
|
Sorry!. It is a failure of long ago and spoke from memory without remembering the exact failure ... The problem is the comparison with STRCMPI, STRCMP and STRMATCH. If you use the characters () = you skip the checks and fails on the console.
EXAMPLE
ON=*
SERV.LOG <ARGS>
IF (<SRC.FLAGS>&STATF_DEAD)
IF !STRCMPI(<ARGS>,all come)
ELSEIF !STRCMPI(<ARGS>,all stop)
ELSEIF !STRCMPI(<ARGS>,navegacion)
ELSE
RETURN 1
ENDIF
ENDIF
16:11:ERROR:(sphere_speech.scp,54)Undefined symbol 'SDGG'
16:11:(sphere_speech.scp,61)()=SDGG |
|
|
|
Affect any system that uses comparisons.
Another flaw is that the comparators allow the use of asterisks and question marks as wildcards, so if you put an * when you are asking for a 3 digit code will pass the test. Also if you put three characters of interrogations. |
|
|
(0000974)
|
babidi
|
23-03-11 09:01
|
|
can be a way to inject code this way? |
|
|
(0002365)
|
XuN
|
23-07-14 19:47
|
|
Not happening me, can you still reproduce it? |
|
|
(0002367)
|
XuN
|
24-07-14 18:08
|
|
Closed since there's no problem anymore. |
|