1、文件包含
(1)DVWA环境下去包含其他目录的任意3个文件,要求使用相对路径
(2)远程文件包含
在upload-lab靶场上传一个phpinfo文件,为了防止网站对文件进行解析,就只上传txt文件
然后在dvwa靶场包含,这样就解析除了dvwa靶场的php配置信息
(3)中间件日志包含绕过,要求使用蚁剑连接成功
由于访问页面(无论成功与否)会被网站日志文件记录下来,故我们可以在url里面输入一句话木马使日志记录下来,然后通过web端来包含日志文件从而达到绕过。
先对目录和文件添加权限,使web端能够访问到
因为浏览器会对url进行编码,故使用burp进行改包
然后用文件包含漏洞对日志文件进行访问
同理上传一句话木马,f12获取cookie,用蚁剑连接
2、CSRF
(1)DVWA-High等级
分别使用两个用户,admin模拟攻击者、pablo模拟受害者
先采用xss模块获取pablo的cookie信息
<img src=x OnerrOr=alert(document.cookie)>
然后用burp抓一个admin用户修改密码的包
再将cookie信息修改为pablo用户的,由于high等级存在无法预测的token值,故将等级修改为low,并且把user_token删除就能进行绕过
这样就将安全等级设置为low并且pablo用户的密码修改为123456了
修改验证
(2)使用Burp生成CSRF利用POC并实现攻击
pikachu靶场登录,kobe用户模拟攻击者,allen用户模拟受害者
抓一个kobe用户修改个人信息的包,选择Generate CSRF PoC
COPY下来,在allen所在的浏览器运行代码,修改成功
3、SSRF:file_get_content实验,要求获取ssrf.php的源码
我们可以用php://filter来读取php源码,所以构造URL
但是这样php文件会被解析,获取不了源码,故采用read参数对代码进行编码,使其不被解析
然后使用在线解码工具对获取到的base64编码的代码进行解码就能得到ssrf.php的源码
<?php
/**
* Created by runner.han
* There is nothing new under the sun
*/
$SELF_PAGE = substr($_SERVER['PHP_SELF'],strrpos($_SERVER['PHP_SELF'],'/')+1);
if ($SELF_PAGE = "ssrf.php"){
$ACTIVE = array('','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','active open','active','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','');
}
$PIKA_ROOT_DIR = "../../";
include_once $PIKA_ROOT_DIR.'header.php';
?>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="ssrf.php"></a>
</li>
<li class="active">概述</li>
</ul>
</div>
<div class="page-content">
<b>SSRF(Server-Side Request Forgery:服务器端请求伪造)</b>
<p>其形成的原因大都是由于服务端<b>提供了从其他服务器应用获取数据的功能</b>,但又没有对目标地址做严格过滤与限制</p>
导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据<br>
<br>
数据流:攻击者----->服务器---->目标地址<br>
<br>
根据后台使用的函数的不同,对应的影响和利用方法又有不一样
<pre style="width: 500px;">
PHP中下面函数的使用不当会导致SSRF:
file_get_contents()
fsockopen()
curl_exec()
</pre><br>
如果一定要通过后台服务器远程去对用户指定("或者预埋在前端的请求")的地址进行资源请求,<b>则请做好目标地址的过滤</b>。
<br>
<br>
你可以根据"SSRF"里面的项目来搞懂问题的原因
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<?php
include_once $PIKA_ROOT_DIR . 'footer.php';
?>
4、文件包含、目录遍历和SSRF有什么区别?
文件包含:通常发生在应用程序使用外部输入来包含文件时,而没有正确地验证这些输入。
目录遍历:允许攻击者通过在应用程序中输入特定的序列来访问或操作文件系统中不应该被访问的文件和目录。
SSRF:攻击者利用服务器端应用程序来向攻击者控制的服务器发送请求,或者向内部系统发送请求。
攻击目标:文件包含漏洞主要针对文件系统,目录遍历也是针对文件系统,而SSRF针对的是服务器端的请求处理。
攻击方式:文件包含漏洞通过包含恶意文件来执行攻击,目录遍历通过路径遍历来访问或修改文件,SSRF通过服务器向其他内部服务器发送请求。
利用结果:文件包含通常用于获取敏感信息或执行服务器上的文件,目录遍历是用来访问或操作文件系统中不应该被访问的文件和目录,而SSRF可以用来访问内部网络、执行攻击或泄露信息。