Fuzzing Toolkit For Web Server Testing
prostoalex writes "Dr. Dobb's Journal runs an article discussing the tools necessary for fuzzing (testing a system by generating random input in order to cause program failure or crash). Quoting: 'You are fuzzing a Web server's capability to handle malformed POST data and discover a potentially exploitable memory corruption condition when the 50th test case you sent that crashes the service. You restart the Web daemon and retransmit your last malicious payload, but nothing happens... The issue must rely on some combination of inputs. Perhaps an earlier packet put the Web server in a state that later allowed the 50th test to trigger the memory corruption. We can't tell without further analysis and we can't narrow the possibilities down without the capability of replaying the entire test set in a methodical fashion.'"
This is like using a bump key - hit a lock with random impacts and it opens. Spew enough garbage at a program and it will probably die. Eat enough food you find on the ground and you will probably get sick. Other than getting the +1, Obvious award, whats the point?
I want to delete my account but Slashdot doesn't allow it.
The concept seems to be a sound one. Sending random input to your web service in a repeatable fashion, but are the tools intuitive? Do they detect the different systems you are running? (ie. an Internet Posting Board) Do they keep track of recent exploits in the wild?
How about some Paris Hilton stories instead?
Paris Hilton has Boooobieeees!
And here are the pictures!
Slashdot. News For Nerds.
Affirmative.
-
- - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
Any program that does this sort of testing should use a good pseudorandom number generator with a very large period and a manually-specifiable seed. If it logs where it's at in the sequence, it makes it easy to repeat a series of tests. Good generators are easy to build - use a big Linear Feedback Shift Register and SHA or MD5 hash the output.
Too bad cmpnet can't host sites. I never made it past all their interstitial ad and popup junk.
I'm sure the article talks about this in spades. If only we were to read it.
The World Wide Web is dying. Soon, we shall have only the Internet.
Yes, you can tell by experts eyeballing the code. Granted, this might be far more work than automated testing, but it's not like testing is the only way to isolate bugs.
isn't the answer in the summary, that you obviously have it record the input as it goes, so you can literally back up and repeat any given random scenario? Without this capability, it would be like having a 3-year old bash away at the keyboard, they're just as unable to repeat anything.
stuff |
A web application should be cleaning up after each transaction to arrive at a safe state; why wouldn't a web server do the same? If it doesn't, it should.
But not quite good enough. Nowhere near in fact.
At CanSecWest last year, HD Moore and a student took an hour to hack together a fuzzer that found over fifty flaws in Internet Explorer. http://www.securityfocus.com/news/11387
Think about that. Two person-hours work, that leads directly to the discovery of fifty flaws. That's pretty impressive for a released product that's supposedly had a great deal of scrutiny. There are few other techniques that could discover flaws as rapidly.
The simple thing is, fuzzing is one of the cheapest things to do with one of the highest yields in bugs. Moore noted:
The idea of using a pseudo-random number generator with a known seed is good, but fuzzing is better if you actually work it so as to try and give increased code coverage (as the article notes). So rather than just spew purely "random" stuff, set up a handshake properly for a particular type of protocol, that will likely take you down a particular code path, and then go into 'random world'.
Indeed, because of the ease, I'd guess a lot of black-hat work these days is fuzzing-based, and then examining the results carefully, discovering specific vulnerabilities, and then trying to weaponize them.
who the hell is Captain Taco, and why would I care if he is censoring us?
Do not attribute to malice that which can be easily explained by incompetence.
OMG PONIES!
Horns are really just a broken halo.
Paris Hilton found God in prison, and will only be showing those from now on if it somehow leads to her curing cancer,
Liberte, Egalite, Fraternite (TM)
Is it just me or does it some obvious that you could just dump the stream then use tcpreplay to send the stream back and anaylze the packets it is sending to the webserver? Pick intervals and ranges of packets send them and see what the webserver does. That seems like a pretty straight forward way to narrow down what is going on.
You are talking about IE6. That website is talking about something dated 2004! It's 2007 and IE7 has been out for a while.
You don't know what you don't know.
The thing that irritates me most are the sites that have 5,478 *different* links. Even on broadband, they take tens of seconds, sometimes over a minute, to load. I'd like one *standard* test to be that they try surfing, like 50% of the US public does, on dialup.
I won't even start on the idiots who have no compression on their cameras, and put jpgs up on their Websites that are over a meg....
mark
I do what to servers?....
Ya, and people should always wear their seatbelts, never drink and drive, and floss everytime they brush their teeth; Yet, the majority of humans fail to abide by these 3 simple "should haves".
Maybe you should write a howto covering how you think a web server should behave, and then proceed to write your own implementation from scratch (for my network programming class I had to do this, in C++ with my own sockets library).
Oh, and nevermind the fact that the web server may not have any state information.
I'm sure you're just another troll or BOFH wannabe anyways.
c'ya and good luck, buck.
--
wi-fizzle research, straight outta oakland
Censorship is obscene. Patriotism is bigotry. Faith is a vice. Slashdot 2.0 sucks.
We've been doing this in "Performance Tester Land" for as long as there have been multi-user applications. Thing is, we actually do it rather systematically and against various application layers. I guess takes some folks a while to realize that the wheel has probably already been invented and that maybe it makes sense to talk to some of the folks who are using/building wheels to help evolve the wheel instead of starting over again... and again... and again... and....
Scott Barber
Chief Technologist, PerfTestPlus
Executive Director, Association for Software Testing