反序列化漏洞
反序列化漏洞一、定义序列化(Serialization) 定义:将程序中的对象(如用户信息、商品数据)转换为可以存储或传输的格式(字符串/二进制) 类比:把乐高模型拆解成零件清单 常见格式: JSON:{"name": "Alice", "age": 25} XML:<user><name>Alice</name><age>25</age></user> 二进制格式(Java的Serializable,Python的pickle) 反序列化(Deserialization) 定义:将序列化的数据还原为程序可操作的对象 类比:用零件清单重新拼装乐高模型 关键点:恢复数据的同时可能恢复对象的方法和属性 二、反序列化漏洞的原理 程序接受不可信的序列化数据。 反序列化过程自动执行特定方法(如PHP的__wakeup(),Java的readObject())。 攻击者可以控制输入的内容。 危险操作举例: 123//...
SQL注入【联合注入-字符型】
SQL注入【联合注入-字符型】概述注入的本质 用户输入的数据被当做代码执行 注入条件 用户可以控制传参 用户输入的语句被带入数据库并执行 显错注入原理 用户输入的数据被当做SQL语句执行,并带入数据库执行 对用户输入的数据没有做任何过滤,并且将结果返回到页面 没有做任何防护 注入的关键操作 构造闭合 注入基础MySQL注释符:# 或 –空格 或 /**/内联注释:/*! SQL语句 */ 只有MySQL可以识别,常用来绕过WAF注入探测符:常使用 \ 进行探测 靶场Less-11、靶场 2、根据前面的数学型注入,可先使用and 1=2 探测页面无反应 3、使用探测符号\ 4、根据报错信息 ‘’1' LIMIT 0,1’ ==> ‘1' LIMIT 0,1 (反斜杠通常为转义符)==>可猜测变量id由单引号字符围绕构造payload: id=1’ – q (–空格...
SQL注入【堆叠注入】
SQL注入【堆叠注入】原理在SQL数据库中,每条语句是以;分开的,堆叠注入就是一次性注入并执行多条语句(多语句之间以分号隔开)的注入方式。 局限性 多语句执行受数据库类型、API、数据引擎的限制,有的不能实现。 增删改也收到用户权限的限制。 靶场Less-381、单引号构造闭合 1http://192.168.168.129/sqli/Less-38/?id=1' -- qwe 2、新建一张数据表 1http://192.168.168.129/sqli/Less-38/?id=1'; select * from users;create table user like users; -- qwe 3、新建用户 1http://192.168.168.129/sqli/Less-38/?id=1'; insert into users values(20,'mark','mark');-- qwe
XSS漏洞
XSS 一、原理跨站脚本攻击(Cross-Site Scripting,XSS)是一种常见的安全漏洞,攻击者通过向网页中注入恶意脚本代码,使其他用户在浏览该页面时执行这些脚本,从而窃取用户数据、劫持会话或进行其他恶意操作。 二、XSS漏洞类型XSS主要分为三种类型: 存储型XSS(Stored/Persistent XSS) 原理:恶意脚本被永久存储在目标服务器(如数据库、留言板、用户评论等),当其他用户访问包含该脚本的页面时触发。 示例:攻击者在论坛的帖子中插入恶意脚本,所有查看该帖子的用户都会执行该脚本。 反射型XSS(Reflected XSS) 原理:恶意脚本作为请求参数(如URL、表单输入)发送到服务器,服务器未过滤直接返回给用户浏览器执行。 示例:通过钓鱼链接诱导用户点击类似 http://example.com/search?q=<script>恶意代码</script> 的URL。 DOM型XSS(DOM-Based...
前后端联动
前后端联动登录板块1、登录界面 2、正确账号进行登录 3、输入错误密码或用户名登录 4、输入不存在的用户名进行登录 注册板块1、注册界面 2、进行用户注册 3、注册两次密码不同时 4、注册已经存在的用户名时 源码登录界面-index.html12345678910111213141516171819<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>登录</title></head><body><form action="denglu.php" method="POST"> <h2>登录界面</h2> 用户名:<input type="text" name="username" > <br /> 密码:<input...
SQL注入概述
SQL注入概述 SQL 结构化查询语言(Structured Query Language)简称SQL,一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。 结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,...