360 likes | 385 Views
Explore how firewalls are unable to prevent various web hacking techniques, such as URL interpretation attacks, input validation attacks, and SQL query poisoning. Discover the limitations of firewalls in defending against modern web application vulnerabilities.
E N D
One-Way Hacking:Futility of Firewalls in WebHacking JD Glaser, Saumil Shah Foundstone Inc.
Typical Web Application set-up SQL Database HTTP request (cleartext or SSL) Firewall Web Client Web Server Web app DB Web app DB Web app Web app HTTP reply (HTML, Javascript, VBscript, etc) • Apache • IIS • Netscape • etc… • Plugins: • Perl • C/C++ • JSP, etc • Database connection: • ADO, • ODBC, etc.
Traditional Hacking…Limitations • Modern network architectures are getting more robust and secure. • Firewalls being used in almost all network roll-outs. • OS vendors learning from past mistakes (?) and coming out with patches rapidly. • Increased maturity in coding practices.
Utility of Firewalls • Hacks on OS network services prevented by firewalls. Web Server Web app DB Web app DB Web app Web app wu-ftpd X Sun RPC X NT ipc$ X
Utility of Firewalls • Internal back-end application servers are on a non-routable IP network. (private addresses) Web Server Web app DB Web app DB Web app Web app X
Utility of Firewalls • Outbound access restricted. Why would a web server telnet out? Web Server Web app DB Web app DB Web app Web app X
Futility of Firewalls • E-commerce / Web hacking is unfettered. • Web traffic is the most commonly allowed of protocols through Internet firewalls. • Why fight the wall when you’ve got an open door? • HTTP is perceived as “friendly” traffic. • Content/Application based attacks are still perceived as rare.
The Web Hacker’s Toolbox Essentially, all a web hacker needs is … • a web browser, • an Internet connection, • … and a clear mind.
Firewalls cannot prevent… Web Client Web Server • URL Interpretation Attacks. web server mis-configuration
Firewalls cannot prevent… Web Client Web Server Web app Web app Web app Web app • Input Validation attacks. URL Interpretation attacks poor checking of user inputs
Firewalls cannot prevent… Web Client Web Server Web app DB Web app DB Web app Web app • SQL Query Poisoning URL Interpretation attacks Input Validation attacks Extend SQL statements
Firewalls cannot prevent… Reverse-engineering HTTP cookies. Web Client Web Server Web app DB Web app DB Web app Web app • HTTP session hijacking. • Impersonation. URL Interpretation attacks Input Validation attacks SQL query poisoning
The URL as a cruise missile http: // 10.0.0.1 / catalogue / display.asp ? pg = 1 & product = 7 Web Server Web app DB Web app DB Web app Web app
Web Hacks - net effects Web Hacks cause three types of effects: • Extra information disclosure. (paths, etc.) • Source code and arbitrary file content disclosure. • Extra data disclosure (e.g. return all rows) • Arbitrary command execution.
The Web Hacker’s Toolbox Some desired accessories would be … • a port scanner, • netcat, • vulnerability checker (e.g. whisker), • OpenSSL, … etc.
Hacking over SSL • Some SSL Myths: • “We are secure because we use SSL!” • “Strong 128 bit crypto being used” • “We use Digital Certificates signed by VeriSign”
Hacking over SSL • Using netcat and OpenSSL, it is possible to create a simple two-line SSL Proxy! • Listen on port 80 on a host and redirect requests to port 443 on a remote host through SSL. SSL web server web client nc openssl
Use the Source, Luke • Source code disclosure may reveal any flaws in the application design. • Can be used to retrieve application configuraiton files. • e.g. global.asa, etc.
Source Code Disclosure • WebLogic / Tomcat example:
Source code disclosure • IIS +.htr example:
SQL Query Poisoning • Poor input validation on parameters passed to SQL queries can be disastrous. • For example: Dim sql_con, result, sql_qry Const CONNECT_STRING = "Provider=SQLOLEDB;SERVER=WEB_DB;UID=sa; PWD=xyzzy" sql_qry = "SELECT * FROM PRODUCT WHERE ID = “ & Request.QueryString(“ID”) Set objCon = Server.CreateObject("ADODB.Connection") objCon.Open CONNECT_STRING Set objRS = objCon.Execute(strSQL)
SQL Query Poisoning • Return all rows: http://10.0.0.3/showtable.asp? ID=3+OR+1=1 • Resultant query: SELECT * FROM PRODUCT WHERE ID=3 OR 1=1
SQL Query Poisoning • Drop Table: http://10.0.0.3/showtable.asp? ID=3%01DROP+TABLE+PRODUCT • Resultant query: SELECT * FROM PRODUCT WHERE ID=3 DROP TABLE PRODUCT
SQL Query Poisoning • Remote Command Execution! http://10.0.0.3/showtable.asp? ID=3%01EXEC+master..xp_cmdshell+ ‘copy+\winnt\system32\cmd.exe+ \inetpub\scripts’ • Command executed: copy \winnt\system32\cmd.exe \inetpub\scripts
One-way attacks • Assume the tightest firewall configuration. • All legal HTTP requests. • No outbound traffic from internal network. • …yet, total control. • Illustrates how the smallest of openings can be big enough to drive a truck through it!
One-way attacks … entry point • One entry point required. • Arbitrary command execution. • Can be achieved in many ways: • Known vulnerability (e.g. IIS Unicode / ddecode) • Buffer overflow (sometimes kills server!) • Fooling the application itself! (metacharacters, SQL query poisoning)
One-way attacks … uploader • Create an HTTP multipart-MIME upload mechanism. • The same process as sending attachments over web-based mail (yahoo, hotmail). • Uploader allows the attacker to plant and execute tools on the server. • The hole widens.
One-way attacks … remote prompt • Install a remote web-based command prompt. • HTML form, passes inputs to the command-shell on the server. • Semi-interactive.
One-way attacks … SQL prompts! • A step further, install a SQL query prompt page! • Allows attackers to arbitrarily pick and attack back-end SQL servers. • Web programming languages such as ASP, PHP allow back-end database interfaces. • Pilfering of database credentials from source code disclosure attacks would be useful!
One-way attacks … getting root! • Upload your favourite privilege escalation $pl01t! • Run it through the web-based command prompt. • Get admin/root privileges!
One-way attacks … going further • Drive through the back-end network. • Portscanning • Service enumeration • Network packet sniffing • Recovering passwords / credentials • … it’s all open now!
WinDump • Loads dynamically – don’t have to reboot box. • Works great with MDAC, Unicode, etc… • Sniff internal networks after attack. • Grep for user/pass – Pipe output. • Send results back through nc. • Send results back through firewall as an HTML page – ultra cool because it bypasses firewall
Root Causes of Web Hacks • Complex web architectures may cause oversight in web server configuration. • URL Parsing. • File Canonicalization. • Combination of underlying operating system and web server may leave holes.
Root Causes of Web Hacks • Untested code used in web applications, to save time. • Level of security consciousness low in web application developers. • Security vs. convenience. • Security vs. time-to-market. • Zero knowledge administration breeds zero knowledge administrators.
Web Security Measures • Heighten security awareness amongst administrators, developers and most important - TOP MANAGEMENT! • Firewalls and SSL do not solve all security problems. • Keep abreast of latest vendor advisories and patches. • Monitor security mailing lists such as BugTraq. :-/
Thank You! jd.glaser@foundstone.com saumil.shah@foundstone.com