Me_and_My_girlfriend
环境准备https://www.vulnhub.com/entry/me-and-my-girlfriend-1,409/ 靶机下载,然后和Hackademic.RTB1一样就行 复现 扫一下,发现靶机 开放ssh 22端口 xff伪造一下,在bp里配置一下规则试每次发包都含有xff的伪造 在内置浏览器就可以访问了 随便注册一个然后进行登陆 可以测试一下 泄露了用户名和密码,我们猜测此用户名和密码和ssh远程登陆的用户名和密码有关 尝试登陆,id为5可以登陆成功 拿到flag1 然后进行信息收集 php提权, 进入root得到flag2
Hackademic.RTB1靶场复现
环境准备靶场地址,直接下来搭建就行 https://www.vulnhub.com/entry/hackademic-rtb1,17/ 然后用kali进行攻击 这边可以选择NAT,打开就行,不许要知道账号密码 复现扫描到这个靶场 信息收集找到 wordpress我们可以搜索一下有什么漏洞 这边有sql注入,我们可以测试一下 存在注入点,我们使用sqlmao去跑 账户和密码 扫一下目录 然后我们一个一个试一下 会发现admin是GeorgeMiller q1w2e3 然后我们可以更改上传文件后缀名,然后点更新,有一个上传口(注意左上角要点) 写个反弹shell的php文件,上传getshell 这里传的是shell1.php文件哈 信息收集发现权限低,在去找找漏洞看看有没有内核提权 下载到本地,开一个web服务 访问下载过来 编译成可执行文件 执行 提权成功
cc链6
环境准备因为cc链6和cc1的尾部相同只是触发的起点不同,所以我使用的是cc1的环境 分析这次我们从按着代码顺序来逐步分析 第一步123456789Class c = Runtime.class; Transformer[] t = new Transformer[]{ new ConstantTransformer(c), new InvokerTransformer("getDeclaredMethod", new Class[]{String.class, Class[].class}, new Object[]{"getRuntime", null}), new InvokerTransformer("invoke", new Class[]{Object.class, Object[].class}, new Object[]{null, null})...
sql-未知列名的注入
参考https://www.jianshu.com/p/6eba3370cfab 未知列名查询1.正常下我们是查询到以下情况 2.当我们结合到union的方法时 1select 1,2,3 union select * from users; 3.然后我们就可以使用数字来对应列了,例如3对应表里的pass 1select `3` from (select 1,2,3 union select * from users)a; 这边解释一下为什么要加a,加上a类似于 1select `3` from (select 1,2,3 union select * from users) as a; 我们在查询时from后面要有一个名称,而我们上述的作用就是将()里的子查询命名为a,这样才可以查询到3的列。 4.当`被waf掉时,我们可以使用别名的方法绕过 1select b from (select 1,2,3 as b union select * from users) as a; 5.查询多个列时 1select group_concat(`2`,0x3a,`...
cc链1(2)
和第一条链子类似,只是这里使用了lazyMap类里的get方法来调用了transform,继续向上找谁调用了get方法,我们可以找到AnnotationInvocationHandler类里的invoke方法调用了get方法,而AnnotationInvocationHandler的接口是invocationHandler,所以在动态代理时可以调用到invoker所以我们可以实现一下。 实现1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162package com.ex1.www;import org.apache.commons.collections.Transformer;import org.apache.commons.collections.functors.ChainedTransformer;import org.apache.commons.collections.functors.C...
cc链1
环境准备1.下载jdku65 https://blog.lupf.cn/articles/2022/02/19/1645283454543.html 2,依赖配置 12345678<dependencies><!-- https://mvnrepository.com/artifact/commons-collections/commons-collections --><dependency><groupId>commons-collections</groupId><artifactId>commons-collections</artifactId><version>3.2.1</version></dependency></dependencies> 3.将class文件转化为java文件 https://hg.openjdk.org/jdk8u/jdk8u/jdk/rev/af660750b2f4 点击zip,进行下载 然后解压j...
java任意类加载
三种方法的任意类加载第一种方法 使用URLClassLoder类进行任意类加载,具体实现如下: 12345URLClassLoader urlClassLoader = new URLClassLoader(new URL[]{new URL("file:///D:\\tmp\\")});//http也是可以的 Class<?> c = urlClassLoader.loadClass("test"); c.newInstance(); //URLClassLoader 任意类加载 第二种方法 使用ClassLoader里的defineClass方法 12345678910//不用出网 ClassLoader cl = ClassLoader.getSystemClassLoader(); Method cname = ClassLoader.class.getDeclaredMethod("defineClass", St...
java动态代理
静态代理静态代理概念在Java编程中,静态代理是一种设计模式,它允许通过一个代理类来控制对一个对象的访问。 静态代理实现先提供一个接口 123456package com.ex2.www;//定义一个接口public interface IUser { void show();} 接口的一个实现类 1234567891011package com.ex2.www;//实现接口的具体类public class Usermpl implements IUser { @Override public void show() { System.out.println("show"); }} 然后是一个代理类 12345678910111213package com.ex2.www;public class UserProxy implements IUser { IUser user; //使用接口数据类型 public UserProxy(IU...
java反射
java反射概念Java反射机制是在运行状态时,对于任意一个类,都能够获取到这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性(包括私有的方法和属性),这种动态获取的信息以及动态调用对象的方法的功能就称为java语言的反射机制。 java反射基本用法Person类 12345678910111213141516171819202122232425262728293031323334353637package com.ex.www;import java.io.IOException;import java.io.ObjectInputStream;import java.io.Serializable;import java.util.HashMap;import java.util.Map;public class Person implements Serializable { private transient String name; private int age; public Person() { ...
[CISCN2019_华东南赛区]Web11
知识点Smarty SSTI {if}标签,其需要{/if}来进行配对,当然也可以使用{else}和{elseif}。全部条件表达式和函数都可以在if使用。 1{if phpinfo()}{/if} 题解第一种方法 找到注入点之后使用if标签来读取flag 第二种方法 直接进行命令执行。
