-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathparam.cgi
More file actions
40 lines (34 loc) · 1.03 KB
/
param.cgi
File metadata and controls
40 lines (34 loc) · 1.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
while read -r pair; do
key=${pair%%=*}
if [[ -z "$key" || -z "${key##*[\$"'"'`''"'.%]*}" ]]; then
continue
fi
value=$(echo -e "$(echo "${pair#*=}" | sed 's/+/ /g; s/%\([0-9a-fA-F]\{2\}\)/\\x\1/g')")
eval "_GET_$key=\$value"
_GET[${#_GET[@]}]=$key
done < <(echo "$QUERY_STRING" | sed 's/\&/\n/g')
if [[ "$_RAW_DATA" -gt 0 ]]; then
:
else
if [[ "$REQUEST_METHOD" == "POST" ]]; then
while read -r pair; do
key=${pair%%=*}
if [[ -z "$key" || -z "${key##*[\$"'"'`''"'.%]*}" ]]; then
continue
fi
value=$(echo -e "$(echo "${pair#*=}" | sed 's/+/ /g; s/%\([0-9a-fA-F]\{2\}\)/\\x\1/g')")
eval "_POST_$key=\$value"
_POST[${#_POST[@]}]=$key
done < <(echo "$(cat -)" | sed 's/\&/\n/g')
fi
fi
while read -r pair; do
key=${pair%%=*}
if [[ -z "$key" || -z "${key##*[\$"'"'`''"'.%]*}" ]]; then
continue
fi
value=$(echo -e "$(echo "${pair#*=}" | sed 's/+/ /g; s/%\([0-9a-fA-F]\{2\}\)/\\x\1/g')")
eval "_COOKIE_$key=\$value"
_COOKIE[${#_COOKIE[@]}]=$key
done < <(echo "$HTTP_COOKIE" | sed 's/\&/\n/g')