我有一个复杂的shell脚本(<b>John</b>
)来检查域是否容易受到DNS区域传输漏洞的攻击。只需check_axfr.sh
作为single domain
来检查该域是否容易受到攻击。
示例:
argument
如果它在域的任何#./check_axfr.sh example.com
中容易受到攻击,它将产生以下结果。
name servers
为了检查多个域,我将所有域列表(100)保存在文件DOMAIN example.com: ns0.example.com. Vulnerable
DOMAIN example.com: ns1.example.com. Not Vulnerable
中。
Input.txt
我试过了,
example.com
abc.com
mno.com
xyz.com
prq.com
.......
现在,我的输入文件(for i in $(cat Input.txt);do sh check_axfr.sh $i;done
)现在将包含Input.txt
number,domain
我想输出为,
1,example.com
2,abc.com
3,mno.com
4,xyz.com
5,prq.com
.........
我对shell脚本不太熟悉&amp;我不想改变父脚本,有人可以帮我解决这个问题吗?
答案 0 :(得分:3)
读取输入行并在Window.Current
上拆分以获取输入行的部分。使用第二部分即域名<{1}}呼叫:
,
用法:
check.axfr.sh
答案 1 :(得分:2)
如果您不介意安装额外的工具,您也可以使用parallel
使用一个命令执行此操作(显然以并行模式而不是默认的串行模式运行作业):
parallel -C',' --keep-order './check.axfr.sh "{2}" | sed "s/^/{1}, /"' < Input.txt
<强>突围强>
parallel
-C ',' # use comma as column separator of each input line
--keep-order # keep the same order in the output
'./check.axfr.sh "{2}" # execute per job the check.axfr.sh passing domain column
| sed "s/^/{1}, /"' # Add the first column (number) before each line
# of the output of the script
< Input.txt # load lines from Input.txt file
<强>输出强>
1,DOMAIN domain1.com:ns0.example.com。弱势
1,DOMAIN domain1.com:ns1.example.com。不易受伤害 2,DOMAIN domain2.com:ns0.example.com。弱势
2,DOMAIN domain2.com:ns1.example.com。不易受伤害 3,DOMAIN domain3.com:ns0.example.com。弱势
3,DOMAIN domain3.com:ns1.example.com。不易受伤害 4,DOMAIN domain4.com:ns0.example.com。弱势
4,DOMAIN domain4.com:ns1.example.com。不脆弱
注意强>
如果你想用parallel
来节省一些比特,你可以从输入文件中删除number
列并使用它:
parallel --keep-order './check.axfr.sh "{}" | sed "s/^/{#}, /"' < Input.txt
其中{#}
是执行作业的ID号。输出将是相同的。