metasploit中4.3.4文件包含攻击无法成功
修改
http://192.168.10.144/dvwa/vulnerabilities/fi/?page=includ.php
为
http://192.168.10.144/dvwa/vulnerabilities/fi/?page=/etc/passwd
提示
ERROR: File not found!
首先通过
find / -name “include.php”
找到对应的include.php文件
/owaspbwa/dvwa-svn/vulnerabilities/fi/include.php
尝试修改
include.php文件内容,发现可以显示,但是使用其他文件不成功。表明显示的php文件中添加了判断,如果文件名不是include.php就提示错误。
找到该页面对应的php文件
就在/owaspbwa/dvwa-svn/vulnerabilities/fi/的source文件夹里面,该目录下有三个文件
high.php low.php medium.php
其中high.php中可以看到确实做了限制
<?php
$file = $_GET['page']; //The page we wish to display
// Only allow include.php
if ( $file != "include.php" ) {
echo "ERROR: File not found!";
exit;
}
?>
而low.php中没有
<?php
$file = $_GET['page']; //The page we wish to display
?>
那么是什么控制应该调用那个源文件呢,这是通过浏览器的DevTools 查看访问的时候都post了些什么,这是发现cookie字段中有一个security的字段
security high
那么这个字段是怎么进行修改配置的呢
根据cookie的原理可以知道cookie是由服务器生成,保存在客户端中的。那么设置肯定是在服务器端进行设置的。
重新登录该系统,第一个login的时候并没有security字段,第一个想到的是是否是根据用户名来设置的,管理员的安全级别高呢,通过sqlmap获取到所有用户的账号密码,都尝试登录发现security字段都是high,那么肯定是在系统中设置的。
继续在首页查找,在/owaspbwa/dvwa-svn目录下
index.php文件中查找cookie相关配置,发现并没有知道,这是看到该目录下有一个security.php文件,打开发现确实有设置security的代码
if( isset( $_POST['seclev_submit'] ) ) {
$securityLevel = 'high';
switch( $_POST[ 'security' ] ) {
case 'low':
$securityLevel = 'low';
break;
case 'medium':
$securityLevel = 'medium';
break;
}
既然和index.php在同一级目录下,而且都是php文件,应该可以通过浏览器打开
浏览器中输入
http://192.168.10.144/dvwa/security.php
果然看到了设置security的页面,设置为low即可。
这时再输入
http://192.168.10.144/dvwa/vulnerabilities/fi/?page=/etc/passwd
/etc/passwd的内容显示出来了。