java 反射机制学习
初学java安全 3.24一直对java安全处于一个简单了解但是一直迫切学习的阶段
希望可以写一篇博客来督促自己深入学习java安全的知识
java反射java反射机制是指在java代码执行过程中,对于任意一个类,可以获取这个类的属性与方法;对于任意一个对象,可以获取、修改这个对象的属性值,调用对象的方法。这种动态获取信息和调用方法的技术就是java中的反射机制。
class对象参考了
12https://zhuanlan.zhihu.com/p/456898438
class类是一个类,而class对象是它的对象.
用文章中的一张图片来理解
class类用来描述类的元数据,每个类都有一个与之关联的class对象,这些在面向对象中都有涉及
每个类都有且仅有一个class对象。通过类和对象都能获取到类的class对象,获取到class对象有下面三种方式。
1.Student.class //通过类名.class的方式获取class对象
2.stu1.getClass() //通过类对象.getClass()的方式获取class对象
3.Class ...
春秋云镜 Certify
春秋云境 Certify域渗透·学习再碰春秋云境已经过去好几个月了,偷偷吐槽一下感觉真心有点贵(
外网打点首先用fscan对靶机进行扫描,发现8983端口有solr服务,打开网址查看打开之后发现网站启用了log4j2,可能存在JNDI注入漏洞,CVE-2021-44228。
漏洞的主要原理是log4j开放了lookup功能
1Log4j2的Lookup主要功能是通过引用一些变量,往日志中添加动态的值。这些变量可以是外部环境变量,也可以是MDC中的变量,还可以是日志上下文数据等。
而lookup功能是可以支持jndi的
12JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。JNDI注入主要是用过下载远程class,来运行恶意代码。JNDI注入攻击时常用的就是通过RMI和 ...
春秋云镜 initial
春秋云镜 initial记录第一次渗透第一次渗透感觉收获还是很多的
之前一直敬而远之,上手之后发现也没有想象中的难,但是在很多工具利用的过程中出现了非常非常多意想不到的问题,配软件的能力的得到了提升说是(。
外网打点打开网址是thinkphp框架,先用工具开扫
https://github.com/bewhale/thinkphp_gui_tools
这时候我遇上了第一个问题,这也是我经验不足的体现,这是官方给的执行命令java -Dfile.encoding="UTF-8" --module-path "C:\Program Files\Java\javafx-sdk-11.0.2\lib" --add-modules "javafx.controls,javafx.fxml,javafx.web" -jar "xxx.jar"这时候可以看到我们是需要额外下载一个javafx-sdk的,但是我直接下载了上面的11.0.2的版本,出现了不兼容问题,后面查阅资料我又下载了匹配本地jdk版本的sdk。
这时候还 ...
CISCN
CISCNWEB主要写的是新学到的两个知识点涉及到的两个题,分别是Python原型链污染,以及python栈帧沙箱逃逸。
sanic/src扫描下载源码。
1234567891011121314151617181920212223242526272829303132333435363738from sanic import Sanicfrom sanic.response import text, htmlfrom sanic_session import Sessionimport pydash# pydash==5.1.2class Pollute: def __init__(self):passapp = Sanic(__name__)app.static("/static/", "./static/")Session(app)@app.route('/', methods=['GET', 'POST'])async def index(request): return ...
hgameweek4
week4webReverse and Escalation打开网站需要登录抓个包,感觉activemq有点眼生,查一下发现是一个CVE-2023-46606,默认admin和admin登录一下github上有专用的工具https://github.com/SaumyajeetDas/CVE-2023-46604-RCE-Reverse-Shell-Apache-ActiveMQ/按照步骤执行一下成功反弹shellcat /flag一下发现 Permission denied查找资料,原来是权限不够,涉及到提权的知识匹配一下可以用find命令提权find / -perm -g=s -type f 2>/dev/null find . -exec /bin/sh -p \; -quit 反弹一个有root权限的shell就可以啦
everse and Escalation.IIfind 命令会出现一个很奇怪的东西怀疑把find命令内部改过了,把文件base64复制下来,粘贴到010editor,用ida打开查看main函数观察函数,会以时间为种子生成伪随机数,需要我们一次性输入伪随 ...
hgameweek3
week3webwebvpn审计源代码,发现最后一段函数,要求我们从本地访问该网站,才能进行读文件操作
联想到SSRF但是怎么进行攻击?
接着审计代码,发现了典型能造成的原型链污染的函数update原型链污染的逻辑是
1原型链污染简单来说就是如果能够控制并修改一个对象的原型,就可以影响到所有和这个对象同一个原型的对象
而本网站的作用是构造一个VPN访问外网,联想到我们需要从本地访问,也就是说构造一个127.0.0.1的网站供我们访问同时注意函数禁用了__proto__因此我们采用constructor.prototype,而根据代码要求我们在user/info发送post请求同时调用req.body作为update函数的参数因此我们可以构造payload,考虑到访问ip地址默认80端口,而本地开放3000端口,因此访问的时候利用3000端口访问/flag就可以得到flag啦
ZeroLink网页是一个存储记忆的东西(?)可以查询记忆查看源码,发现以管理员身份登录后还可以上传文件等操作,因此我们先登录(登录界面也只能以管理员身份登录)但是远程的密码数据库中并不能查询到,通过询问 ...
hgameweek2
hgameweek2webWhat the cow say?打开网站,是一个让我们输入内容并且会由牛牛输出的框框,首先试了一些常见的注入命令,发现分别出现了WAF和ERROR,对一些常见关键词如&&出现了WAF过滤初步猜测是命令行注入,查了好久的绕过,原来是利用$()内联执行但是WAF了cat,flag绕过一下,发现显示该文件是个目录,没办法读取!
paylod=$( c$@at /f$@lag_is_here)
再ls+cat flag 就好啦
myflask打开网页是一串python代码要求我们把cookie中的username改为admin才能回显数据,刚开始试了改包,但是没成功,上网查询资料之后发现要伪造session,密钥是开靶机的时间,然后在网上找了脚本加密一下运行,在code里面数据不对,在虚拟机里的数据才是正确的,成功改了cookie。(感觉coded的版本太高了)随后发送post请求,发现 有一个pickle.loads函数。查阅发现能进行pickle的rce然后构造一个简单的脚本,同样在虚拟机里运行。然后cat /flag 就好啦
Sele ...
hgame
hgame week1webezhttp题目要求从vidar.club进入修改请求头之后,根据题目修改use-agent并从本地访问,这里普通的 X-Forwarded-For: 127.0.0.1,或client-ip:127.0.0.1都不可以,查阅资料,我们发现了X-Real-IP:127.0.0.1可以实现功能刚开始以为是需要抓包,尝试了半天结果是上方给的密文,试了一下base64解码,得到flag
bypass it题目要求我们登录,但是首先要注册,点击注册会根据弹窗返回登陆页面,根据提示,我们禁用js,成功登录
Select Courses这题模拟的是选课系统,随机会有课放出来,因此我们搞个爬虫判断课程是否有余量并不断发送请求
12345678910111213141516171819202122232425262728import jsonimport requestsfor i in range(5): while(1): a=requests.get('http://47.100.137.175:30125/api/courses ...
PHP
BUU-PHP爆破目录下载源码查看网址,通过备份网站的线索可以想到是可以通过爆破目录下载源码的,我们直接尝试www.zip,获得源码。
代码审计源码,我们获得了flag.php,经过尝试是一个假flag,于是接着进行代码审计。
123456789101112131415161718192021222324252627282930313233343536373839404142434445#index.php<!DOCTYPE html><head> <meta charset="UTF-8"> <title>I have a cat!</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css"> <link rel="stylesheet" href=" ...
文件上传
buu 文件上传漏洞此题是让我们上传文件我们通过尝试,发现需要图片并且是jpg格式,我们首先尝试构造一个一句话木马,方便后续进行读取flag我们通过修改content-type和文件后缀上传文件要求不能是php文件,我们尝试php2,php3,phtml的后缀,最后发现phtml成功绕过这条线索要求不能有<?即不能有php文件内容,我们通过Js内嵌php代码可以实现绕过
<script language='php'>@eval($_POST['cmd']);</script>还是不可以,可能是文件头没有修改,我们查找资料发现jpg的文件头为FFD8FF。通过010editor我们修改文件内容成功绕过,并上传文件(图偷的)
我们想要读取文件,在文件上传漏洞中一般在upload或根目录下,然后就可以进进行一句话木马的常规操作读取flag啦。
