I uploaded all 3 ctf and coding solutions. They were not already on their sites’ folders.
Anyway, the Fluid Attacks ranking declares one of my solution is not unique, and I think I know why: I uploaded the OTHERS.lst file of some of my solutions with links with different ways to solve that specific problem (these ways are different from my solution).
What could I do in order for the ranking system to considere my solutions as unique? That way I will be able to request access to Writeups.
Could you please add the link of the MR in question to clarify?
Yes. Thanks. It is https://gitlab.com/autonomicmind/training/merge_requests/2741/ . There, I uploaded an OTHERS.lst file, and it invalidated the uniqueness of my submission.
What could I do?
This question requieres a pretty deep answer, so here we go:
The uniqueness system was designed to mark a solution as unique only if no others (or others in the same programming language for code) are in the challenge folder.
As one would assume, the algorithm it is not capable of understanding if a others solution is different from a local solution, as others are only links to an external source.
The previous two points make me realize that when we designed this system, assumed that every challenge folder could only be solved in one way… Actually, that is why in VbD challenges, folders must include the CWE code: to grant high granularity.
What would I recommend?: If you think the challenge folder can be split based on what technique was used to solve the same challenge, go for it. That should allow you to have the others you included in separate folders from the one where your solution would be. Just make sure to do this only when there is a considerable difference between the techniques used.
@roaring-lamport Do you have any thoughts about this?
I think @infinite-loop’s answer is certainly the way to go in some cases when alternative solutions need to be considered.
However, for this particular case:
- It looks like an honest mistake, so I’d say let us call it unique (even erase the OTHERS.lst in a fix() commit, if need be) and move on.
- Even if the OP shot himself in the foot by adding OTHERS to his own challenge, this is one of the most original and interesting challenges I’ve seen in months, after seeing XSS after XSS after not fully exploit SQLi.
Uniqueness in code is based on the tuple: challenge-solution-language, not challenge-solution-language-approach.
In the other type of challenges is in the same way, challenge-solution, not challenge-solution-approach. Even if the approach is different, we currently focus on the solution of new challenges, not in solving solved challenges in a different way (approach).
If you solved a non-unique challenge by accident (OTHERs discovered after the fact), is not a problem. Let it in the repo as a solution with a new approach, and focus on a new challenge, unique in the complete sense on the word, or after a few round, another person will find the OTHER and make your solution non-unique.
That’s the beauty of evolution and time.