网安靶场环境_DVWA-读取文件报错File not found! Cookie中有两个security键

DVWA-文件包含漏洞-读取文件报错-ERROR: File not found!

Cookie中有两个security键

1 问题复现

(1)登录DVMA后,设置DVWA Security为Low。

(2)进入File Inclusion,访问dvwa/vulnerabilities/fi目录下的的test.txt文件(自己创建的测试文件)。

(3)报错ERROR: File not found! 找不到文件。

2 抓包分析

(1)使用BurpSuit抓包。

访问test.txt文件的请求中,Cookie有两个security键;导致设置DVWA Security为Low没有成功。

(2)在浏览器中查看"设置DVWA Security为Low"时,服务端Set Cookie情况。

在Set SessionId时指定了使用路径;而Set Security是没有指定路径。

(3)Cookie的属性。

|----------|--------------------------------------------------------------------------------------------------------------------------------------|
| 属性 | 描述 |
| name | Cookie的名称,Cookie一旦创建,名称便不可更改 |
| value | Cookie的值。如果值为Unicode字符,需要为字符编码。如果值为二进制数据,则需要使用BASE64编码 |
| maxAge | Cookie失效的时间,单位秒。如果为正数,则该Cookie在maxAge秒之后失效。如果为负数,该Cookie为临时Cookie,关闭浏览器即失效,浏览器也不会以任何形式保存该Cookie。如果为0,表示删除该Cookie。默认为-1。 |
| secure | 该Cookie是否仅被使用安全协议传输。安全协议。安全协议有HTTPS,SSL等,在网络上传输数据之前先将数据加密。默认为false。 |
| path | Cookie的使用路径。如果设置为"/sessionWeb/",则只有contextPath为"/sessionWeb"的程序可以访问该Cookie。如果设置为"/",则本域名下contextPath都可以访问该Cookie。注意最后一个字符必须为"/"。 |
| domain | 可以访问该Cookie的域名。如果设置为".google.com",则所有以"google.com"结尾的域名都可以访问该Cookie。注意第一个字符必须为"."。 |
| comment | 该Cookie的用处说明,浏览器显示Cookie信息的时候显示该说明。 |
| version | Cookie使用的版本号。0表示遵循Netscape的Cookie规范,1表示遵循W3C的RFC 2109规范 |

3 修复服务端代码

(1)查看服务端setcookie的php代码。

发现没有给security指定使用路径。

(2)修改setcookie()中security的路径为"/"。

(3)PHP setcookie()函数。

语法:setcookie(name,value,expire,path,domain,secure)

|----------|----------------------------------|
| 参数 | 描述 |
| name | 必需。规定 cookie 的名称。 |
| value | 必需。规定 cookie 的值。 |
| expire | 可选。规定 cookie 的有效期。 |
| path | 可选。规定 cookie 的服务器路径。 |
| domain | 可选。规定 cookie 的域名。 |
| secure | 可选。规定是否通过安全的 HTTPS 连接来传输 cookie。 |

4 验证结果

(1)清除浏览器Cookie。

(2)重新登录DVMA,再次设置DVWA Security为Low。

Set SessionId的路径和Set Security的路径一致。

(3)进入File Inclusion,访问dvwa/vulnerabilities/fi目录下的的test.txt文件。

成功读取到文件内容,并且请求Cookie中只有一个security键。