安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
[161. HTTP-Only禁止的是JS读取cookie信息,如何绕过这个获取cookie?](#161. HTTP-Only禁止的是JS读取cookie信息,如何绕过这个获取cookie?)
[162. 说一个印象深刻的CTF题目](#162. 说一个印象深刻的CTF题目)
[163. SQL二次注入](#163. SQL二次注入)
[164. 常用的渗透工具有哪些?最常用的是哪个?](#164. 常用的渗透工具有哪些?最常用的是哪个?)
[165. 描述一个深入研究过的CVE(MS17-010)](#165. 描述一个深入研究过的CVE(MS17-010))
[166. SQL注入的原理](#166. SQL注入的原理)
[167. SQL注入防御方法](#167. SQL注入防御方法)
[168. MySQL 5.0以上和以下注入的区别](#168. MySQL 5.0以上和以下注入的区别)
[169. SQL和NoSQL的区别](#169. SQL和NoSQL的区别)
[170. CSRF、XSS、XXE的区别与修复](#170. CSRF、XSS、XXE的区别与修复)
[171. CSRF、SSRF、重放攻击的区别](#171. CSRF、SSRF、重放攻击的区别)
[172. 同源策略与跨域方式](#172. 同源策略与跨域方式)
[173. 如何规避同源策略?](#173. 如何规避同源策略?)
[174. DOM XSS与反射XSS的区别及快速判断](#174. DOM XSS与反射XSS的区别及快速判断)
[175. SSRF漏洞原理与伪协议利用](#175. SSRF漏洞原理与伪协议利用)
[176. 浏览器端Referer可以篡改吗?](#176. 浏览器端Referer可以篡改吗?)
[177. TCP三次握手与四次挥手](#177. TCP三次握手与四次挥手)
[178. 输入网址访问的全过程](#178. 输入网址访问的全过程)
[179. 拿到待检测站点的第一步](#179. 拿到待检测站点的第一步)
[180. 判断CMS对渗透的意义](#180. 判断CMS对渗透的意义)
161 HTTP-Only禁止的是JS读取cookie信息,如何绕过这个获取cookie 162 说一个印象深刻的CTF的题目 163 sql二次注入 164 你常用的渗透工具有哪些,最常用的是哪个? 165 描述一个你深入研究过的CVE或POC(ms17-010/最新的CVE) 166 SQL注入的原理 167 如何进行SQL注入的防御 168 mysql的网站注入,5.0以上和5.0以下有什么区别? 169 SQL和NoSQL的区别 170 CSRF和XSS和XXE有什么区别,以及修复方式? 171 CSRF、SSRF和重放攻击有什么区别? 172 啥是同源策略,跨域有几种方式? 173 如何规避同源策略? 174 DOMXSS与反射XSS有啥不同,给你10s,如何快速判断一个XSS是否是DOMXSS? 175 SSRF漏洞原理是什么?利用时有哪些伪协议? 176 在浏览器端,Referer可以篡改吗? 177 TCP三次握手四次挥手 178 当你输入一个网址,点击访问,会发生什么? 179 拿到一个待检测的站,你觉得应该先做什么? 180 判断出网站的CMS对渗透有什么意义?161. HTTP-Only禁止的是JS读取cookie信息,如何绕过这个获取cookie?
绕过方法:
- XSS漏洞利用 :
- 若存在XSS漏洞,可通过恶意JS脚本直接发起HTTP请求(如
fetch()),将含Cookie的数据发送到攻击者服务器(非直接读取Cookie)。- 中间人攻击(MitM) :
- 通过ARP欺骗或DNS劫持拦截HTTP流量,直接获取未加密的Cookie(需网络层漏洞)。
- 浏览器漏洞利用 :
- 利用浏览器0day漏洞(如CVE-2024-0519)绕过HTTP-Only限制(罕见且需高成本)。
防护建议 :始终启用HTTPS +Secure属性,避免传输层泄露。
162. 说一个印象深刻的CTF题目
题目 :Web类题目 "Eval Master"(基于NodeJS沙箱逃逸)。
- 场景 :目标网站提供JS代码执行功能(
eval()),但限制使用require和process。- 解法 :
利用
this.constructor.constructor创建函数构造器,执行任意代码:
javascript`// 构造恶意函数 const fn = (() => {}).constructor; const exploit = new fn('return process.mainModule.require("child_process").execSync("cat /flag")'); exploit(); `绕过过滤:通过
String.fromCharCode拼接关键词(如"pro"+"cess")。- 关键点:沙箱逃逸需理解JS原型链和全局对象污染。
163. SQL二次注入
原理:
步骤 :
首次输入:用户提交恶意数据(如
admin' --)被存入数据库(未执行)。二次触发:当应用从数据库读取该数据并拼接SQL查询(如更新密码),触发注入:
sql`UPDATE users SET password='new_pass' WHERE username='admin' -- '; // 注释后续语句 `典型案例 :用户注册时输入恶意用户名,修改密码时触发漏洞。
防御:所有数据库读写操作均使用预编译(Prepared Statements),避免拼接SQL。
164. 常用的渗透工具有哪些?最常用的是哪个?
工具类别 代表工具 用途 漏洞扫描 Burp Suite、Nessus Web/系统漏洞探测 渗透框架 Metasploit、Cobalt Strike 漏洞利用、横向移动 Web代理 Burp Suite(最常用)🌟 拦截/修改HTTP请求、漏洞测试 密码破解 Hashcat、John the Ripper 哈希爆破 信息收集 Nmap、sqlmap 端口扫描、自动化SQL注入
165. 描述一个深入研究过的CVE(MS17-010)
CVE-2017-0143(永恒之蓝):
- 漏洞原理 :Windows SMBv1协议在处理
Trans2请求时存在缓冲区溢出,允许远程代码执行(RCE)。- 利用链 :
- 发送畸形SMB数据包覆盖函数指针。
- 通过
NTTransact请求操控内核内存,执行Shellcode。- 影响:未打补丁的Windows系统(如Win7/Server 2008)。
- 防御 :关闭SMBv1(
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol)。
166. SQL注入的原理
核心 :攻击者通过篡改输入数据,破坏原始SQL语句逻辑。
示例:
原始查询:
SELECT * FROM users WHERE id='$input';恶意输入:
1' OR 1=1 --→ 拼接后:
sql`SELECT * FROM users WHERE id='1' OR 1=1 -- '; // 返回所有用户数据 `分类:联合查询(Union-Based)、报错型(Error-Based)、布尔盲注(Boolean-Based)。
167. SQL注入防御方法
- 预编译语句(Prepared Statements) :
- 参数化查询(如Java的
PreparedStatement),分离代码与数据。- 输入过滤 :
- 白名单校验(如仅允许数字ID)。
- 最小权限原则 :
- 数据库账户限制为
SELECT/UPDATE必要权限。- WAF防护 :
- 部署ModSecurity或云WAF拦截恶意请求。
168. MySQL 5.0以上和以下注入的区别
特性 MySQL < 5.0 MySQL ≥ 5.0 系统表 无 information_schema有 information_schema(可查表/列名)盲注效率 需暴力猜解表名/列名 直接查询 information_schema.tables利用难度 高(依赖报错或字典爆破) 低(可直接获取元数据)
169. SQL和NoSQL的区别
维度 SQL(关系型) NoSQL(非关系型) 数据结构 固定表结构 灵活文档/键值对(如JSON) 查询语言 标准SQL语法 类JSON查询(如MongoDB的 find())注入类型 传统SQL注入 NoSQL注入(如 {"$gt": ""}绕过登录)扩展性 垂直扩展(硬件升级) 水平扩展(分布式集群)
170. CSRF、XSS、XXE的区别与修复
漏洞 原理 修复方式 CSRF 诱骗用户执行非预期操作(如转账) SameSiteCookie、CSRF Token、验证RefererXSS 恶意脚本注入页面(窃取Cookie/DOM操作) 输入输出转义(如 <→<)、CSP策略XXE 滥用XML解析器读取文件/SSRF 禁用DTD( libxml_disable_entity_loader(true))、过滤<!ENTITY>
171. CSRF、SSRF、重放攻击的区别
攻击类型 目标 利用场景 CSRF 用户浏览器 伪造用户请求(如修改密码) SSRF 服务器内网资源 攻击内网服务(如Redis未授权) 重放攻击 请求数据包 重复提交有效请求(如订单支付)
172. 同源策略与跨域方式
同源策略(SOP) :禁止页面从不同源(协议/域名/端口任一不同)的URL读取资源。
跨域方式:
- CORS (主流):服务端响应头
Access-Control-Allow-Origin: *。- JSONP :通过
<script>标签加载跨域数据(仅支持GET)。- 代理转发 :后端代理请求(如Nginx配置
proxy_pass)。
173. 如何规避同源策略?
- 前端 :
- CORS:配置合法
Origin(需后端配合)。postMessage:跨窗口通信(如iframe父子页面)。- 后端 :
- 反向代理:将跨域请求转发至同源接口。
document.domain:仅限主域相同子域不同的场景(如a.example.com→b.example.com)。
174. DOM XSS与反射XSS的区别及快速判断
类型 触发位置 数据流 10秒判断法 反射XSS 服务端返回响应 输入→服务端→响应→执行 恶意输入在URL参数中 DOM XSS 浏览器本地JS处理 输入→JS(不经过服务端) 输入在 location.hash或eval()中
175. SSRF漏洞原理与伪协议利用
原理 :服务端未校验用户输入的URL,攻击者操控服务器访问内网资源(如
http://192.168.1.1/admin)。
伪协议:
file://:读取本地文件(file:///etc/passwd)。dict://:探测端口服务(dict://localhost:6379/info)。gopher://:发送任意TCP流量(攻击Redis/MySQL)。
176. 浏览器端Referer可以篡改吗?
可以,但需特定条件:
- 浏览器扩展:通过插件(如ModHeader)修改请求头。
- 本地代理工具 :Burp Suite或Charles篡改
Referer。- 前端漏洞 :通过
meta标签重定向或JS跳转(如window.location)。
注意 :HTTPS页面篡改Referer会被浏览器阻止(安全策略)。
177. TCP三次握手与四次挥手
- 三次握手 (建立连接):
- Client → Server:
SYN=1, seq=x- Server → Client:
SYN=1, ACK=1, seq=y, ack=x+1- Client → Server:
ACK=1, seq=x+1, ack=y+1- 四次挥手 (断开连接):
- A → B:
FIN=1, seq=u- B → A:
ACK=1, seq=v, ack=u+1- B → A:
FIN=1, ACK=1, seq=w, ack=u+1- A → B:
ACK=1, seq=u+1, ack=w+1
178. 输入网址访问的全过程
- DNS解析:浏览器查询域名对应的IP地址(递归查询)。
- TCP连接:与目标IP通过三次握手建立连接。
- HTTP请求 :发送HTTP请求(如
GET /index.html)。- 服务端处理:Web服务器(如Nginx)处理请求,返回响应。
- 渲染页面:浏览器解析HTML/CSS/JS,渲染页面。
- 连接关闭:四次挥手断开TCP连接(非持久连接)。
179. 拿到待检测站点的第一步
- 信息收集 :
- 域名/IP:Whois查询、子域名爆破(工具:Sublist3r)。
- 技术栈:Wappalyzer识别CMS(如WordPress)、服务器类型。
- 目录扫描 :Dirsearch探测敏感路径(
/admin、/backup)。- 风险评估:优先测试高危入口(登录页、文件上传点)。
180. 判断CMS对渗透的意义
- 快速定位漏洞 :
- 已知CMS(如WordPress)有公开漏洞库(WPScan)。
- 定制攻击路径 :
- Discuz! → 搜索历史漏洞(如后台GETSHELL)。
- 自研CMS → 重点测试逻辑漏洞(越权、水平垂直权限)。
- 提高效率:避免重复测试通用防护(如ThinkPHP默认安全机制)。