数据结构
第一章 (三要素、算法、复杂度)基本概念和术语什么是数据? 数据元素和数据项 个人理解:数据元素和数据项都是相对而言的,例如对于一个银行系统(它的数据元素就是每个客户,而每个客户又有自己独特的信息,这些信息即为数据项),当然图片的例子,信息(数据项)有时候也可以再进行分隔(eg:地址信息还可以细分为省、市、区),这个称为组合项 数据结构、数据对象 数据类型、抽象数据类型数据类型 抽象数据类型 一个数学模型+定义该模型上的一系列操作,包含了数据对象、逻辑结构、操作,但是不涉及存储实现,只描述怎么做 ADT只是一个抽象的概念,这个抽象概念中你可以随便定义数据对象,随便定义函数,具体实现有c中的结构体,java,c++中的类,但是它属于一种更加抽象的概念,属于类、结构体…的上层概念 数据结构三要素逻辑结构 物理结构(存储结构) 逻辑结构不能决定物理结构,任何一种逻辑结构都可以使用任意物理结构进行存储 数据的存储结构会影响存储空间分配的方便程度和对数据运算的速度 存储结构实现了数据结构的定义,同时也确定了逻辑结构及其关系 顺序存储 物理顺序和逻辑顺序是相同的 链式存储...
dalfox手册
dalfox介绍 有攻击就有脚本,有脚本就有工具。这是目前为止,我找到的xss里面,一个比较好用的工具了。网络上鼓吹的XSStrike,我个人觉得并不好用。Dalfox是一个强大的开源XSS(跨站脚本)扫描工具,专注于自动化漏洞检测和参数分析 。它的名称中”Dal”是韩语”月亮”的意思,”Fox”代表”XSS查找器”。 dalfox下载安装 如果你不追求最新的改动,直接下载release版本就可以了。 hahwul/dalfox: 🌙🦊 Dalfox is a powerful open-source XSS scanner and utility focused on automation. 在release版本中,根据自己的电脑架构选择对应的版本即可,darwin是macos,amd是大多数笔记本电脑的架构,也就是x64。我个人下载的是release版本中的win_x64,开箱即用(打开是一个exe文件),无需配置环境。 dalfox使用基础选项url:指定URL扫描(这个exe我改名了,原先的太长了) 1dalfox.exe url http://1...
XSS
前言 之前一直没有系统的学习xss,有几个原因,一直觉得服务器太贵了,第二个就是js的语言没学好,按照我的学习计划,在寒假就应该将top10漏洞全部复习巩固完成。结果到开学的昨天,才把sql注入写完(可能是我个人太啰嗦了),现在开始我个人认为的top10中xss。 什么是xss XSS(跨站脚本攻击,Cross-Site Scripting{这里我在初学的时候,还了解了他的首字母明明是css,为什么叫xss攻击,是因为这和前端的css技术重合了,所以我们管这个攻击叫叉ss攻击,不读x哦})是一种常见的网络安全攻击技术,攻击者通过在Web应用程序中注入恶意的客户端脚本代码,当其他用户访问页面时,这些脚本会在他们的浏览器中执行,从而窃取敏感信息或劫持用户会话。 由于Web应用的功能多样性和浏览器渲染机制的差异,XSS攻击手法也因注入点和触发方式而不同:主要分为三种,例如反射型XSS中,攻击者将恶意脚本放在URL参数中,通过社交工程诱骗用户点击,服务端将脚本“反射”回页面执行;存储型XSS则更为危险,攻击者将恶意脚本直接存储在服务器端(如评论区、个人资料),任何访问受影响页面的...
云服务器网站部署
前言 本来是top10知识复习与巩固的,结果复习到了xss,之前一直没有搞服务器,每次都是网上搜索解决的,干脆就长期买断一个服务器吧。这样就写了这篇文章。 Ubuntu服务器安装 由于是云服务,压根就没有安装系统这一步,这我也就直接跳过了 大学生嫖一个三大云厂商服务器 我个人选择的是ubuntu22.04,无他,centos不更新了,最开始我也是学的centos的,但是后面慢慢转到了ubuntu 添加用户 既然上了公网,这里就不推荐root执行,以及root远程登录了,怎么说也是学安全的,总不能一直使用root登录吧(我们导师每次看到我虚拟机的root账户都要蛐蛐我)。 首先使用aliyun自带的web远程登录(这里就是root登录,而且是免密的) 1useradd -m -s /bin/bash -G sudo -c "ssh access" username 我这里就是创建了家目录,以及指定了登录shell,写了一个注释,分配了sudo权限 选项 解释 -c, --comment COMMENT 添加注释,通常用于填写用...
sql注入
前言 之前的sql注入笔记写得太垃圾了,自己都看不懂,现在正好放假,重新再整理一篇,随便回顾一下,至于为什么不用sqlmap一把梭,既然是笔记了,全部都粘sqlmap一把梭的截图也不好吧,当然最后我会写一下sqlmap的用法的 什么是sql注入 SQL注入(SQL Injection)是一种常见的网络安全攻击技术,攻击者通过在Web应用程序的输入字段中插入恶意的SQL代码,欺骗数据库服务器执行非授权的SQL查询命令。 由于数据库系统的架构和SQL语法存在差异,SQL注入手法也因数据库类型而不同:例如MySQL中常用--或#注释,Oracle则使用--并依赖双竖杠||拼接字符串;Access数据库需要借助IIF()函数进行盲注判断;而在Redis这类键值数据库的注入则截然不同——攻击者主要利用未授权访问或通过EVAL命令执行Lua脚本,或通过CONFIG SET修改持久化路径来写入Webshell,其本质是利用了NoSQL的指令注入而非传统的SQL语法注入。 当然由于mysql数据库的开源,以及便捷性,我们还是主要讨论mysql数据库的sql注入方法 sql注入的成因 ...
sqlmap手册
sqlmap介绍 在网络安全和CTF比赛中,SQL注入漏洞的检测与利用往往是渗透测试的核心环节之一,而sqlmap正是一款强大且自动化的开源命令行工具,专为检测和利用数据库注入漏洞而设计。它基于自动化SQL注入技术,支持多种数据库类型、攻击载荷、数据导出以及绕过防护机制,帮助安全人员高效发现并验证SQL注入风险。 sqlmap安装安装地址:sqlmapproject/sqlmap: Automatic SQL injection and database takeover tool 下载成功之后,直接使用pip install -r requirements.txt安装所需依赖库即可 sqlmap使用 master目录之下python运行即可 基本选项-u URL:指定目标URL扫描 1python sqlmap.py -u https://1088673a-a4a6-4862-aa94-d5505b4826bf.challenge.ctf.show/api/?id=1&page=1&limit=10 扫描的URL中必须要有可以注入的参数,以我的例...
dirsearch手册
dirsearch介绍 在网络安全和CTF比赛中,目录扫描往往是信息收集阶段的第一步,而dirsearch正是一款高效且轻量级的命令行工具,专为探测网站隐藏目录和文件而设计。它基于字典发起爆破请求,支持多种扫描模式、递归检测、代理配置以及结果过滤。 dirsearch安装安装地址:maurosoria/dirsearch: Web path scanner 下载成功之后,直接使用pip install -r requirements.txt安装所需依赖库即可 dirsearch使用 master目录之下python运行即可 基本选项-u URL:指定目标URL扫描(必填) 1python dirsearch.py -u https://f8980de5-1154-44ff-9a00-42dcadca075a.challenge.ctf.show/select-no-waf-4.php Extensions:代表扫描哪些后缀的文件 Threads:扫描的线程大小,在真实的网站扫描中,线程的大小决定你的ip会不会被waf封禁 wordlist size:扫描字典的...
正则表达式
正则表达式 正则表达式默认只匹配一个 正则表达式学习正则表达式(Regex)的开始与结束//代表正则表达式的开始与结束 /匹配字符/ .默认可以匹配所有字符的所有个 []默认匹配字符集[]匹配字符集默认只匹配一个,[]里面可以理解为或者的意思 例如:上图regex的意思是匹配yanyuan1或2或3ooo [^]否定字符集匹配这里的否定字符集匹配是否定字符集的并集 例如:上图regex的意思是否定匹配yanyuan1或2或3ooo [-]字符集里面的范围表示[a-z]:小写字母范围 [A-Z]:大写字母范围 [0-9]:数字范围 [a-zA-Z0-9]:混合字母数字匹配 [\u4e00-\u9fa5]:中文匹配 [!-.]:!"# $ % & ' ( ) * +, - .一部分特殊字符匹配 [^a-zA-Z0-9\u4e00-\u9fa5]:特殊字符匹配,(换行符也匹配) *号匹配*号表示一个字符完全不匹配或可以匹配多次。例如,表示字母 e 在下方文本中不出现,只出现 1 次或者并排出现多次。 +号匹配+号表示一个字符可以出现一...
反弹shell
什么是shellShell 俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。简单说用户通过壳(shell)访问操作系统内核的服务,也就是由壳到内核,执行系统命令。 用户->外围程序(shell)->内核->硬件 什么是反弹shell反弹shell(reverse shell),就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。 为什么要反弹shell通常用于被控端因防火墙受限、权限不足、端口被占用等情形。 举例:假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标ip:目标机器端口),这是比较常规的形式,我们叫做正向连接。远程桌面、web服务、ssh、telnet等等都是正向连接。那么什么情况下正向连接不能用了呢?有如下情况: 某客...
javaWeb
tomcat导入idea 添加成功tomcat之后,再将模块改为web模块 然后选择导入web框架即可 idea2024.1 配置Servlet踩坑idea没有自动识别java源码目录,maven的pom.xml,url的web目录,全部都要自己导入 java源码目录识别 web目录识别 maven的pom.xml导入 tomcat运行与修改 安装目录下解压下载的tomcat包,点击bin/start.bat脚本 命令行中文乱码修改安装目录下的conf/logging.properties文件 这4个编码修改成与命令行一样的编码就行了,中国的win11命令行默认是gbk 方法一:把上面四个编码改成GBK 方法二:修改命令行的编码为UTF-8 设置里面的更改国家和地区 选择管理语言设置 重启之后命令行的编码就是UTF-8了 tomcat网页启动端口修改还是安装目录下的conf/server.xml 修改8080端口为9999 启动成功如下: servlet基本概念 Servlet是运行在Web服务器上的Ja...









