【笔记】吴恩达Generative AI with Large Language Models --- Week1
本篇为学习吴恩达DeepLearning.AI平台下《Generatvie AI with Large Language Models》笔记
课程:DeepLearning.AI — Generative AI with Large Language Models
链接:Generative AI with Large Language Models
Week1: Generative AI user cases, project lifecycle, and model pre-trainingTransformer Architecture1. LLM 与传统机器学习的输入输出方式差异和传统机器学习常见的“固定特征输入 → 预测标签/数值”不同,LLM 通常直接接收自然语言prompt(提示词)作为输入,然后生成 completion(续写/补全)作为输出。
Prompt:你给模型的上下文、指令、问题
Completion:模型根据 prompt 继续生成的文本(通常是逐 token 生成)
2. 为什么早期 RNN 系列模型不够好早期 RNN/ ...
React2Shell(CVE-2025-55182)原理拆解
参考phith0n师傅发布在代码审计知识星球(“Thenable的由来”、“Next.js调试环境配置”、“RSC是怎样解析数据包的?”、“React2Shell漏洞原理”)
panda师傅发布在代码审计知识星球(“React2Shell分析总结”)
CVE-2025-55182 - React Server Components RCE 漏洞深度分析
人工深度调试剖析 CVE-2025-55182 React2Shell 反序列化漏洞(一)
人工调试剖析 React2Shell 反序列化漏洞(二)- 原理、利用及 Bypass WAF 等
全网最优雅的 React 源码调试方式
来自Github的kavienanj的分析
为了真正看懂这个漏洞,我前后花了相当多的时间。期间反复对照了多篇不同视角的分析文章,又结合源码调试,一步一步跟着解析流程往下走,才逐渐把整条利用链串起来。
也正是在这个过程中,才越发体会到最初发现这个漏洞的研究者有多细。它并不是那种一眼可见的实现错误,而是藏在一系列内部细节产生的逻辑缝隙。能在这样复杂的解析路径里意识到数据正在被当成逻辑使用,本身就需要对 Reac ...
MCP(Model Context Protocol)学习笔记:下一代LLM接口标准 | 概念部分
近几年,大模型的发展速度实在太快了。 从最初单纯依赖 Prompt 的阶段,到后来兴起的 AI Agent,再到如今的 MCP(Model Context Protocol),每一次演进都在重塑人们与模型交互的方式。AI Agent 还在半年前是人人讨论的热门话题,如今却随着 MCP 的出现,逐渐淡出了视野。
为了跟上时代的脚步,我决定深入学习 MCP,通过本篇记录下自己的理解过程,并思考它在安全性与安全应用场景上可能带来的新变化。
本文参考:
吴恩达MCP课程
B站隔壁的程序员老王
Prompt,Agent,MCP都是什么Prompt2023 年,OpenAI 发布了 ChatGPT。当时的 AI 主要以聊天框的形式存在,我们输入的消息被称为 User Prompt,即用户提示词,通常是我们提出的问题或指令。
实际上,通过不同的提示词,用户可以在一定程度上塑造AI 的性格。例如:
- 当你说:“帮我修改我的论文。”
AI 会以助理的口吻给出中立的建议;
- 而如果你说:“假设你是我的导师,请帮我修改论文。”
它的语气可能会更加犀利、批判性更强(bushi)。
在这 ...
NexusCTF Write-Up By YoSheep
NexusCTF Write-Up By YoSheep
PLACE: 5th
POINTS: 4150
SOLVES: 30
很艰难的一场,毒狼战团队赛,一年多没打手还没算很生。由于本场比赛没有要求交所有题目的Write-up,以下挑了几个题来写。Web的题目和一些我觉得有意思的我会写的尽量细一些。
MiscellaneousAnnoying? No.I obtained a binary string from the file binary.txt. To recover the hidden message, convert each 8-bit chunk into its corresponding ASCII character.
12bits = "01001110 01100101 01111000 01110101 01110011 01000011 01010100 01000110 01111011 01101110 00110000 01110100 01011111 01000000 01110011 01011111 01000000 01 ...
Gap Year Review --- 在路上的一年
Gap Year Review — 在路上的一年度过了很漫长,也很美好的一年。
明天就要去学校注册了,很奇怪,没有实感,心里也没有太多波澜。大四阶段只有一节课,距离上一次真正坐在教室里,已经过去了将近两年。我不知道,逃离校园这么久后,自己是否还能重新沉稳下来。
当初选择 gap 的原因,其实很简单——累了。东亚小孩的一生,总是被社会的时针裹挟着推进。每一个拐点,似乎都只能匆忙做出“最好的”选择,却过着并不喜欢的人生。从高中起,我总是被别人的光鲜经历和短视频里的热词触动——“人生应该是旷野”。我暗暗告诉自己,这才是我向往的生活方式。但转头,迎接我的依旧是成山的试卷、写不完的作业、赶不完的 ddl。矛盾而拧巴。
这一年做过的事,刚开始想不起来几件,甚至一度被吓到。幸好翻开相册,一些画面被定格下来。
离开学校前,和朋友们拍了毕业照。去年忘了发,就补在这一条里吧。翻看时,那天的笑容依旧历历在目。
刚离开学校,就去潮汕自驾。一路吃吃喝喝,实惠又美味,最难忘的是南澳岛:沿环岛公路开车,右手边就是大海。夜里赤脚踩在沙滩上,温热的海浪拍打脚背。因为是淡季,用不贵的价格订到了海景房,阳台还能看到沙滩边的 ...
Java安全篇(3)-CC链
环境使用Java的8u65版本调试该链
下载地址:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
mvn版本:
12345<dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.1</version></dependency>
以上添加至pom.xml文件中
回顾反序列化的攻击思路反序列化的一个基本过程,通常我们需要先找到一个危险方法,例如此处找到的是 r.exec() ,然后找到一个调用该危险方法的对象的方法,此处假设对象为 O3 的 abc 方法,然后去找调用了 O3 的 abc 方法的位置(或者是同名函数),例如找到了 O2 的 xxx ,以此类推找到O.aaa等,最终需要找到一个入口,接收任意对象并执行read ...
XML 外部实体注入(XXE)漏洞基本原理
XML 外部实体注入(XXE)是一种通过在 XML 输入中引用外部实体而利用解析器缺陷的攻击方式。也就是说,当应用程序在处理 XML 文档时,如果没有正确禁用对外部实体(External Entity)的解析,就可能被构造恶意的实体引用所利用 。这种攻击可以导致敏感文件泄露、内网端口扫描、SSRF(服务器端请求伪造)、拒绝服务甚至部分场景下的远程代码执行等严重后果。简而言之,XXE 的根本原因在于 XML 解析器默认允许 DTD(文档类型定义)及外部实体,攻击者可借此构造引用系统或网络资源的实体,而将这些内容注入到解析过程。
XXE 漏洞发生时往往是因为开发者未对 XML 输入进行严格过滤或使用弱配置的解析器。例如,缺少disallow-doctype-decl特性或允许external-general-entities解析,就会让攻击者有机可乘。一旦漏洞被触发,XML 中定义的外部实体就会被解析器读取并替换到 XML 内容中,导致文件内容返回给攻击者。实践中,许多XXE实例往往发生在允许用户上传或提交 XML 文档的位置,如配置文件上传、SOAP/XML API 接口等场景 ...
Java安全篇(2)-ysoserial使用
Ysoserial工具简介与安装ysoserial是一款用来生成Java反序列化漏洞payload的验证工具,其中内置了多种常见的库中的gadget chain,可以直接通过命令和链类型生成序列化数据,一旦目标应用不安全地反序列化这些数据就会触发命令执行。
ysoserial项目地址:https://github.com/frohoff/ysoserial
下载预编译 JAR:访问 GitHub Releases,下载如 ysoserial-all.jar 等可执行 JAR 文件(无需编译)。
从源码编译:使用 git clone https://github.com/frohoff/ysoserial.git 拉取源码,然后进入目录运行 mvn clean package -DskipTests 编译,生成可执行 JAR 。
安装完成后,即可使用 java -jar ysoserial.jar 查看帮助,出现Payload列表即表示安装成功
使用方法使用 Yoserial 生成 payload 的基本方法是调用其主类:
1java -jar ysoserial-all.ja ...
Java安全学习(1)-Java反序列化基础
在Java中,序列化(Serialization)是将对象转换为字节流,从而可以方便地保存到文件、传输到网络或持久化存储;反序列化(Deserialization)则是将字节流重新还原为对象。
注意:如果一个类要支持序列化,必须实现 java.io.Serializable 接口。
序列化与反序列化示例下面通过一个简单的 Student 类,演示对象的序列化与反序列化过程。
Student类(实现了Serializable接口)Serializable 接口是java提供的一个序列化接口,它用来标识当前类可以被ObjectOutputStream序列化,以及可以被ObjectInputStream反序列化。
12345678910111213141516171819202122import java.io.Serializable;public class Student implements Serializable { private String name; private int age; private String studentId; ...
Python Pickle 反序列化漏洞
1. Pickle 基础1.1 什么是 Pickle?Pickle是Python内置的序列化/反序列化的模块,它能将任意Python对象转换为二进制流并还原。Pickle文档明确警告:“pickle模块不安全;只有在信任数据源时才使用。恶意构造的pickle数据可以在反序列化时执行任意代码” 。Pickle与JSON的主要区别在于:JSON只能表示基本类型(数值、字符串、列表、字典等),而Pickle能够序列化几乎任意Python对象(类实例、函数、复杂数据结构等),因此功能更强但也风险更高。
Pickle支持多种协议版本(目前Python官方支持0–5共6种协议),其中协议0为文本格式(Python 2兼容),协议1–3为历史二进制格式,协议4引入对超大对象和新类型的支持,协议5引入离带缓冲区以加速大对象传输 。不同协议产生的字节流会略有不同,但反序列化时Python自动探测版本。开发者通常只需调用pickle.dumps(obj)(或dump(obj, file))来序列化,以及pickle.loads(data)(或load(file))来反序列化。
各协议详细可见文档 ...
