- 博客(72)
- 收藏
- 关注
原创 pathinfo函数
例如,对于路径 /var/www/html/index.php ,会返回包含 dirname (目录名,即 /var/www/html )、 basename (文件名,即 index.php )、 extension (文件扩展名,即 php )、 filename (文件名,不包含扩展名,即 index )的数组。- 在文件处理相关的操作中,可用于获取文件的扩展名,以验证文件类型是否符合要求。pathinfo() 是PHP中的一个函数,用于解析文件路径的信息。
2025-03-01 21:15:15
323
原创 move_uploaded_file($temp_file,$img_path)是什么意思?
比如在表单上传图片后,可使用此函数将图片从临时目录移动到专门的图片存储目录,实现图片的上传保存功能。- $temp_file :是上传文件在服务器上的临时文件名,这是PHP在接收到上传文件时自动分配的临时存储路径和文件名,比如 /tmp/php789D01.tmp。- $img_path :是指定的目标路径和文件名,即你希望将上传文件移动到的最终位置,例如 /var/www/html/uploads/image.jpg。使用时要确保目标路径有可写权限,且临时文件存在,否则函数可能会失败。
2025-03-01 21:14:43
364
原创 sqlmap里风险等级--risk是什么?
在 SQLMap 中,`--risk` 参数用于控制注入测试的侵入性和潜在风险等级。- 在 UPDATE 语句中,`OR` 条件可能修改整张表数据(例如:`UPDATE users SET password='123' OR 1=1`)。- 与 `--level` 配合:`--level` 控制检测的广度(如参数覆盖范围),而 `--risk` 决定检测的深度和破坏性,两者需结合使用。- 特点:引入包含 `OR` 条件的测试语句(如 `OR 1=1`),可能导致 UPDATE、DELETE 等写操作。
2025-02-26 20:25:30
587
原创 为什么所有sqlmap工具时,推荐直接对请求数据包注入?
抓取包含Cookie的请求包后,直接运行 `sqlmap -r request.txt --cookie "param=*"` 即可测试Cookie字段注入。将请求保存为文件(如 `-r request.txt`)后,SQLMap会自动标记带`*`的参数进行探测,无需手动指定目标参数。数据包注入支持通过 `--proxy` 或 `--tor` 隐藏真实IP,适用于高风险环境。- 通过 `--delay` 和 `--timeout` 降低请求频率,避免触发防护规则。1. 隐藏参数与复杂请求字段。
2025-02-26 10:43:50
381
原创 使用sqlmap调用cmd语句时,为什么要找Web服务器文件?
使用sqlmap调用CMD语句时寻找Web服务器文件的核心原因在于突破权限限制并构建攻击链。以下是具体分析: --- 1. 获取系统绝对路径以执行命令 - sqlmap通过`--os-shell`或`--os-cmd`执行CMD命令时,需在服务器上生成并上传两个文件(如脚本文件和后门文件)。若攻击者不知道Web应用的绝对路径,无法正确写入文件,命令执行将失败。 - 例如,通过读取服务器配置文件(如`/etc/passwd`或Web日志)可推测路径结构。 --- 2. 提取敏感信息辅助攻击 - 系
2025-02-25 18:27:43
529
原创 sqlmap工具在什么情况下不使用字典?
对支持系统表(如MySQL的`information_schema`、SQL Server的`sys`表)的数据库,SQLMap可直接查询系统表结构,无需字典猜解表名/列名。- 示例命令:`sqlmap -u "目标URL" -D 数据库名 -T 表名 --dump`,直接导出指定数据。- 示例命令:`sqlmap -u "目标URL" --dns-domain 外传域名`,通过DNS泄露数据。- 示例命令:`sqlmap -u "目标URL" --banner`,直接获取数据库Banner信息。
2025-02-25 18:11:43
400
原创 sqlmap工具的字典应用在什么情况下?
使用`--tamper`参数加载字典中的脚本(如`space2morehash.py`、`base64encode.py`),对注入语句进行编码变形。- 表名/列名枚举:结合`--tables`、`--columns`等参数,使用内置字典快速匹配常见表名(如`users`、`admin`)。- 文件上传:使用`--file-write`和`--file-dest`参数,配合路径字典上传WebShell或后门。- 内容模糊查询:通过`--search`参数调用字典,搜索特定关键词的数据库名、表名或列名。
2025-02-25 18:10:58
188
原创 什么是DNS协议?
正向解析:将用户易记的域名(如 `www.baidu.com`)转换为机器可识别的 IP 地址(如 `220.181.38.150`)。| CNAME 记录 | 域名别名(用于负载均衡或 CDN) | `cdn.example.com → example.com` |- 根域名服务器:全球共 13 台,管理顶级域名服务器地址(如 `.com`、`.cn`)。- 顶级域名服务器:负责特定顶级域(如 `.com`、`.org`)下的权威服务器信息。
2025-02-24 21:44:29
541
原创 什么是remote addr?
Nginx realip 模块:配置 `set_real_ip_from` 和 `real_ip_header`,从 `X-Forwarded-For` 中提取真实 IP。- 代理场景:若用户通过代理服务器(如 HAProxy、CDN)访问,`remote_addr` 会显示代理服务器的 IP,而非用户真实 IP。- 测试案例:通过伪造 `X-Forwarded-For` 头,`remote_addr` 仍显示实际发起请求的客户端 IP。关于 `remote_addr` 的解释。
2025-02-24 21:43:59
239
原创 ROOT权限支持load_file吗?
总结:MySQL的ROOT用户理论上支持`LOAD_FILE()`,但实际能否成功取决于`FILE`权限、`secure_file_priv`配置及操作系统文件权限。原因:`secure_file_priv`未配置或路径限制,需在MySQL配置文件(如`my.cnf`)中设置`secure_file_priv = ''`(允许任意路径)或指定合法路径。MySQL的`ROOT`用户默认拥有所有权限(包括`FILE`权限),理论上可以直接使用`LOAD_FILE()`读取文件。
2025-02-24 21:12:27
499
原创 SQL的增加语句
其中, table_name 是要插入数据的表名, value1, value2, value3,... 是要插入的具体值,这些值的顺序要与表中列的顺序相对应。这种形式可以指定要插入值的列,只需要为指定的列提供相应的值即可。VALUES (1001, '张三', 20, '男');VALUES ('李四', 22);
2025-02-22 19:44:49
537
原创 SQL的查询语句
上述语句从 students 表中选择成绩大于80分的学生数据,按性别分组,筛选出平均年龄大于20岁的组,以平均年龄降序排列,结果显示性别和平均年龄。- HAVING:用于对分组后的结果进行筛选,通常与聚合函数一起使用,如 HAVING COUNT(*) > 5 表示选择分组后记录数大于5的组。- ORDER BY:用于对查询结果进行排序, ASC 为升序, DESC 为降序,如 ORDER BY age DESC 按年龄降序排列。- SELECT:指定要查询的列。
2025-02-22 19:43:22
368
原创 什么是数据包的Host?
一般格式为 Host: <域名>[:<端口号>]。Host: api.example.com:8080 则表示目标服务器域名为api.example.com,端口号为8080。如服务器同时托管了example.com和test.com,客户端请求example.com的页面,请求数据包的Host字段为example.com,服务器据此处理请求。- API调用:客户端调用服务器的API接口时,Host字段指定API服务器的域名或IP及端口,确保请求到达正确的API端点,获取所需数据或执行相应操作。
2025-02-21 12:03:11
180
原创 什么是数据包的Referer?
例如,如果用户在百度上搜索一个关键词,然后点击搜索结果中的链接进入了另一个网站,那么在这个新网站收到的请求中,Referer字段就会显示百度的搜索结果页面的URL。比如图片网站可以检查Referer,如果发现请求不是来自自己的网站或者授权的域名,就可以拒绝提供图片资源,以保护自己的版权和带宽资源。不过,Referer字段的值并不是绝对可靠的,用户可以通过一些技术手段修改或者删除Referer信息,而且在某些隐私模式或特定设置下,浏览器也可能不会发送Referer信息。
2025-02-21 12:02:41
358
原创 什么是数据包的X-Forwarded-For?
X-Forwarded-For字段的格式通常为 X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip...。其中, client_ip 是原始客户端的IP地址,后面的 proxy1_ip 、 proxy2_ip 等是请求经过的代理服务器的IP地址,按请求经过的顺序排列。为解决该问题,X-Forwarded-For字段被引入,使代理服务器能在转发请求时添加该字段,记录客户端IP,让目标服务器了解请求的真实来源。若发现同一IP频繁发起异常请求,可采取防范措施。
2025-02-21 12:01:57
389
原创 什么是数据包的User-Agent?
Chrome/112.0.5615.49表示谷歌浏览器及其版本。- 安全防护:服务器能根据User-Agent检测异常请求,识别恶意爬虫等,若User-Agent显示是常见爬虫工具,服务器可采取限制访问等措施。- 统计分析:网站和应用可借此了解用户使用的设备和软件分布,用于市场调研、产品优化,如发现大量用户用特定版本浏览器出现问题,可针对性修复。- 兼容性处理:服务器可根据User-Agent识别客户端类型和版本,为不同设备、系统和软件提供适配内容,如为手机浏览器提供简化版网页。
2025-02-21 12:01:25
199
原创 什么是IIS?
安全可靠:具备多种安全机制,如身份验证、访问控制、SSL/TLS加密等,可有效保护服务器和网站数据安全,还支持应用程序池隔离等技术,确保不同应用程序间互不干扰,提高稳定性。- 支持多种服务:能提供多种互联网服务,如网页服务(HTTP)、文件传输服务(FTP)、简单邮件传输服务(SMTP)等,满足不同用户对网站发布、文件共享、邮件发送等需求。- 可扩展性强:支持各种插件和模块扩展,用户可根据需求添加功能,如安装第三方的ASP.NET模块、PHP扩展等,以支持更多的编程语言和技术框架。
2025-02-17 12:05:16
345
原创 IIS短文件漏洞适用版本
早期版本:IIS 1.0(Windows NT 3.51)、IIS 3.0(Windows NT 4.0 Service Pack 2)、IIS 4.0(Windows NT 4.0选项包)、IIS 5.0(Windows 2000)、IIS 5.1(Windows XP Professional和Windows XP Media Center Edition)、IIS 6.0(Windows Server 2003和Windows XP Professional x64 Edition)。
2025-02-17 12:04:41
203
原创 JWT是什么?
单点登录(SSO):在多个相关但独立的系统组成的大型应用环境中,用户只需登录一次,即可访问其他相互信任的系统,JWT可在不同系统间传递用户身份信息实现SSO。- 验证令牌:服务器接收到请求后,从请求头中取出JWT,根据密钥和算法重新计算签名,与JWT中的签名对比,若一致则令牌有效,可从载荷中获取用户信息进行后续处理。- 签名(Signature):用于验证JWT的完整性和真实性,通过使用头部指定的算法,对编码后的头部、编码后的载荷以及一个只有服务器知道的密钥进行计算生成。
2025-02-16 11:08:53
130
原创 JWT身份验证
后续请求:客户端在后续与服务器的交互中,会在每个需要身份验证的请求的请求头中携带JWT,一般放在 Authorization 字段中,格式为 Bearer <JWT>。服务器验证JWT:服务器接收到请求后,从请求头中提取JWT,并使用与生成JWT时相同的密钥和算法对JWT进行验证,检查签名是否有效、是否过期等。获取用户信息:若JWT验证通过,服务器从JWT的载荷中提取用户信息,如用户ID、角色等,然后根据这些信息授权用户访问相应的资源或执行相应的操作。如凭证有效,服务器会为用户生成一个JWT。
2025-02-16 10:55:21
499
原创 swagger
Swagger UI:是一个基于HTML、CSS和JavaScript的开源项目,用于将Swagger定义的API文档以美观、交互式的界面展示出来,方便用户浏览和测试API。- 开放平台:对于对外提供API的开放平台,Swagger可以为开发者提供清晰的API文档和测试环境,吸引更多的开发者使用平台的API,促进平台的生态建设。- 微服务架构:在微服务架构中,各个微服务之间通过API进行通信,Swagger可以帮助管理和文档化这些微服务的API,方便服务之间的集成和调用。
2025-02-15 11:45:34
207
原创 Java中的Actuator
端点暴露:借助Spring的MVC或WebFlux框架,将Actuator的各个端点以HTTP接口的形式暴露出来,以便外部工具或用户通过HTTP请求访问这些端点获取信息或执行操作。- 依赖注入与自动配置:基于Spring的依赖注入机制,通过自动配置功能,在应用启动时自动配置和初始化Actuator相关的Bean,加载相关配置和组件。- 数据收集与处理:利用Java的管理接口(如JMX)、各种监控工具和框架,收集应用运行时的各种数据,并进行处理和格式化,以合适的方式返回给用户。
2025-02-15 10:54:01
461
原创 在Java中,框架,模板,组件,插件是什么?
是一个为解决特定类型软件问题而设计的可复用的软件结构,它提供了一套基础的架构和一系列的工具、类库等,开发者只需在其基础上进行扩展和定制。比如Spring框架,提供了依赖注入、面向切面编程等功能,帮助开发者快速构建企业级应用,降低开发难度和复杂度,提高开发效率和软件质量。是具有特定功能和独立职责的软件模块,可在不同的项目或场景中复用。比如Swing组件,如按钮(JButton)、文本框(JTextField)等,它们具有各自的功能和属性,开发者可以将这些组件组合起来构建图形用户界面。
2025-02-14 19:20:03
108
原创 Thymeleaf
例如在HTML中使用 th:text="${user.name}" ,就可以将名为 user 的Java对象中的 name 属性值显示在页面上。- 模板片段包含:可以将页面中的公共部分提取为模板片段,然后在其他页面中通过 th:insert 、 th:replace 等属性进行包含和复用,提高代码的可维护性。- 语法简洁:使用自然模板语法,标签和属性与HTML相似,易于学习和使用,如 th:text 、 th:href 等属性来绑定数据和定义链接。
2025-02-14 18:52:42
280
原创 driver-class-name是什么?
Java通过 java.sql.Driver 接口与不同数据库交互,不同数据库有各自实现该接口的驱动类,如MySQL的 com.mysql.cj.jdbc.Driver 、Oracle的 oracle.jdbc.driver.OracleDriver 等。配置 driver-class-name 能让应用程序找到并加载对应的驱动类,进而与数据库建立连接。在Java应用程序,尤其是与数据库相关的配置中, driver-class-name 是用于指定数据库驱动类的全限定名的配置属性。// 加载数据库驱动。
2025-02-14 12:25:24
347
原创 Spring Boot
Spring Boot CLI:命令行工具,可快速创建、运行Spring Boot应用,如 spring init 创建项目, spring run 运行应用。- 快速构建项目:提供大量默认配置和启动器,如spring-boot-starter-web,引入后可快速构建Web应用,减少配置文件编写,开发者专注业务逻辑。- Spring Boot Starter:是依赖描述符,提供一站式依赖管理,如spring-boot-starter-data-jpa包含操作数据库所需依赖。"的 /hello 接口。
2025-02-14 11:38:41
475
原创 Fastjson
JSON数据解析:可解析复杂的JSON数据,提取其中的信息。如对于一个包含多个键值对的JSON字符串,能通过 JSON.parseObject(jsonStr) 方法将其转为 JSONObject ,再用 getString 等方法获取具体的值。- Web开发:在前后端数据交互中,常用来处理JSON数据,如将后端Java对象转换为JSON格式返回给前端,或解析前端传来的JSON数据。- 数据存储与传输:在数据存储到文件或数据库,以及网络传输等场景中,能高效处理JSON数据,确保数据的正确存储和传输。
2025-02-12 16:13:04
115
原创 JNDI是什么?
作用:它让开发人员在Java应用中通过统一接口查找和访问资源,如数据库连接、EJB组件等,而不用关心资源具体位置和实现细节,提高了代码可移植性和可维护性。- 与LDAP关系:LDAP是常用目录访问协议,JNDI可作为Java访问LDAP目录的接口,方便操作LDAP目录中的数据。- 对比其他命名服务:与CORBA的命名服务等相比,JNDI更专注Java环境,与Java应用集成更紧密,使用更方便。- 上下文:是JNDI操作的核心接口,代表命名空间的一个节点,可通过它查找、绑定、创建和删除对象。
2025-02-12 11:54:19
294
原创 Log4j
日志级别分类:有TRACE、DEBUG、INFO、WARN、ERROR、FATAL等,方便控制日志详细程度。- Logback:与Log4j类似,是Log4j的改进版,性能更好,与Spring等框架集成度高。- SLF4J:是日志门面框架,不提供具体日志实现,需结合其他日志框架使用,可方便切换底层日志框架。- 灵活的配置:可通过配置文件如XML、properties等,方便地设置日志级别、输出目的地等。- 多种输出目标:能将日志输出到控制台、文件、数据库、网络等,还支持多目的地同时输出。
2025-02-12 11:24:59
101
原创 Java的序列化和反序列化
网络传输:在分布式系统中,不同节点间经常需要传递对象,如远程方法调用(RPC)时,需要将参数对象序列化后通过网络发送,在接收端再反序列化。- 数据存储:将对象持久化到文件或数据库中,如缓存系统中,常将缓存对象序列化后存储到磁盘,服务器重启后再反序列化恢复。- 对象克隆:通过序列化和反序列化可以创建对象的深拷贝,新对象与原对象相互独立,修改一个不会影响另一个。- 反序列化时,类的定义必须与序列化时一致,包括类名、包名、成员变量等,否则可能会导致反序列化失败。
2025-02-11 11:10:42
435
原创 在java中,成员变量、构造方法和成员方法是什么?
如在 Person 类中定义 name 和 age 作为成员变量,用于表示人的姓名和年龄。- 定义:也叫实例变量,是在类中方法外定义的变量,用于存储对象的状态或数据,每个对象都有自己独立的成员变量副本。- 定义:在类中定义的方法,用于实现类的行为或功能,通过操作成员变量来完成特定的任务。
2025-02-10 11:09:17
358
原创 后缀名为.class是什么文件?
class 文件是Java程序在JVM上运行的基础,它包含了JVM执行Java程序所需的所有信息,包括类的结构、方法的字节码、字段信息、常量池等。通常会使用专门的反编译工具,如JD-GUI、Fernflower等,将 .class 文件反编译成Java源代码,以便查看和分析其中的内容。- 常量池:是 .class 文件的重要组成部分,存储了类中的各种常量,如字符串常量、数字常量、类和方法的引用等。- 方法表集合:包含了类中定义的方法的信息,如方法的名称、参数列表、返回值类型、方法体的字节码等。
2025-02-10 10:57:12
305
原创 什么是API?
比如操作系统提供的文件操作API,开发者无需了解底层文件存储原理,通过调用API就能进行文件读写等操作。- 实现系统集成:在企业级应用中,不同的系统如ERP、CRM等通过API进行集成,实现数据共享和业务流程协同。- Web API:基于HTTP协议,以JSON或XML格式进行数据传输,用于Web应用之间的交互。- 促进代码复用:许多成熟的库和框架都提供了丰富的API,如Java的 ArrayList 类提供了添加、删除元素等API,开发者可以直接调用,避免重复开发。return "获取位置信息失败"
2025-02-10 10:48:16
297
原创 java的反射机制
Field类:表示类的字段,可通过 Class 对象的 getFields() 等方法获取,利用 Field 的 set() 和 get() 方法来设置和获取字段值。Java反射机制是指在运行时,程序可以获取任何一个已知名称的类的内部信息,包括类的构造函数、方法、字段等,并可以在运行时创建对象、调用方法、访问和修改字段值。- Method类:代表类的方法,可通过 Class 对象的 getMethods() 等方法获取,再通过 Method 的 invoke() 方法调用方法。// 通过反射调用方法。
2025-02-10 10:44:25
295
原创 什么是JavaEE的监听器?
实现数据共享:通过 ServletContextListener 监听 ServletContext 的创建事件,在 contextInitialized 方法中可以加载一些全局共享的数据,如读取配置文件内容并存储到 ServletContext 中,供整个应用中的其他组件共享访问。Java EE监听器是实现了特定监听器接口的Java类,能监听Java EE应用中的各种事件,如ServletContext、HttpSession和ServletRequest的创建与销毁,以及它们属性的变化等。
2025-02-09 20:35:54
367
原创 什么是JavaEE的Filter过滤器?
Filter可对请求进行处理,比如修改请求头、参数等,然后决定是否将请求继续传递给下一个Filter或目标资源。响应时,数据会从目标资源反向经过Filter,Filter可对响应进行处理,如修改响应内容、添加响应头等,最后返回给客户端。- 日志记录与监控:记录请求和响应的相关信息,如请求路径、参数、响应状态码等,用于系统的日志分析和监控,帮助排查问题和了解系统运行情况。- 数据处理与转换:对请求或响应中的数据进行处理和转换,如统一字符编码,确保不同系统间数据传输的正确性和一致性。
2025-02-09 20:35:05
384
原创 SQL语句预编译
SQL语句预编译是指在数据库执行SQL语句之前,先对SQL语句进行编译和优化,将其解析为可执行的底层代码并缓存起来。- 防止SQL注入攻击:预编译语句会将用户输入作为参数处理,与SQL语句的主体部分分开,可有效防止恶意用户通过输入特殊字符来篡改SQL语句,增强了系统的安全性。- 提高性能:避免了重复的解析和编译操作,尤其在多次执行相同结构的SQL语句时,能显著减少数据库的处理时间,提高执行效率。- 缓存:将编译好的查询计划和相关的执行信息存储在缓存中,以SQL语句的文本或某种特定标识作为键值。
2025-02-09 12:12:17
209
原创 什么是Tomcat?
Tomcat是由Apache软件基金会开发和维护的轻量级应用服务器,它实现了Java Servlet和JavaServer Pages(JSP)规范,主要用于运行Java Web应用程序,是开发和部署Java Web项目的常用平台。- Servlet容器:作为Servlet的运行容器,负责加载、实例化和管理Servlet,处理客户端对Servlet的请求,将请求传递给相应的Servlet,并将Servlet的响应返回给客户端。- 轻量级:占用资源少,启动快,适用于各种规模的项目,尤其是中小型项目。
2025-02-08 11:19:34
490
原创 什么是Servlet?
然后调用Servlet的service方法,根据请求方法(如GET、POST等)来调用相应的doGet、doPost等方法处理请求,最后将响应结果通过ServletResponse返回给客户端。- 生成动态网页:可以根据不同的客户端请求,动态生成HTML、XML等格式的网页内容,与静态网页相比,能提供更丰富、个性化的用户体验。Servlet是一种基于Java的服务器端技术,它运行在Web服务器上,用于生成动态Web内容,响应客户端(如浏览器)的请求。
2025-02-08 11:16:20
297
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人