(proxyURL *url.URL)
| 184 | } |
| 185 | |
| 186 | func ScanHTTPRequestSmuggling(proxyURL *url.URL) reportResult { |
| 187 | var repResult reportResult |
| 188 | identifier := "HTTP Request Smuggling" |
| 189 | repResult.Technique = identifier |
| 190 | |
| 191 | path := Config.Website.Url.Path |
| 192 | if Config.Website.Cache.CBisParameter { |
| 193 | path, _ = addCachebusterParameter(path, "", Config.Website.Cache.CBName, false) |
| 194 | } |
| 195 | if path == "" { |
| 196 | path = "/" |
| 197 | } |
| 198 | headers := GenerateHeaderString() |
| 199 | |
| 200 | PrintVerbose("Trying CLTE Request Smuggling\n", NoColor, 1) |
| 201 | req := clte(path, headers) |
| 202 | httpRequestSmuggling(req, &repResult, proxyURL) |
| 203 | |
| 204 | if !repResult.Vulnerable { |
| 205 | PrintVerbose("Trying TECL Request Smuggling\n", NoColor, 1) |
| 206 | req = tecl(path, headers) |
| 207 | httpRequestSmuggling(req, &repResult, proxyURL) |
| 208 | } |
| 209 | |
| 210 | if !repResult.Vulnerable { |
| 211 | PrintVerbose("Trying CLCL Request Smuggling\n", NoColor, 1) |
| 212 | req = clcl(path, headers) |
| 213 | httpRequestSmuggling(req, &repResult, proxyURL) |
| 214 | } |
| 215 | |
| 216 | if !repResult.Vulnerable { |
| 217 | PrintVerbose("Trying CLCL2 Request Smuggling\n", NoColor, 1) |
| 218 | req = clcl2(path, headers) |
| 219 | httpRequestSmuggling(req, &repResult, proxyURL) |
| 220 | } |
| 221 | |
| 222 | return repResult |
| 223 | } |
| 224 | |
| 225 | /* Scan headers for poisoning */ |
| 226 | func ScanHeaders(headerList []string) reportResult { |
no test coverage detected