CSRF,跨站伪造请求

(1)基本概念

CSRF(Cross Site Request Forgery),跨站请求伪造,一种比较常见的Web攻击。

(2)CSRF的本质

攻击者诱使用户的浏览器发送一个恶意请求,本质上是借助用户的凭证(Cookie),以用户的身份去执行特定操作。

在用户访问攻击者构造的恶意网页时,如果此时浏览器访问第三方站点(带有CSRF漏洞的网站)带上了第三方Cookie,那么第三方站点会认为这是一个已登录的用户过来访问,浏览器就能顺利完成相应的操作,所以称为“跨站请求伪造”。

(3)CSRF的攻击示意图

(4)CSRF的攻击过程

访问当前站点时,向第三方站点发起请求并携带了第三方Cookie;

特殊情况:

在部分场景中,在存在CSRF漏洞的网站上就可以向当前站点发起请求,虽然此时并没有“跨站点”,此时也不存在第三方Cookie,但也叫CSRF攻击。

(5)利用外部CSRF攻击内网

①、基于IP的CSRF攻击

网站是基于源IP地址进行认证和授权的,比如企业内部的应用,将来自内外IP地址的访问都认为是可信的,那么外部攻击者可以诱使内部员工去访问一个恶意页面,恶意页面会对内网应用发起请求,这也能实施CSRF攻击。

②、路由器的CSRF攻击

很多路由器都有默认的IP地址及控制台密码,攻击者可利用这些漏洞修改路由器配置,如更改DNS地址等。

(6)构造方式

①、GET请求

主要用<img>、<iframe>、<script>等带“src”属性的标签,这类标签只能够发起一次GET请求。

②、POST请求

构造一个表单并填好参数

这样就可以在受害者打开恶意页面时自动提交表单,执行CSRF攻击。

POST-JSON

我们需要构建键值对的形式(name=value),让他符合JSON格式。

可以往JSON中插入一个无效的带等号“=”键来实现,在HTML中标签属性都会被HTML转移;还要保证按照原始内容提交字符,所以需要设置表单提交纯文本数据,即设置enctype为”text/plain”,最终构造的表单格式如下:

POST-XML

XML的声明部分可以包含等号,所以无需插入无效的内容,最终的构造格式:

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇