Java反序列化入门
最近打工需要学这个,同样是反序列化,Python和PHP的就好理解多了,Java的果然还是复杂不少。。。
主要是对Java的各种架构也都不怎么理解,需要进行一个从零开始的入门
呜呜呜我好菜
Java反射机制
反射是Java反序列化的一大关键利用点
说实话,一开始完全看不懂为什么要叫反射这么个名字,我觉得应该先明白反射是怎么回事,如下反射介绍部分均参考文末大哥链接,”正射”这个概念的提出感觉就让人豁然开朗了,很强
前两天祥云杯师傅们大力输出,我大力划水看了一个题,今天比赛结束看wp开始学习
学习之前先批评一下这个比赛的py程度,可能是20w的烂钱太过诱人,导致大家的py程度前所未有的高,py的具体内容见这篇知乎回答
是先猜数字再SSTI,SSTI经典过滤,然后额外过了了通配符和flag
猜数字是在限制范围内二分猜50次,理论上必然猜对
但是我可以直接进行一个NAN的输入,很有意思的是NAN不大于任何数,也不小于任何数,但你把它当数字输入也不报错,这样子就直接过了猜数字
SSTI只会抄payload,过滤了一下没调通,抄的任意文件读能用,读了下源码看过滤,flag位置没找到,还是要拼字符串去执行命令
经典字符串加法过过滤{{joiner.__init__.__globals__.__builtins__['__impo'+'rt__']('o'+'s')['po'+'pen']('c'+'at /super_secret_fl'+'ag.txt').read()}}
摸了两天的鱼,今天晚上找了一晚上资料把这段补上
HTTPS系列学习的根本原因都是因为最近在学习代理怎么用,然后对在代理下运行的HTTPS安全性产生了一定的困惑,加之以burp能明文抓取HTTPS包,更加困惑了
今天最后翻到了一个国外超级大哥文章的翻译,感觉是众多资料中讲的最清楚的了
在一切开始之前,先回顾一下https链接建立到TLS握手之间的操作
再摸一个图出来
可以看到,大家还是老老实实先来一个TCP三次握手,先把TCP层面的链接建立起来,然后开始进行TLS的握手,client hello,server hello+证书,随机数验证blblbl,走上上篇文章讲到的HTTPS认证过程的老路,这里重复一次的意义就是引入这个TCP链接建立过程,方便后面讲
事情要说我想申请一个通配符证书说起,从通配符证书到let’s encrypt到OCSP服务器被墙到学习HTTPS证书吊销的奇怪学习链
先在这推荐一下let’s encrypt,免费发放通配符证书,再也不要一个子域名一个子域名的申请啦
证书有效期只有三个月,可以自动更新,但是自动更新需要的OCSP服务器被墙,导致了这篇文章的出现,愚蠢的解决方案是每三个月重新申请新的证书
在这之前,先简单的复习一下HTTPS到底是怎么完成双向认证的
1.服务器向客户端发送证书和公钥,客户端看一下证书的签发单在不在本地安装的证书里面,再看看过期时间,域名对应之类的,用发过来的公钥算一下这个证书和签名对不对得上,有机会还会看看这个证书是不是被吊销了(这就是这篇文章的主题所在)
2.验证通过,客户端产生一个随机数,用公钥加密还给服务器,服务器解密之后这个随机数就是两方的对称加密密钥了
3.开始用对称密钥通信
起因还是最近把博客迁到国内,往常用的Chrome,看自己的Gitpage是有小锁的,心血来潮用Edge试了试自己新注册域名的https,结果居然和我说不安全?让学长用Safari帮忙试了下也显示不安全,就很气,然后进行了一通学习
毕竟Chrome作为”世界上最安全的浏览器”,别人报不安全他报安全就应该是很离谱的事情
查看成因,Edge的警告是证书没问题但是图片可能存在诱骗,后来发现是拉自己QQ头像的那个链接写的是HTTP,而这种在HTTPS中引入HTTP资源的情况就被称为Mixed Content
这显然可能引发奇怪的安全问题,如果在HTTPS中引入了HTTP内容,结果这个HTTP内容被中间人攻击或者DNS污染之类的控制了就很致命,在这样的界面上如果还报安全,那就害人了