本周学习内容:
1.学习web安全深度剖析;
2.学习安全视频;
3.学习乌云漏洞;
4.学习W3School中PHP;
实验内容:
进行DVWA文件包含实验
实验步骤:
Low
1.打开DVWA,进入DVWA Security模块将 Level修改为Low,点击Submit提交;
2.打开File Inclusion文件包含漏洞模块。
3.点击View Source查看服务器代码,发现对Page参数没有任何过滤和校验
4.导致的就是page参数的传入是不可控,构造url http://localhost:8088/dvwa/vulnerabilities/fi/?page=php.ini
5.发现没有成功页面报错了,但是错误信息中暴露了服务器的绝对路径,接下来使用服务器绝对路径,接下来可以利用服务器绝对路径进行伪造http://localhost:8088/dvwa/vulnerabilities/fi/?page=C:\tools\xampp\htdocs\dvwa\php.ini
6.利用绝对路径查看PHP配置文件http://localhost:8088/dvwa/vulnerabilities/fi/?page=C:\tools\xampp\htdocs\dvwa\phpinfo.php
远程文件包含:
1.如果服务器的php.ini配置文件中,选项allow_url_fopen与allow_url_include为On时,服务器会允许包含远程服务器上的文件,如果对文件来源没有检查的话,就容易导致任意远程代码执行。编辑一个txt文件phpinfo1.txt文件,这里的代码只是打印一句话
2.进入文件上传File Upload模块上传phpinfo1.txt文件,并复制上传链接的相对路径
2.回到文件包含模块构造URL,http://localhost:8088/dvwa/vulnerabilities/fi/?page=http://169.254.167.216:8088/dvwa/hackable/uploads/phpinfo1.txt点击进入,可以看到txt文件中的php脚本成功显示在页面上
Medium
1.打开DVWA,进入DVWA Security模块将 Level修改为Medium,点击Submit提交;
2.打开File Inclusion文件包含漏洞模块。
3.查看服务器源代码,发现中级代码中增加了对输入的校验,使用str_replace函数将输入信息中的http、https、../和../"替换为空
4.此时可以使用双写hthttp://tp://进行远程文件包含的方法进行实验,这是因为代码中把http://删除,所以输入的URL有变成了http://(HTTPS也是一样的)
High
1.打开DVWA,进入DVWA Security模块将 Level修改为High,点击Submit提交;
2.打开File Inclusion文件包含漏洞模块。
3.查看服务器源代码,High级别的代码使用了fnmatch函数检查page参数,要求page参数的开头必须是file,服务器才会去包含相应的文件。
4.当把一个本地文件拖入浏览器打开时,用的就是file协议。
5.构造url http://localhost:8088/dvwa/vulnerabilities/fi/?page=file:///C:/tools/xampp/htdocs/dvwa/hackable/uploads/phpinfo1.txt
Impossible
1.打开DVWA,进入DVWA Security模块将 Level修改为Impossible,点击Submit提交;
2.打开File Inclusion文件包含漏洞模块
3.查看服务器源代码,可以看出Impossible级别的代码,使page的参数是能为“include.php”、“file1.php”、“file2.php”、“file3.php”,限制访问的页面页面。只能访问页面中的这三个文件