Via your example:

int authenticate(char* username, char* password) {
       char* buffer[500];
       if (checkAuthentication(username, password)) {
               sprintf(buffer, "User %s succesfully logged in",
                        username);
               log("%s", buffer);
               // continue with authenticated user
               return 0;
       }

       return 1;
}

I realize that a fuzzer may not be able to trigger a bug like this. I
also think a *human* couldn't either. Because (and I'm assuming)
checkAuthentication() checks username/password against a database of
valid combinations. If that is so, then how would you practically
exploit this situation? I guess you could overflow the buffer if a
username in the database of valid credentials was over 500 bytes, but
really, I don't think this is such a good example. Understood, though,
that fuzzing has its limitations (that can be fixed and applied like
everything else) when it must fulfil certain values and/or pass
certain tests before the vulnerability is triggerable.

Jeremy

On Fri, Mar 13, 2009 at 4:39 PM, ArcSighter Elite <arcsigh...@gmail.com> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Josh Dukes wrote:
>> Mr. Mustache,
>> As an emacs user I naturally have a very large beard, and as such am
>> inclined to disagree with you slightly. Though I recognize and respect
>> your facial hair, I do believe that the development of fuzzing
>> frameworks is a valid pursuit. The use of frameworks developed by
>> oneself, or one's security group would be a perfectly valid use.
>> Likewise modification and use of another person's framework I would see
>> as valid (and potentially fun). I would even suggest that it *might* be
>> valid to use someone else's fuzzing framework against one's own
>> applications to verify one's work, or to even generally fuzz in a
>> non-serious way. But I would generally agree that use of someone else's
>> fuzzing framework, without any modification or deep understanding of
>> how it work, for serious research, would be a clear misuse of fuzzing
>> technology in a generally script-kiddish fashion.
>>
>> That said, I see "Which fuzzer on this list will help me find the most
>> security exploits?" as a similar statement to "Dear leet h4x0rz, plz
>> hlp m3 h4x0r t0nz o' stuffs. thx!"
>>
>> So, Bobby, I don't wish to be rude, but please ask questions that add
>> more value to the conversation. That is to say, research first and ask
>> questions when you've exhausted your own resources. You will gain more
>> knowledge and irritate less people.
>>
>> done.
>>
>> On Fri, 6 Mar 2009 19:58:55 -0600
>> "Valdis' Mustache" <security.mustache...@gmail.com> wrote:
>>
>>> Gabby,
>>>
>>> As a general rule, I am opposed to fuzz. Those that are prebuscent and
>>> / or lack the appropriate testosterone levels to develop full and
>>> bushy facial hair should leave matters to the professionals.
>>>
>>> That said, I have been most impressed with the work of the markedly
>>> hairless Mssr. Pedram Amini and his Sulley Fuzzing Framework, located
>>> at http://www.fuzzing.org/wp-content/sulley.zip.
>>>
>>> I believe there was a Lebanese gentleman (also notably lacking in
>>> facial hair) from the NSA who created another popular fuzzing tool,
>>> but I believe it was primarily only for crashing Java applications and
>>> developing Python tutorials.
>>>
>>>
>>> Your humble servant,
>>> The vunts ja Valdis
>>>
>>> On Fri, Mar 6, 2009 at 5:47 PM,  <bobby.mug...@hush.com> wrote:
>> Dear list,
>>
>> Which fuzzer on this list will help me find the most security
>> exploits?
>>
>> Thanks,
>> -bm
>>
>> On Fri, 06 Mar 2009 18:37:01 -0500 Jeremy Brown
>> <0xjbrow...@gmail.com> wrote:
>>>>>> Don't act like you've gave any constructive advice to anyone in
>>>>>> your life.
>>>>>>
>>>>>> Thanks for trolling, please don't come again.
>>>>>>
>>>>>> On Fri, Mar 6, 2009 at 6:21 PM, Pete Licoln
>>>>>> <pete.lic...@gmail.com> wrote:
>>>>>>> Ok cool, then keep it up Jeremy.
>>>>>>> At least you wont be able to say no one told you.
>>>>>>>
>>>>>>> 2009/3/6 Jeremy Brown <0xjbrow...@gmail.com>
>>>>>>>> I consider you a loser, Pete/Julio/Loser.
>>>>>>>>
>>>>>>>> On Fri, Mar 6, 2009 at 3:03 PM, Pete Licoln
>>>>>> <pete.lic...@gmail.com> wrote:
>>>>>>>>> Well .. what i say is true.
>>>>>>>>> If you cant argue on the subject then shut the hell up.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2009/3/6 Rubén Camarero <rjcamar...@gmail.com>
>>>>>>>>>> Dont satisfy this idiot with a response, thats what he
>>>>>> likes..
>>>>>>>>>> Everybody
>>>>>>>>>> knows Petie is a troll on every list just use google
>>>>>>>>>>
>>>>>>>>>> On Fri, Mar 6, 2009 at 10:56 AM, Jeremy Brown
>>>>>> <0xjbrow...@gmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>>> The reason anyone writes a fuzzer is to find bugs. Those
>>>>>> that I have
>>>>>>>>>>> written are of course for the same purpose as the 101
>>>>>> listed: to find
>>>>>>>>>>> security bugs. Your ideas are as meaningless and unhelpful
>>>>>> as they
>>>>>>>>>>> have been in the past. You have no goal but to troll and
>>>>>> try to make
>>>>>>>>>>> people look like fools, but you are clearly the ignorant
>>>>>> one.
>>>>>>>>>>> What have you ever written? Let us see some of your code to
>>>>>> poke fun
>>>>>>>>>>> of. If it is as imperfect as you then we'd have a day of
>>>>>> fun.
>>>>>>>>>>>> What's hilarious is that none of them are usefull :)
>>>>>>>>>>> http://www.milw0rm.com/author/1531
>>>>>>>>>>> http://www.milw0rm.com/author/1835
>>>>>>>>>>>
>>>>>>>>>>> 90% of the research above were found by fuzzing, and those
>>>>>> are public.
>>>>>>>>>>> Clearly my fuzzers are useful.
>>>>>>>>>>>
>>>>>>>>>>>> You should really learn the protocol you want to fuzz, and
>>>>>> develop a
>>>>>>>>>>>> strategy before you create anything else.
>>>>>>>>>>> Although mistakes are inevitable, and seeming how the stuff
>>>>>> I write
>>>>>>>>>>> are pretty coherent to the protocol, your statements, once
>>>>>> again, are
>>>>>>>>>>> unjustifiable. The strategy is simple: gather points of
>>>>>> input, fuzz
>>>>>>>>>>> them, and watch for exceptions. Obviously.
>>>>>>>>>>>
>>>>>>>>>>>> Every fuzzer you've made use the SAME way to ""fuzz"" for
>>>>>> differents
>>>>>>>>>>>> app/protocol.
>>>>>>>>>>> Because using a fuzzing oracle is a very good way to
>>>>>> identify security
>>>>>>>>>>> bugs. Throwing random data will surely find lots of
>>>>>> programming
>>>>>>>>>>> errors, but I want a shell.
>>>>>>>>>>>
>>>>>>>>>>>> The only change i see is your last fuzzer .. written in a
>>>>>> different
>>>>>>>>>>>> language, but still the same way ...
>>>>>>>>>>> Yeah, I wrote it in C, and implemented a fuzzing oracle
>>>>>> that way. I
>>>>>>>>>>> probably put 100 hours into it, and it gave back some nice
>>>>>> return. As
>>>>>>>>>>> like the others.
>>>>>>>>>>>
>>>>>>>>>>> So, "what ever your real name is", I will continue to write
>>>>>> fuzzers
>>>>>>>>>>> and exploits. If you comments are meant to bend my attitude
>>>>>> or
>>>>>>>>>>> research rather than to troll, you don't have a chance, so
>>>>>> get on with
>>>>>>>>>>> your life and I will get on with mine. What a conclusion.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Fri, Mar 6, 2009 at 10:22 AM, Pete Licoln
>>>>>> <pete.lic...@gmail.com>
>>>>>>>>>>> wrote:
>>>>>>>>>>>> What's hilarious is that none of them are usefull :)
>>>>>>>>>>>> You should really learn the protocol you want to fuzz,
>>>>>> and develop a
>>>>>>>>>>>> strategy before you create anything else.
>>>>>>>>>>>> Every fuzzer you've made use the SAME way to ""fuzz"" for
>>>>>> differents
>>>>>>>>>>>> app/protocol.
>>>>>>>>>>>>
>>>>>>>>>>>> The only change i see is your last fuzzer .. written in a
>>>>>> different
>>>>>>>>>>>> language, but still the same way ...
>>>>>>>>>>>>
>>>>>>>>>>>> 2009/3/5 Jeremy Brown <0xjbrow...@gmail.com>
>>>>>>>>>>>>> That is hilarious LOL!
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Thu, Mar 5, 2009 at 11:14 PM, Pete Licoln
>>>>>>>>>>>>> <pete.lic...@gmail.com>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>> 11 fuzzers matchs for Jeremy Brown on this page LOL !
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 2009/3/5 Krakow Labs <krakowl...@gmail.com>
>>>>>>>>>>>>>>> Krakow Labs maintains a current list of security
>>>>>> driven fuzzing
>>>>>>>>>>>>>>> technologies.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> http://www.krakowlabs.com/lof.html
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>> Full-Disclosure - We believe in it.
>>>>>>>>>>>>>>> Charter: http://lists.grok.org.uk/full-disclosure-
>>>>>> charter.html
>>>>>>>>>>>>>>> Hosted and sponsored by Secunia - http://secunia.com/
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>> Full-Disclosure - We believe in it.
>>>>>>>>>>>>>> Charter: http://lists.grok.org.uk/full-disclosure-
>>>>>> charter.html
>>>>>>>>>>>>>> Hosted and sponsored by Secunia - http://secunia.com/
>>>>>>>>>>>>>>
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> Full-Disclosure - We believe in it.
>>>>>>>>>>>>> Charter: http://lists.grok.org.uk/full-disclosure-
>>>>>> charter.html
>>>>>>>>>>>>> Hosted and sponsored by Secunia - http://secunia.com/
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Full-Disclosure - We believe in it.
>>>>>>>>>>> Charter: http://lists.grok.org.uk/full-disclosure-
>>>>>> charter.html
>>>>>>>>>>> Hosted and sponsored by Secunia - http://secunia.com/
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Rubén Camarero
>>>>>>>>>> CCNA, CISSP
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Full-Disclosure - We believe in it.
>>>>>>>>>> Charter: http://lists.grok.org.uk/full-disclosure-
>>>>>> charter.html
>>>>>>>>>> Hosted and sponsored by Secunia - http://secunia.com/
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Full-Disclosure - We believe in it.
>>>>>>>>> Charter: http://lists.grok.org.uk/full-disclosure-
>>>>>> charter.html
>>>>>>>>> Hosted and sponsored by Secunia - http://secunia.com/
>>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Full-Disclosure - We believe in it.
>>>>>>>> Charter: http://lists.grok.org.uk/full-disclosure-charter.html
>>>>>>>> Hosted and sponsored by Secunia - http://secunia.com/
>>>>>>>
>>>>>>>
>>>>>> _______________________________________________
>>>>>> Full-Disclosure - We believe in it.
>>>>>> Charter: http://lists.grok.org.uk/full-disclosure-charter.html
>>>>>> Hosted and sponsored by Secunia - http://secunia.com/
>>>>
> - --
> Be a Certified Nursing Assistant. Get local training today.
>  http://tagline.hushmail.com/fc/BLSrjkqoiOCPCoMRK9ZgmTNsCtwOZXGIyrzJkWo3YmH0IyTAFJVy7s9Krni/
>>>>
> _______________________________________________
> Full-Disclosure - We believe in it.
> Charter: http://lists.grok.org.uk/full-disclosure-charter.html
> Hosted and sponsored by Secunia - http://secunia.com/
>>> _______________________________________________
>>> Full-Disclosure - We believe in it.
>>> Charter: http://lists.grok.org.uk/full-disclosure-charter.html
>>> Hosted and sponsored by Secunia - http://secunia.com/
>
>
> I totally agree.
> Generally speaking, whenever you use an automated tool to DO the work
> for you, instead of HELPING you to do it, you have only 1% of success in
> your task. When talking about software vulnerability research, I think
> it's pretty clear that no tool could give the level of expertise
> required to exploit an application. If you don't get a good
> understanding on how the application works (and here I'm referring to
> source code auditing and reverse engineering), if you don't know which
> are the different common patterns found in vulnerable software, if you
> don't know what is a security bug and what's a software bug, if you're
> unable to assess whether a identified vulnerability can be proven to be
> exploitable, etc, then the tool will miss you up instead of helping you,
> and IMHO I think this is the case.
> Security bugs come from bad cryptographic implementation, insecure
> storage, to buffer overflows; even in the case you're using a smart
> fuzzer which adds some knowledge (mainly protocol or file formats),
> stills you could be missing some applications paths.
> Please consider this simple stripped example (BTW, I don't remember much
> c++ from source, but it illustrates the example):
>
> int authenticate(char* username, char* password) {
>        char* buffer[500];
>        if (checkAuthentication(username, password)) {
>                sprintf(buffer, "User %s succesfully logged in",               
>                  username);
>                log("%s", buffer);
>                // continue with authenticated user
>                return 0;
>        }
>
>        return 1;
> }
>
>
> This simple code path would be missed by almost any common fuzzer,
> because the BO is in a code path which is conditional to successful
> authentication. I think it illustrates the point.
> Of course, we can -as usually done- combine it with code coverage and
> memory profiling tools, which is a common approach, but still a blackbox
> one.
> We must see fuzzing as a way to automate tasks, not to do it for us.
> We recently saw a paper about the process of identifying Adobe's embeded
>  functions and then with that list, and armored with parameters
> information,  giving that info to spike (which isn't an intelligent
> fuzzer) to perform the remaining work, in that case, as most of them,
> the "intelligence" was provided by the human, and the tool automatize it.
> So, that was the long answer, the short one: no fuzzer will allow you to
> identify/exploit vulns without the knowledge.
>
>
> Sincerely.
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
>
> iD8DBQFJusSIH+KgkfcIQ8cRAqz3AJ9GfzLDs+H9UjwfFEzBJ6SZCdo13wCfV4va
> mfA0Bb4qoFubQ9sfq2NogsA=
> =Xa7h
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> Full-Disclosure - We believe in it.
> Charter: http://lists.grok.org.uk/full-disclosure-charter.html
> Hosted and sponsored by Secunia - http://secunia.com/
>

_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

Reply via email to