Tips
未读非常惬意的周五晚上,吃完饭寻思看会剧,突然微信收到了个消息
?C++?根本没学过啊,不管了,发来看看
力扣?上次写力扣题还是大一了,还是写的其他语言(具体什么语言我都忘了..)
看了看发给我的图片,先看报错(一个string未声明,一个是少标点),寻思着Leetcode题解不可能出这种错误啊
不管了,要到链接看看
https://leetcode.cn/problems/longest-substring-without-repeating-characters/
这个题解贴上去确实没毛病
放到编辑器里一看,不对啊,头文件和mian哪去了
没怎么刷过Leetcode,不知道它写题的处理逻辑,我还以为要交完整的代码
简单来说就是,Leetcode的逻辑是,你的代码只需要满足算法即可,并且Leetcode刚开始默认会给你封装一个函数,你写的代码往该函数填充,不需要考虑其他东西,只需要考虑算法本身;而当把题解cv到编辑器里,会因为没有头文件和main函数报错
想在编辑器运行也很简单,引用对应头文件,创建main函数,并且在main函数里实例化这个类并且调用其中包含我们算法函 ...
SQL1.参数长度异常:攻击者通常会在SQL注入攻击中使用长参数来尝试构建恶意语句,因此在网络流量中需要寻找异常长度的参数。2.非法字符:攻击者通常使用非法字符来构建恶意SQL语句,如单引号、分号等。3.异常请求:攻击者可能会在HTTP请求中包含多个语句或查询,或者在HTTP请求中包含错误或缺失的参数。4.错误响应:如果应用程序未正确处理SQL注入攻击,则可能会返回错误响应。攻击者可以通过分析响应以查找此类错误,并尝试进一步攻击。5.非常规流量:攻击者可能会在较短时间内发送大量请求,或在同一时间窗口内多次发送相同请求。这种非常规流量模式可能表明攻击正在进行中。
出现一些特殊字符:比如单引号括号’(出现SQL命令或语句:增加、删除、修改、查询出现注释符号:比如连续两个减号–url上出现万能密码字段:’or’1’=’1
通过http数据流中的sql payload来定位sql注入,观察返回包中的内容(是否返回了如数据库名之类的敏感信息、状态码)
看请求参数、请求头、请求体中是否包含SQL语句或关键字(比如union select)
sqlmap流量特征:
若攻击者使用sqlmap ...
场景在打nday时,遇到了一个时间盲注,我在通过正常请求时发现无法进行时间盲注,于是将网上的poc信息复制粘贴下来,只替换里面的host请求头,发现是存在时间盲注的
失败poc:
POST /cpasm4/cpasList/getCurserIfAllowLogin HTTP/1.1Host: 139.159.251.219:8280User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflate, brUpgrade-Insecure-Requests: 1Content-Length: 70ygbh=q' ...
介绍在前后端数据传输交互中,经常会遇到字符串(String)与json,XML等格式相互转换与解析,其中json以跨语言,跨前后端的优点在开发中被频繁使用,基本上是标准的数据交换格式。它的接口简单易用,已经被广泛使用在缓存序列化,协议交互,Web输出等各种应用场景中。FastJson是阿里巴巴的的开源库,用于对JSON格式的数据进行解析和打包。
Fastjson-组件安全复现
Maven引用Fastjson
创建需转换类对象User
使用Fastjson进行数据转换
数据转换(对象转Json,Json转对象)
对象转Json(带类型)
JSONObject.toJSONString(u)SONObject.toJSONString(u,SerializerFeature.WriteClassName)
Json转对象
JSON.parseObject(exp)
本地利用
安全开发
未读介绍Spring Boot是由Pivotal团队提供的一套开源框架,可以简化spring应用的创建及部署。它提供了丰富的Spring模块化支持,可以帮助开发者更轻松快捷地构建出企业级应用。Spring Boot通过自动配置功能,降低了复杂性,同时支持基于JVM的多种开源框架,可以缩短开发时间,使开发更加简单和高效。
Web应用-路由响应创建项目选择Spring Initializr
修改服务器URL:https://start.aliyun.com(速度更快版本更稳定)
新建文件controller/IndexController
访问错误路由,触发springboot经典报错
无参数:
get访问attackxuget,触发getindex方法,页面回显get test
post访问attackxupost,触发postindex方法,页面回显post test
有参数:
get访问attackxu_get,触发get_g方法,页面回显“get test”和传递的参数name值
get访问attackxu_post,触发post_p方法,页面回显“post ...
介绍是一个基于项目对象模型(POM)的强大项目管理工具,它主要服务于 Java 平台的自动化构建。Maven 不仅提供了包管理的功能,还通过其丰富的插件支持了项目的开发、打包、测试和部署等一系列过程。
传统工程我们直按把jar包放置在项目中, Maven工程真正的jar包放置在仓库中,项目中只用放置jar包的坐标。不使用Maven工具,当做 Java 项目需要第三方依赖包时,将别人打好的 Jar 包下载到本地,然后手动指定给项目。另外,比如版本控制,需要新版本怎么办,重新下载,重新指定,这个过程操作麻烦。而用了 Maven 之后,需要什么包,直接在 pom.xml 中添加几行 xml 代码(添加所依赖jar包的坐标),指定包名、版本等,就可以了,方便开发。
moven下载配置Maven下载配置教程:https://www.jb51.net/article/259780.htm#_label0
jar仓库:https://mvnrepository.com/
Maven 引用 Log4j引用过程在 pom.xml 文件中添加引用引用代码是那个 Jar 仓库搜索到之后复制 Maven 的代 ...
介绍Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
Log4j-组件安全复现
创建Maven并命名为Log4jDemo
找到对应版本Apache Log4j Core » 2.14.1,并导入至项目中pom.xml文件中
并刷新Maven则导入成功
在java下创建Log4jTest.java 文件,导入引入的第三方Log4j相关包
Log4j 使用: 代码使用 Log4j 2.x 提供的日志功能,通过 LogManager.getLogger 获取一个 Logger 实例,然后使用 Logger.error 记录错误日志。
在 Logger.error(“{}”, code); 中,code 的值是 ${java:os}。这是 Log4j 的变 ...
介绍Java Naming and Directory Interface (Java 命名和目录接口 ),JNDI 提供统一的客户端 API,通过不同的服务供应接口(SPI)的实现,由管理者将 JNDI API 映射为特定的命名服务和目录服务,使得 JAVA 应用程可以通过 JNDI 实现和这些命名服务和目录服务之间的交互。
JNDI是一个接口,在这个接口下会有多种目录系统服务的实现,通过名称等去找到相关的对象,并把它下载到客户端中来。用于在分布式环境中查找和访问命名和目录服务。它允许Java应用程序通过名称引用资源,如数据库连接、远程对象等。
反序列化常用的两种利用方式,一种是基于RMI,一种是基于ldap。
RMI:远程方法调用注册表LDAP:轻量级目录访问协议
调用检索:Java为了将Object对象存储在Naming或Directory服务下,提供了Naming Reference功能,对象可以通过绑定Reference存储在Naming或Directory服务下,比如RMI、LDAP等。javax.naming.InitialContext.lookup()
looku ...
创建javaee项目
创建新项目时可以删除的内容:
Servlet&路由&周期https://blog.csdn.net/yxmoar/article/details/109889006
什么是ServletServlet是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。使用Servlet可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。本章内容详细讲解了web开发的相关内容以及servlet相关内容的配置使用,是JAVAEE开发的重中之重。
Servlet API
创建一个类继承HttpServlet
web.xml配置映射关系具体参考:https://blog.csdn.net/weixin_52937170/article/details/142183673
当访问index时,经过路由配置访问到IndexServlet,由于是GET请求,触发了doGet方法(类似于反序列化的魔术方法)
类似的 触发doPost方法:
还 ...
留言板功能
mysqli函数&增删改查PHP操作数据库函数
常用:mysqli_connect() 打开一个到MySQL的新的连接。mysqli_select_db() 更改连接的默认数据库。mysqli_query() 执行某个针对数据库的查询。mysqli_fetch_row() 从结果集中取得一行,并作为枚举数组返回。mysqli_close() 关闭先前打开的数据库连接。
查:select * from 表名 where 列名=‘条件’;增:insert into 表名(列名1, 列名2) value(‘列1值1’, ‘列2值2’);删:delete from 表名 where 列名 = ‘条件’;改:update 表名 set 列名 = 数据 where 列名 = ‘条件’;
mysqli.connect函数连接数据库构建数据库连接,以及执行数据库插入操作
发现可以插入数据,但是由于用户名和内容可以不进行添加就加入数据库
多加一层判空,如果<font style="background-color:rgba(255, 255, 255, 0);& ...