KEMBAR78
Web Hacking | PPT
Chapter 12 Web Hacking Revised  5-1-09
Web Server Hacking
Popular Web Servers Microsoft IIS/ASP/ASP.NET LAMP (Linux/Apache/MySQL/PHP) Oracle WebLogic Link Ch 12j IBM WebSphere Link Ch 12k
Popularity Link Ch 12l
Link Ch 12m
Attacking Web Server Vulnerabilities An attacker with the right set of tools and ready-made exploits can bring down a vulnerable web server in minutes Some of the most devastating Internet worms have historically exploited these kinds of vulnerabilities  Code Red and Nimda attacked IIS vulnerabilities
Why the Risk is Decreasing The risk of such attacks is decreasing, because: Newer versions of Web servers are less vulnerable System administrators are better at configuring the platforms Vendor's "best practices" documents are better Patches come out more rapidly
Why the Risk is Decreasing Countermeasures are available, such as: Sanctum/Watchfire's AppShield  A Web application firewall (link Ch_12n) Microsoft's URLScan  Built in to IIS 6 and IIS 7 Link Ch_12o Automated vulnerability-scanning products and tools are available
Web Server Vulnerabilities  Sample files Source code disclosure Canonicalization Server extensions Input validation (for example, buffer overflows)
Sample files Sample scripts and code snippets to illustrate creative use of a platform In Microsoft's IIS 4.0  Sample code was installed by default  showcode. asp and codebrews.asp  These files enabled an attacker to view almost any file on the server like this: http://192.168.51.101/msadc/Samples/SELECTOR/showcode.asp?source=/../.. /../../../boot.ini  http://192.168.51.101/iissamples/exair/howitworks/codebrws.asp?source= /../../../../../winnt/repair/setup.log
Sample Files Countermeasure Remove sample files from production webservers If you need the sample files, you can get patches to improve them ColdFusion Expression Evaluator patch Link Ch 12p
Source Code Disclosure  IIS 4 and 5 could reveal portions of source code through the HTR vulnerability (link Ch 12q) Apache Tomcat and Oracle WebLogic had similar issues Attack URLs: http://www.iisvictim.example/global.asa+.htr http://www.weblogicserver.example/index.js%70 http://www.tomcatserver.example/examples/jsp/num/ numguess.js%70
Source Code Disclosure Countermeasures Apply patches (these vulnerabilities were patched long ago) Remove unneeded sample files Never put sensitive data in source code of files You can never be sure source code is hidden
Canonicalization Attacks  There are many ways to refer to the same file C:\text.txt ..\text.txt  \\computer\C$\text.txt The process of resolving a resource to a standard (canonical) name is called  canonicalization
ASP::$DATA Vulnerability Affected IIS 4 and earlier versions Just adding ::DATA to the end of an ASP page's URL revealed the source code http://xyz/myasp.asp::$DATA  Link Ch 12r
Unicode/Double Decode Vulnerabilities  Strings like %c0%af could be used to sneak characters like \ past URL filters Attack URL example: http://10.1.1.3/scripts/ ..%c0%af..%c0%af..%c0%af.. /winnt/system32/cmd.exe?/c+dir   Exploited by the Nimda worm
Canonicalization Attack Countermeasures Patch your Web platform Compartmentalize your application directory structure  Limit access of Web Application user to minimal required Clean URLs with URLScan and similar products Remove Unicode or double-hex-encoded characters before they reach the server
Server Extensions  Code libraries tacked on to the core HTTP engine to provide extra features Dynamic script execution (for example, Microsoft ASP) Site indexing Internet Printing Protocol  Web Distributed Authoring and Versioning (WebDAV) Secure Sockets Layer (SSL)
Server Extensions Each of these extensions has vulnerabilities, such as buffer overflows Microsoft WebDAV Translate: f problem  Add "translate: f" to header of the HTTP GET request, and a \ to the end of the URL Reveals source code Links Ch 12u, v
Server Extensions Exploitation Countermeasures Patch or disable vulnerable extensions The  Translate: f  problem was patched long ago
Buffer Overflows  Web servers, like all other computers, can be compromised by buffer overflows The Web server is easy to find, and connected to the Internet, so it is a common target
Famous Buffer Overflows IIS HTR Chunked Encoding Transfer Heap Overflow Affects Microsoft IIS 4.0, 5.0, and 5.1 Leads to remote denial of service or remote code execution at the IWAM_  MACHINENAME  privilege level IIS's Indexing Service extension (idq.dll) A buffer overflow used by the infamous Code Red worm Internet Printing Protocol (IPP) vulnerability
Famous Buffer Overflows Apache mod_ssl vulnerability Also known as the Slapper worm Affects all versions up to and including Apache 2.0.40 Results in remote code execution at the super-user level Apache also suffered from a vulnerability in the way it handled HTTP requests encoded with chunked encoding Resulted in a worm dubbed "Scalper" Thought to be the first Apache worm
Buffer Overflow Countermeasures Apply software patches Scan your server with a vulnerability scanner
Web Server Vulnerability Scanners  Nikto checks for common Web server vulnerabilities It is not subtle—it leaves obvious traces in log files Link Ch 12z01 Whisker is another Web server vulnerability scanner Nikto version 2 uses LibWhisker 2, so it may replace Whisker
Nikto Demonstration Scan DVL Web Server with Nikto
Web Application Hacking  Attacks on applications themselves, as opposed to the web server software upon which these applications run The same techniques Input-validation attacks Source code disclosure attacks etc.
Finding Vulnerable Web Apps with Google  You can find unprotected directories with searches like this: "Index of /admin" "Index of /password" "Index of /mail" You can find password hints, vulnerable Web servers with FrontPage, MRTG traffic analysis pages, .NET information, improperly configured Outlook Web Access (OWA) servers… And many more Link Ch 1a
Web Crawling  Examine a Web site carefully for Low Hanging Fruit  Local path information Backend server names and IP addresses SQL query strings with passwords Informational comments  Look in static and dynamic pages, include and other support files, source code
Web-Crawling Tools  wget is a simple command-line tool to download a page, and can be used in scripts Available for Linux and Windows Link Ch 12z03 Offline Explorer Pro  Commercial Win32 product
Web Application Assessment  Once the target application content has been crawled and thoroughly analyzed Probe the features of the application Authentication Session management Database interaction Generic input validation Application logic
Tools for Web Application Hacking Browser plug-ins Free tool suites Commercial web application scanners
Tamper Data Demo Vulnerable Message Board
Acts like a proxy server You can see POST data and alter it This will defeat client-side validation
JavaScript Debugger Examine and step through JavaScript
Tool Suites Proxies sit between client and Web application server, like a man-in-the-middle attack Midrosoft Fiddler can intercept and log requests and responses
WebGoat Demo
 
 
Tools for Web Application Assessment  WebScarab Allows user to intercept and alter HTTP Includes spidering and fuzzing Runs on any platform Free, from OWASP Burp Suite Proxy, Repeater, Sequencer, Spider, Intruder Powerful tool to craft automated attacks Free version is limited
Expensive Commercial Tools HP WebInspect and Security Toolkit Rational AppScan Cenzic Hailstorm
Cenzic Hailstorm Highly rated commercial Web applicaion vulnerability scanner We should have a copy to use here soon Links Ch 11o, 11p
Common Web Application Vulnerabilities
Common Web Application Vulnerabilities Cross-Site Scripting (XSS) SQL Injection Cross-Site Request Forgery (CSRF) HTTP Response Splitting
Cross-Site Scripting (XSS) Attacks  One user injects code that attacks another user Common on guestbooks, comment pages, forums, etc. Caused by failure to filter out HTML tags These characters < > &quot; & Also watch out for hex-encoded versions %3c instead of < %3e instead of > %22 instead of &quot;
Common XSS Payloads  See link Ch 12z06
Cross-Site Scripting Countermeasures  Filter out <  > ( ) # & and the variants of them HTML-encode output, so a character like < becomes &lt; -- that will stop scripts from running In IE 6 SP1 or later, an application can set HttpOnly Cookies, which prevents them from being accessed by scripts Analyze your applications for XSS vulnerabilities Fix the errors you find
Common Web Application Vulnerabilities  SQL Injection
SQL Injection Comic xkcd.org – a great comic Link Ch 11i
Automated SQL Injection Tools  Wpoison Runs on Linux  SPIKE Proxy  mieliekoek.pl SQL insertion crawler that tests all forms on a website for possible SQL insertion problems  SPI Dynamics' SPI Toolkit Contains SQL Injector that automates SQL injection testing
SQL Injection Countermeasures  Perform strict input validation Replace direct SQL statements with stored procedures, prepared statements, or ADO command objects That way they can't be modified Implement default error handling Use a general error message for all errors
SQL Injection Countermeasures  Lock down ODBC Disable messaging to clients. Don't let regular SQL statements through. This ensures that no client, not just the web application, can execute arbitrary SQL. Lock down the database server configuration Specify users, roles, and permissions, so even if SQL statements are injected, they can't do any harm
Cross-Site Request Forgery (CSRF) Hijack a session by stealing cookies We did this with hamster and ferret
HTTP Response Splitting Demonstrated earlier with WebGoat

Web Hacking

  • 1.
    Chapter 12 WebHacking Revised 5-1-09
  • 2.
  • 3.
    Popular Web ServersMicrosoft IIS/ASP/ASP.NET LAMP (Linux/Apache/MySQL/PHP) Oracle WebLogic Link Ch 12j IBM WebSphere Link Ch 12k
  • 4.
  • 5.
  • 6.
    Attacking Web ServerVulnerabilities An attacker with the right set of tools and ready-made exploits can bring down a vulnerable web server in minutes Some of the most devastating Internet worms have historically exploited these kinds of vulnerabilities Code Red and Nimda attacked IIS vulnerabilities
  • 7.
    Why the Riskis Decreasing The risk of such attacks is decreasing, because: Newer versions of Web servers are less vulnerable System administrators are better at configuring the platforms Vendor's &quot;best practices&quot; documents are better Patches come out more rapidly
  • 8.
    Why the Riskis Decreasing Countermeasures are available, such as: Sanctum/Watchfire's AppShield A Web application firewall (link Ch_12n) Microsoft's URLScan Built in to IIS 6 and IIS 7 Link Ch_12o Automated vulnerability-scanning products and tools are available
  • 9.
    Web Server Vulnerabilities Sample files Source code disclosure Canonicalization Server extensions Input validation (for example, buffer overflows)
  • 10.
    Sample files Samplescripts and code snippets to illustrate creative use of a platform In Microsoft's IIS 4.0 Sample code was installed by default showcode. asp and codebrews.asp These files enabled an attacker to view almost any file on the server like this: http://192.168.51.101/msadc/Samples/SELECTOR/showcode.asp?source=/../.. /../../../boot.ini http://192.168.51.101/iissamples/exair/howitworks/codebrws.asp?source= /../../../../../winnt/repair/setup.log
  • 11.
    Sample Files CountermeasureRemove sample files from production webservers If you need the sample files, you can get patches to improve them ColdFusion Expression Evaluator patch Link Ch 12p
  • 12.
    Source Code Disclosure IIS 4 and 5 could reveal portions of source code through the HTR vulnerability (link Ch 12q) Apache Tomcat and Oracle WebLogic had similar issues Attack URLs: http://www.iisvictim.example/global.asa+.htr http://www.weblogicserver.example/index.js%70 http://www.tomcatserver.example/examples/jsp/num/ numguess.js%70
  • 13.
    Source Code DisclosureCountermeasures Apply patches (these vulnerabilities were patched long ago) Remove unneeded sample files Never put sensitive data in source code of files You can never be sure source code is hidden
  • 14.
    Canonicalization Attacks There are many ways to refer to the same file C:\text.txt ..\text.txt \\computer\C$\text.txt The process of resolving a resource to a standard (canonical) name is called canonicalization
  • 15.
    ASP::$DATA Vulnerability AffectedIIS 4 and earlier versions Just adding ::DATA to the end of an ASP page's URL revealed the source code http://xyz/myasp.asp::$DATA Link Ch 12r
  • 16.
    Unicode/Double Decode Vulnerabilities Strings like %c0%af could be used to sneak characters like \ past URL filters Attack URL example: http://10.1.1.3/scripts/ ..%c0%af..%c0%af..%c0%af.. /winnt/system32/cmd.exe?/c+dir Exploited by the Nimda worm
  • 17.
    Canonicalization Attack CountermeasuresPatch your Web platform Compartmentalize your application directory structure Limit access of Web Application user to minimal required Clean URLs with URLScan and similar products Remove Unicode or double-hex-encoded characters before they reach the server
  • 18.
    Server Extensions Code libraries tacked on to the core HTTP engine to provide extra features Dynamic script execution (for example, Microsoft ASP) Site indexing Internet Printing Protocol Web Distributed Authoring and Versioning (WebDAV) Secure Sockets Layer (SSL)
  • 19.
    Server Extensions Eachof these extensions has vulnerabilities, such as buffer overflows Microsoft WebDAV Translate: f problem Add &quot;translate: f&quot; to header of the HTTP GET request, and a \ to the end of the URL Reveals source code Links Ch 12u, v
  • 20.
    Server Extensions ExploitationCountermeasures Patch or disable vulnerable extensions The Translate: f problem was patched long ago
  • 21.
    Buffer Overflows Web servers, like all other computers, can be compromised by buffer overflows The Web server is easy to find, and connected to the Internet, so it is a common target
  • 22.
    Famous Buffer OverflowsIIS HTR Chunked Encoding Transfer Heap Overflow Affects Microsoft IIS 4.0, 5.0, and 5.1 Leads to remote denial of service or remote code execution at the IWAM_ MACHINENAME privilege level IIS's Indexing Service extension (idq.dll) A buffer overflow used by the infamous Code Red worm Internet Printing Protocol (IPP) vulnerability
  • 23.
    Famous Buffer OverflowsApache mod_ssl vulnerability Also known as the Slapper worm Affects all versions up to and including Apache 2.0.40 Results in remote code execution at the super-user level Apache also suffered from a vulnerability in the way it handled HTTP requests encoded with chunked encoding Resulted in a worm dubbed &quot;Scalper&quot; Thought to be the first Apache worm
  • 24.
    Buffer Overflow CountermeasuresApply software patches Scan your server with a vulnerability scanner
  • 25.
    Web Server VulnerabilityScanners Nikto checks for common Web server vulnerabilities It is not subtle—it leaves obvious traces in log files Link Ch 12z01 Whisker is another Web server vulnerability scanner Nikto version 2 uses LibWhisker 2, so it may replace Whisker
  • 26.
    Nikto Demonstration ScanDVL Web Server with Nikto
  • 27.
    Web Application Hacking Attacks on applications themselves, as opposed to the web server software upon which these applications run The same techniques Input-validation attacks Source code disclosure attacks etc.
  • 28.
    Finding Vulnerable WebApps with Google You can find unprotected directories with searches like this: &quot;Index of /admin&quot; &quot;Index of /password&quot; &quot;Index of /mail&quot; You can find password hints, vulnerable Web servers with FrontPage, MRTG traffic analysis pages, .NET information, improperly configured Outlook Web Access (OWA) servers… And many more Link Ch 1a
  • 29.
    Web Crawling Examine a Web site carefully for Low Hanging Fruit Local path information Backend server names and IP addresses SQL query strings with passwords Informational comments Look in static and dynamic pages, include and other support files, source code
  • 30.
    Web-Crawling Tools wget is a simple command-line tool to download a page, and can be used in scripts Available for Linux and Windows Link Ch 12z03 Offline Explorer Pro Commercial Win32 product
  • 31.
    Web Application Assessment Once the target application content has been crawled and thoroughly analyzed Probe the features of the application Authentication Session management Database interaction Generic input validation Application logic
  • 32.
    Tools for WebApplication Hacking Browser plug-ins Free tool suites Commercial web application scanners
  • 33.
    Tamper Data DemoVulnerable Message Board
  • 34.
    Acts like aproxy server You can see POST data and alter it This will defeat client-side validation
  • 35.
    JavaScript Debugger Examineand step through JavaScript
  • 36.
    Tool Suites Proxiessit between client and Web application server, like a man-in-the-middle attack Midrosoft Fiddler can intercept and log requests and responses
  • 37.
  • 38.
  • 39.
  • 40.
    Tools for WebApplication Assessment WebScarab Allows user to intercept and alter HTTP Includes spidering and fuzzing Runs on any platform Free, from OWASP Burp Suite Proxy, Repeater, Sequencer, Spider, Intruder Powerful tool to craft automated attacks Free version is limited
  • 41.
    Expensive Commercial ToolsHP WebInspect and Security Toolkit Rational AppScan Cenzic Hailstorm
  • 42.
    Cenzic Hailstorm Highlyrated commercial Web applicaion vulnerability scanner We should have a copy to use here soon Links Ch 11o, 11p
  • 43.
    Common Web ApplicationVulnerabilities
  • 44.
    Common Web ApplicationVulnerabilities Cross-Site Scripting (XSS) SQL Injection Cross-Site Request Forgery (CSRF) HTTP Response Splitting
  • 45.
    Cross-Site Scripting (XSS)Attacks One user injects code that attacks another user Common on guestbooks, comment pages, forums, etc. Caused by failure to filter out HTML tags These characters < > &quot; & Also watch out for hex-encoded versions %3c instead of < %3e instead of > %22 instead of &quot;
  • 46.
    Common XSS Payloads See link Ch 12z06
  • 47.
    Cross-Site Scripting Countermeasures Filter out < > ( ) # & and the variants of them HTML-encode output, so a character like < becomes &lt; -- that will stop scripts from running In IE 6 SP1 or later, an application can set HttpOnly Cookies, which prevents them from being accessed by scripts Analyze your applications for XSS vulnerabilities Fix the errors you find
  • 48.
    Common Web ApplicationVulnerabilities SQL Injection
  • 49.
    SQL Injection Comicxkcd.org – a great comic Link Ch 11i
  • 50.
    Automated SQL InjectionTools Wpoison Runs on Linux SPIKE Proxy mieliekoek.pl SQL insertion crawler that tests all forms on a website for possible SQL insertion problems SPI Dynamics' SPI Toolkit Contains SQL Injector that automates SQL injection testing
  • 51.
    SQL Injection Countermeasures Perform strict input validation Replace direct SQL statements with stored procedures, prepared statements, or ADO command objects That way they can't be modified Implement default error handling Use a general error message for all errors
  • 52.
    SQL Injection Countermeasures Lock down ODBC Disable messaging to clients. Don't let regular SQL statements through. This ensures that no client, not just the web application, can execute arbitrary SQL. Lock down the database server configuration Specify users, roles, and permissions, so even if SQL statements are injected, they can't do any harm
  • 53.
    Cross-Site Request Forgery(CSRF) Hijack a session by stealing cookies We did this with hamster and ferret
  • 54.
    HTTP Response SplittingDemonstrated earlier with WebGoat