在vim中编写的Bash脚本与在终端中的工作方式不同!为什么?



这个想法是bash脚本,它使用"common_ports.txt"中的端口来枚举网站的内部端口(SSRF)。文件并输出端口和"content-length">

这是curl请求:

$ curl -Is "http://10.10.182.210:8000/attack?port=5000"
HTTP/1.0 200 OK 
Content-Type: text/html; charset=utf-8
Content-Length: 1035
Server: Werkzeug/0.14.1 Python/3.6.9
Date: Sat, 16 Oct 2021 13:02:27 GMT

获取内容长度,我使用grep:

$ curl -Is "http://10.10.182.210:8000/attack?port=5000" | grep  "Content-Length"
Content-Length: 1035

直到现在一切都很好。但是当我在vim中编写它来自动化这个过程时,我得到了奇怪的输出。

这是我完整的bash脚本:

#!/bin/bash
file="./common_ports.txt"

while IFS= read -r  line 
do
response=$(curl -Is "http://10.10.182.210:8000/attack?port=$line")

len=$(echo $response | grep  "Content-Length:")
echo "$len"
done < "$file"

输出:

$ ./script.sh
Date: Sat, 16 Oct 2021 13:10:35 GMT9-8
Date: Sat, 16 Oct 2021 13:10:36 GMT9-8
^C

输出response变量的最后一行。有人能解释为什么吗?提前感谢!!

您需要将$response用双引号括起来。

len=$(echo "$response" | grep  "Content-Length:")

相关内容

  • 没有找到相关文章

最新更新