├── OWASP_Web_Application_Testing_Cheat_Sheet.xml ├── README.md └── convert-cheat-sheet-to-dradis-pro.rb /OWASP_Web_Application_Testing_Cheat_Sheet.xml: -------------------------------------------------------------------------------- 1 | 2 | OWASP Web Application Testing Cheat Sheet 3 | 4 |
5 | Information Gathering 6 | 7 | Manually explore the site 8 | Spider 9 | Check for files that expose content 10 | Check the caches of major search engines for publicly accessible sites 11 | Check for differences in content based on User Agent 12 | Perform Web Application Fingerprinting 13 | Identify technologies used 14 | Identify user roles 15 | Identify application entry points 16 | Identify client-side code 17 | Identify multiple versions 18 | Identify co-hosted and related applications 19 | Identify all hostnames and ports 20 | Identify third-party hosted content 21 | 22 |
23 |
24 | Configuration Management 25 | 26 | Check for commonly used application and administrative URLs 27 | Check for old 28 | Check HTTP methods supported and Cross Site Tracing 29 | Test file extensions handling 30 | Test for security HTTP headers 31 | Test for policies 32 | Test for non-production data in live environment 33 | Check for sensitive data in client-side code 34 | 35 |
36 |
37 | Secure Transmission 38 | 39 | Check SSL Version 40 | Check for Digital Certificate Validity 41 | Check credentials only delivered over HTTPS 42 | Check session tokens only delivered over HTTPS 43 | Check if HTTP Strict Transport Security 44 | 45 |
46 |
47 | Authentication 48 | 49 | Test for user enumeration 50 | Test for authentication bypass 51 | Test for bruteforce protection 52 | Test password quality rules 53 | Test remember me functionality 54 | Test for autocomplete on password forms 55 | Test password reset and 56 | Test password change process 57 | Test CAPTCHA 58 | Test multi factor authentication 59 | Test for logout functionality presence 60 | Test for cache management on HTTP 61 | Test for default logins 62 | Test for user-accessible authentication history 63 | Test for out-of channel notification of account lockouts and successful password changes 64 | Test for consistent authentication across applications with shared authentication schema 65 | 66 |
67 |
68 | Session Management 69 | 70 | Establish how session management is handled in the application 71 | Check session tokens for cookie flags 72 | Check session cookie scope 73 | Check session cookie duration 74 | Check session termination after a maximum lifetime 75 | Check session termination after relative timeout 76 | Check session termination after logout 77 | Test to see if users can have multiple simultaneous sessions 78 | Test session cookies for randomness 79 | Confirm that new session tokens are issued on login 80 | Test for consistent session management across applications with shared session management 81 | Test for session puzzling 82 | Test for CSRF and clickjacking 83 | 84 |
85 |
86 | Authorization 87 | 88 | Test for path traversal 89 | Test for bypassing authorization schema 90 | Test for vertical Access control problems 91 | Test for horizontal Access control problems 92 | Test for missing authorization 93 | 94 |
95 |
96 | Data Validation 97 | 98 | Test for Reflected Cross Site Scripting 99 | Test for Stored Cross Site Scripting 100 | Test for DOM based Cross Site Scripting 101 | Test for Cross Site Flashing 102 | Test for HTML Injection 103 | Test for SQL Injection 104 | Test for LDAP Injection 105 | Test for ORM Injection 106 | Test for XML Injection 107 | Test for XXE Injection 108 | Test for SSI Injection 109 | Test for XPath Injection 110 | Test for XQuery Injection 111 | Test for IMAP 112 | Test for Code Injection 113 | Test for Command Injection 114 | Test for Overflow 115 | Test for Format String 116 | Test for incubated vulnerabilities 117 | Test for HTTP Splitting 118 | Test for HTTP Verb Tampering 119 | Test for Open Redirection 120 | Test for Local File Inclusion 121 | Test for Remote File Inclusion 122 | Compare client-side and server-side validation rules 123 | Test for NoSQL injection 124 | Test for HTTP parameter pollution 125 | Test for auto-binding 126 | 127 |
128 |
129 | Denial of Service 130 | 131 | Test for anti-automation 132 | Test for account lockout 133 | Test for HTTP protocol DoS 134 | 135 |
136 |
137 | Business Logic 138 | 139 | Test for feature misuse 140 | Test for lack of non-repudiation 141 | Test for trust relationships 142 | Test for integrity of data 143 | Test segregation of duties 144 | 145 |
146 |
147 | Cryptography 148 | 149 | Check if data which should be encrypted is not 150 | Check for wrong algorithms usage depending on context 151 | Check for weak algorithms usage 152 | Check for proper use of salting 153 | Check for randomness functions 154 | 155 |
156 |
157 | Risky Functionality - File Uploads 158 | 159 | Test that acceptable file types are whitelisted 160 | Test that file size limits 161 | Test that file contents match the defined file type 162 | Test that all file uploads have Anti-Virus scanning in-place 163 | Test that unsafe filenames are sanitised 164 | Test that uploaded files are not directly accessible within the web root 165 | Test that uploaded files are not served on the same hostname 166 | Test that files and other media are integrated with the authentication and authorisation schemas 167 | 168 |
169 |
170 | Risky Functionality - Card Payment 171 | 172 | Test whether card number are stored 173 | TBC 174 | 175 |
176 |
177 | HTML 5 178 | 179 | Test Web Messaging 180 | Test for Web Storage SQL injection 181 | 182 |
183 |
184 |
185 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | OWASP_Web_App_Testing_Cheatsheet_Converter 2 | ========================================== 3 | 4 | OWASP Web Application Testing Cheat Sheet converted to tool formats -------------------------------------------------------------------------------- /convert-cheat-sheet-to-dradis-pro.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | unless ARGV.length > 0 4 | puts "The syntax is convert-cheat-sheet-to-dradis-pro.rb " 5 | exit 6 | end 7 | 8 | input_file = File.open(ARGV[0],'r+').readlines 9 | 10 | output_file = File.new('OWASP_Web_Application_Testing_Cheat_Sheet.xml','w+') 11 | 12 | 13 | output_file.puts '' 14 | output_file.puts 'OWASP Web Application Testing Cheat Sheet' 15 | output_file.puts '' 16 | 17 | first_section = true 18 | input_file.each do |line| 19 | if line =~ /^==/ 20 | title = line.scan(/(==)([a-zA-Z0-9\-\_ ]+)(==)/)[0][1] 21 | if first_section 22 | first_section = false 23 | output_file.puts "
\n#{title}\n" 24 | else 25 | output_file.puts "\n
\n
\n#{title}\n" 26 | end 27 | end 28 | 29 | if line =~ /^\*/ 30 | check = line.scan(/(\*)([a-zA-Z0-9\-\_ ]+)/)[0][1] 31 | output_file.puts "#{check}" 32 | end 33 | 34 | end 35 | 36 | output_file.puts "" 37 | output_file.puts "
" 38 | output_file.puts "
" 39 | output_file.puts "
" 40 | --------------------------------------------------------------------------------