1.4.4 命令行工具

下面是几个我们最喜爱的命令行工具,这些工具有利于编写脚本和重复的攻击。

cURL

cURL是一个免费的多平台命令行工具,用于操纵HTTP和HTTPS。在编写脚本进行反复分析时,这个工具特别强大,我们将在第5章和第6章中演示。下面是一个用Perl编写、在cURL上运行的简单输入溢出测试例程:


$ curl https://website/login.php?user='perl -e 'print "a" x 500''

netcat

网络入侵的“瑞士军刀”netcat对于许多任务都是一流的。从它的名称中可以猜出,它和Unix用于输出文件内容的cat实用程序很类似,关键的不同是netcat为网络连接执行相同的功能:将网络通信的原始输入输出转储到命令行。本章前面1.1.3节已经展示了一个简单的示例,示范了使用netcat的一个简单HTTP请求。

提示  文本文件输出可以使用重定向字符(<)输入到netcat连接中,如nc-vv server 80<file.txt。我们将在第2章中介绍在Unix/Linux平台上制作netcat脚本的一些简单方法。

netcat只是一个原始的网络工具,尽管简单,但是在用于Web应用工作时仍然需要许多人工操作。例如,如果目标服务器使用HTTPS,就需要像SSLProxy、stunnel或者openssl这样的工具在netcat之前代理这些协议(这些实用程序的链接参见本章的“参考与延伸阅读”)。我们在本章中已经看到,很多工具自动地处理基本的HTTP/S内务工作,而在使用netcat时需要手工干预。一般来说,对于Web应用安全测试我们建议使用本章中的其他工具。