Wget 是 GNU 项目的一部分。大部分Linux发行版(Kail也包含在内)都预置了该工具。 该工具能够递归的下载网页用于离线浏览(包含链接转换、下载non-HTML文件。这篇文章,我们试着使用Wget下载网站页面(Vulnerable_vm靶机里面的一个应用的页面)吧。
实施步骤
首先,打开我们的漏洞靶机:Vulnerable_VM 【配置参见:测试环境搭建】
使用 wget 跟一个目标URL参数,下载页面:
root@kali:~/test_wget# wget http://192.168.150.143/bodgeit/
--22:04:12-- http://192.168.150.143/bodgeit/
Connecting to 192.168.150.143:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3176 (3.1K) [text/html]
Saving to: ‘index.html’
index.html 100%[=============================>] 3.10K --.-KB/s in 0s
22:04:12 (281 MB/s) - ‘index.html’ saved [3176/3176]
root@kali:~/test_wget# ls
index.html
root@kali:~/test_wget#
如上所示,只下载到了 index.html(该应用的主页) 文件到当前目录。夏目我们添加一些参数,告知 wget 把下载的页面保存到指定目录:
首先,新建存放文件的目录:
root@kali:~/test_wget# mkdir bodgeit_offline
root@kali:~/test_wget# wget -r -P bodgeit_offline/ http://192.168.150.143/bodgeit/
--22:33:12-- http://192.168.150.143/bodgeit/
Connecting to 192.168.150.143:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3183 (3.1K) [text/html]
Saving to: ‘bodgeit_offline/192.168.150.143/bodgeit/index.html’
192.168.150.143/bodgeit 100%[=============================>] 3.11K --.-KB/s in 0s
22:33:12 (301 MB/s) - ‘bodgeit_offline/192.168.150.143/bodgeit/index.html’ saved [3183/3183]
Loading robots.txt; please ignore errors.
--22:33:12-- http://192.168.150.143/robots.txt
Reusing existing connection to 192.168.150.143:80.
HTTP request sent, awaiting response... 404 Not Found
22:33:12 ERROR 404: Not Found.
......
......
......
2016-08-07 22:33:12 (55.5 MB/s) - ‘bodgeit_offline/192.168.150.143/bodgeit/style.css’ saved [473/473]
--22:33:12-- http://192.168.150.143/bodgeit/js/util.js
Reusing existing connection to 192.168.150.143:80.
HTTP request sent, awaiting response... 200 OK
Length: 1812 (1.8K) [text/javascript]
Saving to: ‘bodgeit_offline/192.168.150.143/bodgeit/js/util.js’
192.168.150.143/bodgeit 100%[=============================>] 1.77K --.-KB/s in 0s
22:33:12 (226 MB/s) - ‘bodgeit_offline/192.168.150.143/bodgeit/js/util.js’ saved [1812/1812]
--22:33:12-- http://192.168.150.143/bodgeit/home.jsp
Reusing existing connection to 192.168.150.143:80.
HTTP request sent, awaiting response... 200 OK
Length: 3193 (3.1K) [text/html]
Saving to: ‘bodgeit_offline/192.168.150.143/bodgeit/home.jsp’
192.168.150.143/bodgeit 100%[=============================>] 3.12K --.-KB/s in 0s
22:33:12 (427 MB/s) - ‘bodgeit_offline/192.168.150.143/bodgeit/home.jsp’ saved [3193/3193]
总结
wget被设计为用来下载 HTTP 内容。-r 参数开启了递归模式,会跟进当前页面的每个链接,并去下载它们。-P 参数指定下载内容的保存目录,如果不指定,默认保存到当前目录。
除了以上两个参数外,还有其它一些经常会用到的参数:
- -l:这个是单词limit的首字母,用于限制下载的深度,在跟进页面URL进行递归下载时,用这个参数限制跟进到第几层。
- -k:所有文件下载后,wget修改所有链接的URL,使其指向对应的本地文件,这样就能从本地访问了。
- -P:该选项下,wget会下载页面中的所有图片,即使图片的URL属于其他网站。
- -w:该选项下,wget会在两次下载任务中间加入延迟,在拥有反爬机制的网站中,这点很重要。