| @@ -0,0 +1,20 @@ | |||
| #include <iostream> | |||
| using namespace std; | |||
| int main() { | |||
| char UserType[11]; // need one more than 10 for the end marker | |||
| std::cout << "Please enter your name (less than 10 characters): " << '\n'; | |||
| std::cin.getline(UserType, 11); // limit input to 10 | |||
| std::cout << UserType << '\n'; | |||
| } | |||
| @@ -0,0 +1,16 @@ | |||
| #include <iostream> | |||
| using namespace std; | |||
| int main() { | |||
| char name[10]; | |||
| cout << "Please enter your name: "; | |||
| cin >> name; | |||
| cout << "Your name is: " << name << endl; | |||
| } | |||
| @@ -0,0 +1,44 @@ | |||
| import java.util.Scanner; | |||
| public class LogIn { | |||
| public static void main(String[] args) { | |||
| //declare variables | |||
| String username, password; | |||
| int n = 0; | |||
| Scanner scanner = new Scanner (System.in); | |||
| while (n<3) { | |||
| //prompt user for their username | |||
| System.out.print("Enter your username: "); | |||
| username = scanner.nextLine(); | |||
| //prompt user for their password | |||
| System.out.print("Enter your password: "); | |||
| password = scanner.nextLine(); | |||
| if ("Justinfromcharleston@gmail.com".equals(username) && "secret17".equals(password)) | |||
| { System.out.println("Welcome " + username + "!!!"); | |||
| break; | |||
| } | |||
| else if(!"secret17".equals(password) || !"Justinfromcharleston@gmail.com".equals(username)) { | |||
| System.out.println("Incorrect login. Please try again."); | |||
| n++; | |||
| if (n==3){ | |||
| System.out.print("Maximum login attemps exceeded."); | |||
| break; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| @@ -0,0 +1,41 @@ | |||
| package homework.pkg5; | |||
| import java.util.Scanner; | |||
| public class LogIn{ | |||
| public static void main(String[] args) { | |||
| //declare variables | |||
| String username, password; | |||
| int n = 0; | |||
| Scanner scanner = new Scanner (System.in); | |||
| while (n<3) { | |||
| //prompt user for their username | |||
| System.out.print("Enter your username: "); | |||
| username = scanner.nextLine(); | |||
| //prompt user for their password | |||
| System.out.print("Enter your password: "); | |||
| password = scanner.nextLine(); | |||
| if ("Justinfromcharleston@gmail.com".equals(username) && "secret17".equals(password)) | |||
| { System.out.println("Welcome " + username + "!!!"); | |||
| break; | |||
| } | |||
| else if(!"secret17".equals(password) || !"Justinfromcharleston@gmail.com".equals(username)) { | |||
| System.out.println("Incorrect login. Please try again."); | |||
| } | |||
| } | |||
| } | |||
| } | |||
| @@ -0,0 +1,26 @@ | |||
| package integer.overflow; | |||
| /** | |||
| * | |||
| * @author justi | |||
| */ | |||
| public class IntegerOverflow_Mitigated { | |||
| /** | |||
| * @param args the command line arguments | |||
| */ | |||
| public static void main(String[] args) { | |||
| //int a is equal to the largest int available | |||
| int a = Integer.MAX_VALUE; | |||
| int b = 1; | |||
| //calculation will result in integer overflow | |||
| int c = a + b; | |||
| System.out.println("Before: " + a + " + " + b + " = " + c); | |||
| System.out.println("After: " + Math.addExact( a, b )); | |||
| } | |||
| } | |||
| @@ -0,0 +1,26 @@ | |||
| package integer.overflow; | |||
| /** | |||
| * | |||
| * @author justi | |||
| */ | |||
| public class IntegerOverflow { | |||
| /** | |||
| * @param args the command line arguments | |||
| */ | |||
| public static void main(String[] args) { | |||
| //int a is equal to the largest int available | |||
| int a = Integer.MAX_VALUE; | |||
| int b = 1; | |||
| //calculation will result in integer overflow | |||
| int c = a + b; | |||
| System.out.println(a + " + " + b + " = " + c); | |||
| } | |||
| } | |||
| @@ -0,0 +1,29 @@ | |||
| package homework.pkg4; | |||
| import java.security.MessageDigest; | |||
| import java.util.Scanner; | |||
| import javax.xml.bind.DatatypeConverter; | |||
| public class Password { | |||
| public static void main( String[] args ) throws Exception { | |||
| Scanner keyboard = new Scanner(System.in); | |||
| String un, pw, encrypt_psswrd; | |||
| MessageDigest digest = MessageDigest.getInstance("SHA-256"); | |||
| System.out.print("Please create a username: "); | |||
| un = keyboard.nextLine(); | |||
| System.out.print("Please create a password: "); | |||
| pw = keyboard.nextLine(); | |||
| digest.update( pw.getBytes("UTF-8") ); | |||
| encrypt_psswrd = DatatypeConverter.printHexBinary( digest.digest() ); | |||
| //overwrites user's original input so it is not visible to hackers. | |||
| pw = "empty"; | |||
| System.out.println( "Your username is: " + un + ". Your password has been encryped for security purposes: " + encrypt_psswrd ); | |||
| } | |||
| } | |||
| @@ -0,0 +1,22 @@ | |||
| package homework.pkg4; | |||
| import java.security.MessageDigest; | |||
| import java.util.Scanner; | |||
| public class Password { | |||
| public static void main( String[] args ) throws Exception { | |||
| Scanner keyboard = new Scanner(System.in); | |||
| String un, pw, encrypt_psswrd; | |||
| MessageDigest digest = MessageDigest.getInstance("SHA-256"); | |||
| System.out.print("Please create a username: "); | |||
| un = keyboard.nextLine(); | |||
| System.out.print("Please create a password: "); | |||
| pw = keyboard.nextLine(); | |||
| System.out.println( "Your username is: " + un + ". Your password is: " + pw); | |||
| } | |||
| } | |||
| @@ -0,0 +1,2 @@ | |||
| # Software-Vulnerability-Demonstrations | |||
| Software Vulnerability Demonstrations Unique and complete demonstrations of software vulnerabilities found in the CWE/SANS Top 25 vulnerabilities list. Each example contains executable code with both a vulnerable version showing the weakness and a mitigated version showing how eliminate it. Each is well-documented and includes screenshots showing the application executing step by step. These are part of what would be a much larger application. | |||
| @@ -0,0 +1,71 @@ | |||
| <?php | |||
| // 1. Create a database connection | |||
| $dbhost = "localhost"; | |||
| $dbuser = "root"; | |||
| $dbpass = "dakota02"; | |||
| $dbname = "UMUC"; | |||
| $connection = mysqli_connect($dbhost, $dbuser, $dbpass, | |||
| $dbname); | |||
| //you could just place the variables directly into the arugments also, but | |||
| //it's easier to understand this way. | |||
| //Once we call the mysqli_connect function, the value that it returns is what we | |||
| //have assigned to the variable $connection. It is what is referred to as a handle for the connection. | |||
| //will see if connected, if not will quit and display error messages with error. | |||
| //test if connection occured. | |||
| if(mysqli_connect_errno()){ | |||
| die("Database connection failed: " . | |||
| mysqli_connect_error() . | |||
| "(" . mysqli_connect_errno() . ")" | |||
| ); | |||
| } | |||
| ?> | |||
| <?php | |||
| if (isset($_POST['submit'])){ | |||
| //assign post data to variables | |||
| $first_name = $_POST["first_name"]; | |||
| $last_name = $_POST ["last_name"]; | |||
| $student_id = $_POST["student_id"]; | |||
| } | |||
| $stmt = $connection->prepare("INSERT INTO students (first_name, last_name, student_id) VALUES (?, ?, ?)"); | |||
| $stmt->bind_param('sss', $_POST['first_name'], $_POST['last_name'], $_POST['student_id']); | |||
| $stmt->execute(); | |||
| $stmt->close(); | |||
| //test if there was a query error | |||
| if($stmt){ | |||
| //success | |||
| echo "Success! Student added to database!"; | |||
| }else{ | |||
| //failure | |||
| die("Database query failed. " . mysqli_error($connection)); | |||
| } | |||
| ?> | |||
| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" | |||
| "http://www.w3.org/TR/html4/loose.dtd"> | |||
| <html lang="en"> | |||
| <head> | |||
| <title>SQL Injection</title> | |||
| </head> | |||
| <body> | |||
| </body> | |||
| </html> | |||
| <?php | |||
| //5.close database connection | |||
| mysqli_close($connection); | |||
| ?> | |||
| @@ -0,0 +1,27 @@ | |||
| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" | |||
| "http://www.w3.org/TR/html4/loose.dtd"> | |||
| <html lang="en"> | |||
| <head> | |||
| <title>Form</title> | |||
| </head> | |||
| <br /> | |||
| <form action="SQL_Injection.php" method="post"> | |||
| First name: <input type="text" name="first_name" value ="" /> <br /> | |||
| Last name: <input type="text" name="last_name" value ="" /> <br /> | |||
| Student ID: <input type="text" name="student_id" value ="" /> <br /> | |||
| <br /> | |||
| <input type="submit" name="submit" value ="Submit" /> <br /> | |||
| </form> | |||
| </html> | |||
| @@ -0,0 +1,77 @@ | |||
| <?php | |||
| // 1. Create a database connection | |||
| $dbhost = "localhost"; | |||
| $dbuser = "root"; | |||
| $dbpass = "dakota02"; | |||
| $dbname = "UMUC"; | |||
| $connection = mysqli_connect($dbhost, $dbuser, $dbpass, | |||
| $dbname); | |||
| //you could just place the variables directly into the arugments also, but | |||
| //it's easier to understand this way. | |||
| //Once we call the mysqli_connect function, the value that it returns is what we | |||
| //have assigned to the variable $connection. It is what is referred to as a handle for the connection. | |||
| //will see if connected, if not will quit and display error messages with error. | |||
| //test if connection occured. | |||
| if(mysqli_connect_errno()){ | |||
| die("Database connection failed: " . | |||
| mysqli_connect_error() . | |||
| "(" . mysqli_connect_errno() . ")" | |||
| ); | |||
| } | |||
| ?> | |||
| <?php | |||
| if (isset($_POST['submit'])){ | |||
| //assign post data to variables | |||
| $first_name = $_POST["first_name"]; | |||
| $last_name = $_POST["last_name"]; | |||
| $student_id = $_POST["student_id"]; | |||
| } | |||
| //2. perform database query | |||
| //This way is called assembling a query. Easier to read and work with. | |||
| //could also wrap parts in if statements. ex. if something is true, | |||
| //append the WHERE clause. | |||
| $query = "INSERT INTO students ("; | |||
| $query .= " first_name, last_name, student_id"; | |||
| $query .= ") VALUES ("; | |||
| $query .= " '{$first_name}', '{$last_name}', '{$student_id}' "; | |||
| $query .= ")"; | |||
| $result = mysqli_query($connection, $query); | |||
| //test if there was a query error | |||
| if($result){ | |||
| //success | |||
| //could do a redirect. ex redirect to("somepage.php"); | |||
| echo "Success! Student added to database!"; | |||
| }else{ | |||
| //failure | |||
| //$message = "Student creation failed"; | |||
| die("Database query failed. " . mysqli_error($connection)); | |||
| } | |||
| ?> | |||
| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" | |||
| "http://www.w3.org/TR/html4/loose.dtd"> | |||
| <html lang="en"> | |||
| <head> | |||
| <title>SQL Injection</title> | |||
| </head> | |||
| <body> | |||
| </body> | |||
| </html> | |||
| <?php | |||
| //5.close database connection | |||
| mysqli_close($connection); | |||
| ?> | |||
| @@ -0,0 +1,27 @@ | |||
| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" | |||
| "http://www.w3.org/TR/html4/loose.dtd"> | |||
| <html lang="en"> | |||
| <head> | |||
| <title>Form</title> | |||
| </head> | |||
| <br /> | |||
| <form action="SQL_Injection.php" method="post"> | |||
| First name: <input type="text" name="first_name" value ="" /> <br /> | |||
| Last name: <input type="text" name="last_name" value ="" /> <br /> | |||
| Student ID: <input type="text" name="student_id" value ="" /> <br /> | |||
| <br /> | |||
| <input type="submit" name="submit" value ="Submit" /> <br /> | |||
| </form> | |||
| </html> | |||
| @@ -0,0 +1,5 @@ | |||
| <?php | |||
| //malicious script goes here. | |||
| ?> | |||
| @@ -0,0 +1 @@ | |||
| blah blah blah | |||
| @@ -0,0 +1,54 @@ | |||
| <!DOCTYPE html> | |||
| <!-- | |||
| To change this license header, choose License Headers in Project Properties. | |||
| To change this template file, choose Tools | Templates | |||
| and open the template in the editor. | |||
| --> | |||
| <html> | |||
| <head> | |||
| <meta charset="UTF-8"> | |||
| <title>Upload</title> | |||
| </head> | |||
| <body> | |||
| <?php | |||
| if (isset($_FILES["file"]["name"])) { | |||
| $name = $_FILES["file"]["name"]; | |||
| $temp_file = $_FILES['file']['tmp_name']; | |||
| $error = $_FILES['file']['error']; | |||
| $imginfo_array = getimagesize($temp_file); // returns a false if not a valid image file | |||
| if ($imginfo_array !== false) { | |||
| $mime_type = $imginfo_array['mime']; | |||
| switch($mime_type) { | |||
| case "image/jpeg" ||"image/gif" || "image/png": | |||
| $location = 'pictures/'; | |||
| move_uploaded_file($temp_file, $location.$name); | |||
| echo 'Uploaded successfully.'; | |||
| } | |||
| } | |||
| else { | |||
| echo "This is not a valid image file"; | |||
| } | |||
| } | |||
| ?> | |||
| <form action="upload_picture.php" method="POST" enctype="multipart/form-data"> | |||
| <input type="file" name="file"><br><br> | |||
| <input type="submit" value="Submit"> | |||
| </form> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,40 @@ | |||
| <!DOCTYPE html> | |||
| <!-- | |||
| To change this license header, choose License Headers in Project Properties. | |||
| To change this template file, choose Tools | Templates | |||
| and open the template in the editor. | |||
| --> | |||
| <html> | |||
| <head> | |||
| <meta charset="UTF-8"> | |||
| <title>Upload</title> | |||
| </head> | |||
| <body> | |||
| <?php | |||
| if (isset($_FILES["file"]["name"])) { | |||
| $name = $_FILES["file"]["name"]; | |||
| $tmp_name = $_FILES['file']['tmp_name']; | |||
| $error = $_FILES['file']['error']; | |||
| if (!empty($name)) { | |||
| $location = 'pictures/'; | |||
| if (move_uploaded_file($tmp_name, $location.$name)){ | |||
| echo 'Uploaded'; | |||
| } | |||
| } else { | |||
| echo 'please choose a file'; | |||
| } | |||
| } | |||
| ?> | |||
| <form action="upload_picture.php" method="POST" enctype="multipart/form-data"> | |||
| <input type="file" name="file"><br><br> | |||
| <input type="submit" value="Submit"> | |||
| </form> | |||
| </body> | |||
| </html> | |||
| @@ -0,0 +1,63 @@ | |||
| <?php | |||
| require 'db.php'; | |||
| //will see if connected, if not will quit and display error messages with error. | |||
| //test if connection occured. | |||
| if(mysqli_connect_errno()){ | |||
| die("Database connection failed: " . | |||
| mysqli_connect_error() . | |||
| "(" . mysqli_connect_errno() . ")" | |||
| ); | |||
| } | |||
| ?> | |||
| <?php | |||
| if (isset($_POST['submit'])){ | |||
| //assign post data to variables | |||
| $first_name = $_POST["first_name"]; | |||
| $last_name = $_POST ["last_name"]; | |||
| $student_id = $_POST["student_id"]; | |||
| } | |||
| $stmt = $connection->prepare("INSERT INTO students (first_name, last_name, student_id) VALUES (?, ?, ?)"); | |||
| $stmt->bind_param('sss', $_POST['first_name'], $_POST['last_name'], $_POST['student_id']); | |||
| $stmt->execute(); | |||
| $stmt->close(); | |||
| //test if there was a query error | |||
| if($stmt){ | |||
| //success | |||
| echo "Success! Student added to database!"; | |||
| }else{ | |||
| //failure | |||
| die("Database query failed. " . mysqli_error($connection)); | |||
| } | |||
| ?> | |||
| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" | |||
| "http://www.w3.org/TR/html4/loose.dtd"> | |||
| <html lang="en"> | |||
| <head> | |||
| <title>SQL Injection</title> | |||
| </head> | |||
| <body> | |||
| </body> | |||
| </html> | |||
| <?php | |||
| //5.close database connection | |||
| mysqli_close($connection); | |||
| ?> | |||
| @@ -0,0 +1,6 @@ | |||
| <?php | |||
| // 1. Create a database connection | |||
| $connection = mysqli_connect('localhost', 'root', 'dakota02', 'UMUC'); | |||
| ?> | |||
| @@ -0,0 +1,27 @@ | |||
| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" | |||
| "http://www.w3.org/TR/html4/loose.dtd"> | |||
| <html lang="en"> | |||
| <head> | |||
| <title>Form</title> | |||
| </head> | |||
| <br /> | |||
| <form action="SQL_Injection.php" method="post"> | |||
| First name: <input type="text" name="first_name" value ="" /> <br /> | |||
| Last name: <input type="text" name="last_name" value ="" /> <br /> | |||
| Student ID: <input type="text" name="student_id" value ="" /> <br /> | |||
| <br /> | |||
| <input type="submit" name="submit" value ="Submit" /> <br /> | |||
| </form> | |||
| </html> | |||
| @@ -0,0 +1,66 @@ | |||
| <?php | |||
| // 1. Create a database connection | |||
| // 1. Create a database connection | |||
| $connection = mysqli_connect('localhost', 'root', 'dakota02', 'UMUC'); | |||
| //Once we call the mysqli_connect function, the value that it returns is what we | |||
| //have assigned to the variable $connection. It is what is referred to as a handle for the connection. | |||
| //will see if connected, if not will quit and display error messages with error. | |||
| //test if connection occured. | |||
| if(mysqli_connect_errno()){ | |||
| die("Database connection failed: " . | |||
| mysqli_connect_error() . | |||
| "(" . mysqli_connect_errno() . ")" | |||
| ); | |||
| } | |||
| ?> | |||
| <?php | |||
| if (isset($_POST['submit'])){ | |||
| //assign post data to variables | |||
| $first_name = $_POST["first_name"]; | |||
| $last_name = $_POST ["last_name"]; | |||
| $student_id = $_POST["student_id"]; | |||
| } | |||
| $stmt = $connection->prepare("INSERT INTO students (first_name, last_name, student_id) VALUES (?, ?, ?)"); | |||
| $stmt->bind_param('sss', $_POST['first_name'], $_POST['last_name'], $_POST['student_id']); | |||
| $stmt->execute(); | |||
| $stmt->close(); | |||
| //test if there was a query error | |||
| if($stmt){ | |||
| //success | |||
| echo "Success! Student added to database!"; | |||
| }else{ | |||
| //failure | |||
| die("Database query failed. " . mysqli_error($connection)); | |||
| } | |||
| ?> | |||
| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" | |||
| "http://www.w3.org/TR/html4/loose.dtd"> | |||
| <html lang="en"> | |||
| <head> | |||
| <title>SQL Injection</title> | |||
| </head> | |||
| <body> | |||
| </body> | |||
| </html> | |||
| <?php | |||
| //5.close database connection | |||
| mysqli_close($connection); | |||
| ?> | |||
| @@ -0,0 +1,27 @@ | |||
| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" | |||
| "http://www.w3.org/TR/html4/loose.dtd"> | |||
| <html lang="en"> | |||
| <head> | |||
| <title>Form</title> | |||
| </head> | |||
| <br /> | |||
| <form action="SQL_Injection.php" method="post"> | |||
| First name: <input type="text" name="first_name" value ="" /> <br /> | |||
| Last name: <input type="text" name="last_name" value ="" /> <br /> | |||
| Student ID: <input type="text" name="student_id" value ="" /> <br /> | |||
| <br /> | |||
| <input type="submit" name="submit" value ="Submit" /> <br /> | |||
| </form> | |||
| </html> | |||
| @@ -0,0 +1,66 @@ | |||
| import javax.crypto.Cipher; | |||
| import javax.crypto.KeyGenerator; | |||
| import javax.crypto.SecretKey; | |||
| import javax.xml.bind.DatatypeConverter; | |||
| public class AES { | |||
| public static void main(String[] args) throws Exception { | |||
| String plainText = "Secret Message"; | |||
| SecretKey secKey = getSecretEncryptionKey(); | |||
| byte[] cipherText = encryptText(plainText, secKey); | |||
| String decryptedText = decryptText(cipherText, secKey); | |||
| System.out.println("Original Text:" + plainText); | |||
| System.out.println("AES Key (Hex Form):"+bytesToHex(secKey.getEncoded())); | |||
| System.out.println("Encrypted Text (Hex Form):"+bytesToHex(cipherText)); | |||
| System.out.println("Descrypted Text:"+decryptedText); | |||
| } | |||
| //End of main class | |||
| //Gets encryption key. Would normally be stored differently in a real world situation. | |||
| public static SecretKey getSecretEncryptionKey() throws Exception{ | |||
| KeyGenerator generator = KeyGenerator.getInstance("AES"); | |||
| generator.init(128); // AES key size. More secure than the 56 bit DES | |||
| SecretKey secKey = generator.generateKey(); | |||
| return secKey; | |||
| } | |||
| //ENCRYPT our text using the secret key to byte array | |||
| public static byte[] encryptText(String plainText,SecretKey secKey) throws Exception{ | |||
| Cipher aesCipher = Cipher.getInstance("AES"); | |||
| aesCipher.init(Cipher.ENCRYPT_MODE, secKey); | |||
| byte[] byteCipherText = aesCipher.doFinal(plainText.getBytes()); | |||
| return byteCipherText; | |||
| } | |||
| //DECRYPTS the byte array using the key | |||
| public static String decryptText(byte[] byteCipherText, SecretKey secKey) throws Exception { | |||
| Cipher aesCipher = Cipher.getInstance("AES"); | |||
| aesCipher.init(Cipher.DECRYPT_MODE, secKey); | |||
| byte[] bytePlainText = aesCipher.doFinal(byteCipherText); | |||
| return new String(bytePlainText); | |||
| } | |||
| //Converts binary byte array into readable hex | |||
| private static String bytesToHex(byte[] hash) { | |||
| return DatatypeConverter.printHexBinary(hash); | |||
| } | |||
| } | |||
| @@ -0,0 +1,44 @@ | |||
| import java.io.*; | |||
| import javax.crypto.*; | |||
| import javax.crypto.Cipher; | |||
| import javax.crypto.KeyGenerator; | |||
| import javax.crypto.SecretKey; | |||
| public class DES { | |||
| public static void main(String[] args) { | |||
| try{ | |||
| String st = "Hello"; | |||
| System.out.println("Real String: " + st); | |||
| byte str[]= st.getBytes(); | |||
| Cipher c= Cipher.getInstance("DES"); | |||
| KeyGenerator kg =KeyGenerator.getInstance("DES"); | |||
| SecretKey sk= kg.generateKey(); | |||
| //encrypt mode | |||
| c.init(Cipher.ENCRYPT_MODE, sk); | |||
| byte ct[]= c.doFinal(str); | |||
| System.out.println("ENCRYPT_MODE DATA : " + new String(ct)); | |||
| //decrypt mode | |||
| c.init(Cipher.DECRYPT_MODE, sk); | |||
| byte ct1[]= c.doFinal(ct); | |||
| System.out.println("DECRYPT_MODE DATA : " + new String(ct1)); | |||
| } | |||
| catch(Exception e) | |||
| { | |||
| System.out.println(e); | |||
| } | |||
| } | |||
| } | |||