Thursday, March 1, 2012

What a Tangled Web!

We have just started a unit on hardening Web applications.  You will need to learn how to identify what the vulnerabilities are and how to remember the difference between them. So to get a start on this topic, the assignment this week is to find a website that gives a good explanation on one of these topics:
  • Buffer Overflow
  • CGI Script
  • Java applets
  • Java Script
  • Active X
  • Cross-site Scripting
You can post a link to a text article OR a video - as long as it really helps our understanding of the topic.  Write a 3 sentence summary of the content in your link.
My post for this week is on Buffer Overflows. The Wired website has a cool cartoon animation of how good code should accept limited input and then discard any extra. It then shows what happens when bad code allows for a buffer overflow that corrupts operating code.  http://www.wired.com/threatlevel/2009/03/conficker-how-a/
Enjoy!

7 comments:

Michael Harran said...

http://www.windowsecurity.com/articles/analysis_of_buffer_overflow_attacks.html

This article helps you to better understand buffer overflow attacks. A buffer overflow happens when a program puts in more data then it can hold. An attacker can then execute their code instead of the code that had been processed. Program written in c language are usually the ones that are the most targeted because of its security flaws.

Unknown said...

http://www.net-security.org/dl/articles/xss_anatomy.pdf

This article discusses cross-site scripting, or XSS attacks in detail. It's an extensive read but really helps you to understand how it works. There are many ways to perform XSS attacks, some easy and noticeable, some harder and less visible. However, in most cases tracing the attacker is very difficult. Most commonly, attackers redirect users to a site of their choice or capture a victim's cookies on an authentication site to acquire credentials. Cross site scripting is very similar to buffer overflows and SQL injections: some attacks inject script to overwrite other code in order to execute their own, while some take advantage of user input fields in which no checks are made on the incoming data, allowing an attacker to execute special code or place unwanted HTML. These types of attacks are common and very lethal, but only take little time to mitigate.

Anonymous said...

http://www.phrack.org/issues.html?issue=49&id=8

My article talks about CGI Scripts and their vulnerabilities. CGI is a specification that allows communication between client programs and information servers through HTTP. CGI basically allows people to exploit the vulnerabilities of HTTP, FTP, and Telnet. You can use CGI to read files, access shells, or corrupt file systems. CGI scripts' main weakness is insufficient input validation. Basically, CGI scripts are like a gateway to other vulnerabilities.

Ryan McVeety said...

http://projects.webappsec.org/w/page/13246920/Cross%20Site%20Scripting

This article is on cross site scripting, or XSS attacks. It discusses the three major types of attacks: persistent, non-persistent, and DOM-based. Non-persistent and DOM-based attacks require the victim to click on a malicious link, which means the attacker would need to do some social engineering. Persistent attacks, however, are much scarier because they do not rely on social engineering, and are therefore much harder to defend against. Luckily, these attacks are very easy to defend against, simple input filtering can solve most if not all XSS attacks.

Phil said...

http://www.computerworld.com/s/article/82920/Buffer_Overflow

This article explains Buffer Overflows and the causes of it. In a computer when you store data it goes into a temporary storage area called a buffer. These can overflow with data. Programs assume that the data will fit in the area that it was assigned to but it doesn't always fit. Operating systems use buffers called stacks to temporarily store data between operations. Stacks can also overflow.When too much data is put into the buffer the excess data is written immediately into the area of data. Whatever is put there is overwritten and destroyed. That is the problem. Buffer overflows occur from bad programming. If a program doesn't check for overflow a buffer overflow can happen at any time. Some programming languages are immune to buffer overflows or better fit against them than others like C++. People who write viruses and trojans have preferred to use buffer overflows as their attack method. They can use buffer overflows to tell the computer to damage files, change data, or even create a trap door. Basically programmers need to be smart and write and review their codes correctly and thoroughly so there are no mistakes.

Tom said...
This comment has been removed by the author.
Tom said...

http://www.cert.org/blogs/certcc/2008/06/signed_java_security_worse_tha.html

This Article explains the vulnerabilities of Java applets, and goes even as far as stating that They may be worse than Active X vulnerabilities.But the main concerns about Java Applets are that the option to check "Always trust content from this publisher" is checked by default, this is a huge hazard, because up and coming infectious code can bypass the certificate check and use an actual valid certificate and look like a normal file, even though in truth it's a virus or some other malicious attack.