Slashdot Mirror


Web Hacking: Attacks and Defense

zenomorph writes: "I first heard of this book on amazon.com on a Monday morning, and read the reviews of people who had purchased this book. I noticed that there were no reviews from any person in the web security community had commented on it, either on Amazon or anywhere else (with the exception of two brief comments on the back of the book, of which one was written by the person who wrote the book's foreword). So I decided to pick it up on Friday after I left work and see what it had to offer. After picking up the book I noticed it was co-authored by three people who all work for Foundstone, a very large security company that deals with everything (including web security). This review will cover some of the topics covered in this book, along with things that could or should have been covered in greater detail." Read on for the rest of zenomorph's review. Web Hacking: Attacks and defense author Stuart McClure, Saumil Shah, and Shreeraj Sha pages 492 publisher Addison-Wesley rating 8 reviewer zenomorph ISBN 0201761769 summary Web Application Hacking

Target audience: This book is geared more towards beginners and intermediate users, with a few things the more advanced people will enjoy. It explains concepts and practical examples in an easy to understand manner. Pros:

One portion of the book covered a topic which is rarely mentioned and almost never documented in security texts, which is ASP (Active Server Pages). This primarily covered security involving databases handling and login information. Another rarely documented subject this book covered was ISAPI application security. Additional good points below:

  • Good examples of the types of commands an attacker will execute when remote command execution is possible. Also had a nice little attack fingerprint reference in the back. (Appendix D Page 462)

  • General Tips and tricks for fingerprinting a web server, and database versions. (pages 182-194) Provides this information based on error messages and URL structure.

  • Chapter 12 covers remote command execution threats with Java and Java servers. Definably a book highlight. Not too much documentation currently exists on this ever-growing web technology.

  • Chapter 14 covers buffer overflows in a very easy to understand manner; something not easily accomplished for the less tech-savvy. It also walks through a complete example of bad code, to writing and executing the exploit.
  • One nice section is the "Cheat Sheet" towards the back of the book which provides the most common improperly used functions in ASP, PHP, Java, and Perl. I did notice it left out the ever popular fopen() function in PHP, which is very popular for attackers to exploit when improperly used (Code inclusion attacks).

  • Shows good practical examples of attackers using search engines to help further probe a site.

  • Covers SQL and Oracle security. (Direct, and Injection based attacks)

  • Web Application server security was covered with examples on BEA Weblogic, and Websphere.

  • Provides good examples of using tools such as Netcat, Sam Spade, Teleport Pro, Black Widow, Webcracker, Brutus, Achilles, Cookie Pal, etc.

  • Coveres the threats of Internet worms,including the effect on the Internet of Nimda, and Code Red. Gave details of what exactly they did, and how they could spread.

  • Chapter 17 is a treat. Covers how attackers avoid IDS systems through the use of SSL, and URL encoding (such as Unicode, 2-byte, 3-Byte, and double encoding.) Also covers how to set up an IDS on SSL via reverse proxies.

Cons: This book was released in August of 2002, but I couldn't find any reference to cross-site scripting. Cross-site scripting isn't a new type of attack. In fact, it has been around since the late 1990's. More gripes below:
  • The authors have a tendency to include snippets from IRC conversations. While it's explaining how hackers communicate during attacks I found it a little lame. I'd rather they had mentioned some "hacker" channels, or something along those lines.

  • Neither cookie theft nor poisoning is mentioned, while cookie modification is.

  • I went to the back of the book hoping to gather some good references for further reading and only got a small links section showing 6 links, none of which where technical documents but instead general web links.

  • Web application abuse and spamming aren't covered at all, which is something very important and an ever-growing option for spammers.

  • No references to XML-RPC or SOAP were found but the athors do briefly mention Microsoft's .NET technology without providing any code examples.

  • Lack of web application wrappers and security. CGIWrap and Suexec aren't mentioned anywhere. Nothing about chrooting webservers, or applications for additional security were found.

  • Apache's "Tomcat" server isn't mentioned anywhere, with the exception of an exploit mentioned in Appendix D. (Source Code, File, and Directory Disclosure Cheat sheet)

  • Not a big complaint but it would have been nice if Python or TCL were covered.

Closing:

On a scale of one to ten I give this book an eight. This review was written to give you an idea of the contents, or lack thereof. Perhaps this will help you to decide if this book is what you're looking for, or a waste of time.

You can purchase Web Hacking: Attacks and Defense from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

17 of 126 comments (clear)

  1. FUD by Anonymous Coward · · Score: 5, Interesting

    There are, within the "security
    industry" (whatever that means) people who-- intentionally or
    unintentionally-- sell their customers short. The people create a false
    aura of security wherever they pass, and are unwilling or incapable of
    expanding their capabilities.

    Scanning a network doesn't make it secure, but we've all run into people
    who think it does-- including people who should know better.

    I've long advocated (and tried to design) systems (not just hardware,
    but software and business practices) that *fail well*. Systems designed
    not to be unbreakable-- a fool's pursuit, to be sure-- but to contain
    the inevitable breach. Systems that fail in known modes, so that the
    consequences of an intrusion are known ahead of time, and steps can be
    taken based on that knowledge. Systems that don't eliminate risk, but
    manage risk.

    Unfortunately, most customers aren't interested because systems like
    this are expensive. They're hard to design, hard to build, hard to
    maintain, and require profound knowledge of the components and the
    activities that use them. It's a hard sell, especially when those less
    educated self-labeled experts (and vendors) are pushing silver bullets
    in the form of yet another certification, yet another scanner, yet
    another training course.

    I could be wrong, but I see the current upwelling of vitriol directed at
    these people. They are truly living off the labor of others, and
    providing little of use to anyone, including their customers. But
    they're not everyone.

    1. Re:FUD by extagboy · · Score: 5, Insightful

      Scanning a network doesn't make it secure, but we've all run into people
      who think it does-- including people who should know better.


      I agree that scanning a network doesn't make it secure but rather it is the first step in identifying where it is insecure. It's an important step that should not be overlooked. As far as the book goes, anything to help people realize that security is important is a good thing.

    2. Re:FUD by RagManX · · Score: 4, Insightful
      I agree that scanning a network doesn't make it secure but rather it is the first step in identifying where it is insecure.

      Well, actually, it isn't a first step. The first step is reviewing policies. If no policies are in place, knowing what is secure or insecure is almost irrelevent. Once you've analyzed the policies, go over what is missing, clarify what is unclear, ensure that what is required is sensible, and work through everything to make sure the policy is clear and enforced.

      Now, once you know what is and isn't allowed, you might want to scan and see what's there. Remember, just because something is a potential vulnerability doesn't mean it has to be changed. A cost/risks analysis may have been done with the determination that a given "hole" has sufficient reward to justify the risk. But until you've gone over the policies and reviewed the business reasons for any given service, you can't determine if it is a hole or not.

      RagManX
  2. Get ... by NWT · · Score: 5, Funny

    ... THIS!

    --
    Life sucks.
  3. at least you weren't hasty... by dAzED1 · · Score: 5, Insightful

    "So I decided to pick it up on Friday after I left work and see what it had to offer...This review will cover some of the topics covered in this book, along with things that could or should have been covered in greater detail"
    Ok, so its a 492 page technical resource, and you just *bought* the book 5 days ago?
    Is it possible that maybe you missed some things?
    I mean, I can read a good 500 page novel in a day or two, but I don't think I'd give a review on a technical book I just bought 5 days ago. Maybe that's just me.

    1. Re:at least you weren't hasty... by angst_ridden_hipster · · Score: 4, Funny

      I've spent a lot of time and a lot of money on technical books. In order to save time and money, I've developed a rough analysis approach that will assess the quality of a technical book without having to read the whole thing before buying.

      In general, if you go into one of the large, corporate McBooks outlets, and scan the technical titles, the following analysis will vet a 95% or better evaluation rate:

      1. Font size. Inversely proportional to quality of the text.

      2. Screen shots. Quality of the text is inversely proportional to the total area dedicated to screen shots. Windows dialog boxes count as double their physical area.

      3. Quick Reference Icons. Sometimes the author feels necessary to come up with special icons which will be placed on a page to show you what's important. The quality of the book is inversely proportional to the number of these icons multiplied by the size of the icons.

      4. Index. The quality of the book is proportional to the number of serious entries in the index. If there are less than five humorous entries, these humorous entries may be included in the above count. If there are more than ten humorous entries in the index, each should be considered as reducing the "serious" count by 10%.

      5. Included stuff from the 'net. The quality score for the book is reduced for each appendix which merely includes reprints of stuff that's readily available online. Extra points off for reprinting publically available APIs. If I was going to code in an offline environment, I might want this, but I'm not going to code without a net connection.

      Follow this system, and you won't be ripped off again!

      --
      Eloi, Eloi, lema sabachtani?
      www.fogbound.net
  4. Heh... by $0+31337 · · Score: 5, Funny

    The authors have a tendency to include snippets from IRC conversations. While it's explaining how hackers communicate during attacks I found it a little lame. I'd rather they had mentioned some "hacker" channels, or something along those lines.

    I didn't realize that hacker communication was that interesting, even during an attack. Heh... It could be kind of funny I suppose if the "hackers" were script kiddies.

    Hacker #1: D00Zs! I just hax0red this windoze box!
    Hacker #2: No way! Fuckin' Awesome guy!
    Hacker #1: YeAh, I woulda Hax0red more but mom made me go to bed
    Hacker #2: Damn, That be harsh.

  5. Problems with reviews. by FreeLinux · · Score: 5, Insightful

    The problem I have with these reviews and those that are found on Amazon, is that there is no context for the review. Specifically, what's great to you might suck to me. We have no knowledge of the reviewers skill level or experience.

    It would be far better if the reviewers would give a little background information about themselves, along with the review.

    What is Zenomorph's skill level? How long have they worked in this field? What related hardware and software are they proficient with? What other books on the subject has this person read and what was their opinion of those books? Without this information the review carries no more weight than one from Jon Katz.

  6. Re:The truth about security by Second_Derivative · · Score: 4, Insightful

    It's a simple fact that 95% of "attacks" are quite harmless game-playing by "script kiddies", against which there's no need to defend.

    Last I checked having some HTML file written in FrontPage saying "j00 h4v3 b33n 0wnz0r3d" in red on black where your index page is supposed to be doesn't do wonders for your company's reputation.

  7. whisker by Anonymous Coward · · Score: 5, Informative

    "Chapter 17 is a treat. Covers how attackers avoid IDS systems through the use of SSL, and URL encoding (such as Unicode, 2-byte, 3-Byte, and double encoding.) Also covers how to set up an IDS on SSL via reverse proxies."

    Ummm... here is a free version of that information. Very thorough, and it is by RFP the writer of whisker.

  8. Updated Aliens script by mav[LAG] · · Score: 5, Funny

    Hudson Is this going to be a standup job sir, or just another bug-hunt?

    Gorman: All we know is there's still no contact with the colony's Web server. In the meantime I want you all to look at this book on Web security. It's just been reviewed by zenomorph.

    Apone: Excuse me sir - who?

    Gorman: zenomorph.

    Hicks (aside to Hudson) It's a bug hunt.

    --
    --- Hot Shot City is particularly good.
  9. Re:"Security" books by slutdot · · Score: 4, Insightful

    Hiding the information from the general public doesn't do any good either. You know how everyone keeps bashing MS for not disclosing holes, it's the same thing with not wanting to publish info on how to hack a system. A capable system administrator will take this info and secure their boxes against the holes published in these books. They are just too busy to be looking for such obscure information as finding holes in software. These books provide valuable insight from people who are working in the field and as a security administrator for a rather large company, I place high value in these books.

  10. You slow learner by Pac · · Score: 5, Funny

    So you haven't yet managed the modern learning techiques available? How do you expect to find or keep your job if you can't extract all useful content from a book by perusing the index and reading two or three careful selected pages plus the command reference table at Apendix A? I am really concerned about your future, mister, really concerned. Clearly you wouldn't have survived for a day during the dot.com boom. What if the economy becomes irrationaly exuberant again? What will you do when they discover you can't learn Magic Bullet v10.3 in two hours and have a presentation for marketing to give the client by the end of the day?

  11. Since when is Amazon an authority? by viper21 · · Score: 5, Insightful

    I find it quite interesting that you assume that any people of note should bother submitting a review to Amazon.com if they have something to say about a book. If I were going to take the time to write a professional review of a book, I'm sure that I would have it published somewhere that I would get good exposure and receive compensation for my time.

    Maybe you would like to take a look at Web Security, Privacy & Commerce, 2nd Edition from OReilly (I have no connection w/ this link or this book).

    Or maybe you could figure out where the Web Security zealots hang out. I bet they've talked about the book there, if it has any merit of note.

    If you expect anything besides rehashes of the books TOC on the Amazon.com review system, you're going to be disappointed most of the time.

    -S

  12. I've taken a class from these guys by El+Volio · · Score: 5, Informative

    I took the Foundstone "Ultimate Hacking" course a few months ago, and some of these guys were on the team who taught it. While I can't speak to the book itself, not having read it, the authors themselves were very knowledgeable and authoritative in their fields. I expect that the information in this book should (hopefully) be of the same caliber.

    --

    "You can never have too many elephants on your team."

  13. Translation: by PFactor · · Score: 5, Funny

    I wrote all that stuff from scratch asshole

    I pulled this out of my ass.

    In addition I have run hack proof distributed-load-web servers for over 5 years, on macs.


    I have a website that nobody's ever visited.

    You are a closed minded linux lover who hates FACTS that show that NO MAC HAS EVER BEEN EXPLOITED!


    I am bigoted against linux users. Plus, I firmly believe that shouting makes my arguments more persuasive.

    EVER.

    Sometimes I use complete sentences.

    --
    Don't believe anything I say. I crash test crack pipes for a living.
  14. Re:The book is a sham! Ignores secure-OS webserver by 0x0d0a · · Score: 4, Informative

    Dammit, troll instead of funny? C'mon, have a heart -- the guy was funny.

    Oh, well. Here we go.

    It's a concrete fact that no MacOS based webserver has ever been hacked into in the history of the internet.

    Heh

    The MacOS running WebStar and other webservers as hs never been exploited or defaced, and are unbreakable based on ample historical evidence

    It's easy to write a secure webserver. It's a little harder to write one that does useful work *and* is secure. I can write a secure webserver in an afternoon. Start adding on forums or something worthwhile to a WebStar server and you'll see security holes.

    That is why the US Army gave up on MS IIS and got a Mac for a web server

    The Army dropped IIS because it's a bug-laden insecure piece of shit that's been responsible for more break-ins than any other piece of software in the history of mankind. That doesn't mean that Mac OS based webservers are ideal, mate.

    I am not talking about FreeBSD derived MacOS X (which already had more than 30 exploits and potential exploits in BugTraq) I am talking about current Mac OS 9.x and earlier which are highly sophisticated abstract-OS models.

    Ah, yes. Classic Mac OS. No memory protection, if my memory of 7.x days serves me well. An exploit of the server is an exploit of the whole machine. No chroot.

    Why is it hack proof?

    Hehe

    No command shell. No shell means no way to hook or intercept the flow of control with many various shell oriented tricks found in Unix or NT. Apple uses an object model for process to process communication that is heavily typed and "pipe-less"

    You're talking about command line arguments? Doesn't have anything to do with piped communication.

    No root user. All mac developers know their code is always running at root. Nothing is higher (except undocumented microkernel stuff where you pass Gary Davidians birthday into certain registers and make a special call). By always being root there is no false sense of security, and programming is done carefully.

    Yeah, I did development on System 7.x for a while. It does teach you to be damn careful with those pointers -- crash "Damn, gotta reboot so I can change one line, recompile, and try again!". I don't buy it.

    Pascal strings. ANSI C Strings are the number one way people exploit Linux and Wintel boxes. The mac avoids C strings historically in most of all of its OS. In fact even its roms originally used Pascal strings. As you know pascal strings are faster than C (because they have the length delimiter in the front and do not have to endlessly hunt for NULL) but the side effect is less buffer exploits. Individual 3rd party products may use C sings and bind to ANSI libraries, but many do not. In case you are not aware of what a "pascal string" is, it usually has no null byte terminator

    Pascal strings are a fucking archaic scheme dating from times when you statically allocated 255 byte strings and then had a size byte to tell you how much you were actually using. They cap you at 255 bytes. You can do bounds-checked arrays in C, just as you can in Pascal. Not everyone does so, but the same applies to the Mac and Pascal strings, as you pointed out. Furthermore, using UNIX or Windows doesn't mean that you have to use C/C++. In the GNU Compiler Collection alone, you have Java, fortran 77, objective C (*cough* like MacOS X), and Ada support, all of which have bounds-checked strings.

    Macs running Webstar have ability to only run CGI placed in correct directory location and correctly file "typed" (not mere file name extension). File types on macs are not easily settable by users, especially remotely. Apache as you know has had many problems in earlier years preventing wayward execution.

    Yeah? And UNIX has an executable bit. If someone can get it and flip permission bits and rename files, the chances are pretty good that they can change file types.

    Macs never run code ever merely based on how a file is named. ".exe" suffixes mean nothing! For example the file type is 4 characters of user-invisible attributes, along with many other invisible attributes, but these 4 bytes cannot be set by most tool oriented utilities that work with data files. For example file copy utilities preserve launchable file-types, but JPEG MPEG HTML TXT etc oriented tools are physically incapable by design of creating an executable file. The file type is not set to executable for the hacker's needs. In fact its even more secure than that. A mac cannot run a program unless it has TWO files. The second file is an invisible file associated with the data fork file and is called a resource fork. EVERY mac program has a resource fork file containing launch information. It needs to be present. Typically JPEG, HTML, MPEG, TXT, ZIP, C, etc are merely data files and lack resource fork files, and even if they had them they would lack launch information. but the best part is that mac web programs and server tools do not create files with resource forks usually. TOTAL security.

    This is why every communication program for the Mac supports MacBinary. If you can upload something to the system, you can pretty assuredly toss a resource fork up.

    Stack return addresses positioned in safer location than some intel OSes. Buffer exploits take advantage of loser programers lack of string length checking and clobber the return address to run their exploit code instead. The Mac compilers usually place return address in front or out of context of where the buffer would overrun. Much safer.

    Take a look at the first link on this Google search. Secure or not?

    There are less macs, though there are huge cash prizes for cracking into a MacOS based WebStar server (typically over $10,000 US)

    This happened *once*, laddie buck.

    Less macs mean less hacker interest, but there are MILLIONS of macs sold, and some of the most skilled programmers are well versed in systems level mac engineering and know of the cash prizes, so its a moot point, but perhaps macs are never kracked because there appear to be less of them.

    Some of the most skilled programmers are systems level Mac coders? I mean, it's not *impossible*, but is there a Archangeli or a Cox in the MacOS world? If there is, they likely work for Apple and aren't out trying to break into web servers.

    But some huge high performance sites use load-balancing webstar.

    Why should you *not* use a classic Mac for a high-powered server?

    Let's see. If we have more than one process doing anything on the system, we run into the complete lack of preemptive multitasking. If an administrator is doing something at the console, everything except for interrupt-driven crap stops cold. Bit of an issue. There's the lousy VM in the classic Mac OS. HFS/HFS+ is not the most impressively high performance filesystem ever. Caching in the classic Mac OS sucks.

    Classic Mac OS was designed to be a workstation. Servers were not in the mind of the designers at all. That doesn't matter -- it makes a fine workstation for many people. But pimping it as a server is silly.

    MacOS source not available traditionally, except within apple, similar to Microsoft source only available to its summer interns and engineers, source is rare to MacOS. This makes it hard to look fo rprogramming mistakes, but I feel the restricted source access is not the main reasons the MacOS has never been remotely broken into and exploited.

    So by your logic, there should be no IIS exploits.

    Sure a fool can install freeware and shareware server tools and unsecure 3rd party addon tools for e-commerce, but a mac (MacOS 9) running WebStar is the most secure web server possible and webstar offers many services as is

    People who install Apache are fools? ...other than that event ages ago in 1995, no mac web server has ever been...scanned...

    I really hate to break this to you, but you're in error here.

    I think its quite amusing that there are over 200 or 300 known vulnerabilities in RedHat over the years and not one MacOS 9.x or older remote exploit hack. There are even vulnerabilities a month ago in OpenBSD! Each month vulnerabilities in XP arise.

    Those 200 to 300 vulnerabilities you list are *local* exploits, you idiot. Classic Mac OS doesn't list those because by using the computer you are engaging in one giant exploit...able to read other users files and whatnot. If Apple was as ambitious as Red Hat is, they'd be listing "local vulnerabilities" as well. Apple doesn't go out of their way to point out holes that they *do* have. Furthermore, Red Hat ships with *servers* to exploit. The Mac OS doesn't *do* anything out of box as regards serving, so there isn't much to exploit. If you don't care about doing anything, an off computer is even more secure.

    BTW, I distinctly remember Apple never shipping a free update to Open Transport to fix some vulnerabilities in the TCP implementation for those of us with System 7.5.x. That *is* attackable.