Lazy loaded image
技术分享
信息系统安全实验(3/3)
00 分钟
2024-6-21
2024-8-29
type
status
date
slug
summary
tags
category
icon
password
本实验目的是通过发起跨站请求伪造攻击(CSRF 或 XSRF),进一步理解跨站请求伪造攻击原理和防御措施。 跨站请求伪造攻击一般涉及受害者、可信站点和恶意站点。受害者在持有与受信任的站点的会话(session)的情况下访 问了恶意站点。恶意站点通过将受害者在受信任站点的 session 中注入 HTTP 请求,从而冒充受害者发出的请求。

lab3

这个实验只是随便记了一点过程,没有什么原理和步骤详解,但是这个实验是三个里面最简单的

用户信息:
User
UserName
Password
Admin
admin
seedelgg
Alice
alice
seedalice
Body
body
seedbody
charlie
charlie
seedcharlie
Samy
samy
seedsamy
站点信息:
URL
Description
Directory
可信站点
/var/www/CSRF/Elgg/
受害站点
/var/www/CSRF/Attacker/
XSS站点
/var/www/XSS/Elgg/
启动服务:

任务1:基于GET请求的CSRF攻击

登录除了Samy外的账号,添加Samy为好友,使用HTTP Headerlive插件捕获请求,得知好友ID为45:
notion image
get请求为http://www.csrflabelgg.com/action/friends/add?friend=(id号)由此在/var/www/CRSF/Attacker下构造index.html⽂件:
模拟Alice受到攻击的场景,登录Alice账号,访问www.csrflabattacker.com/index.html,发现成为Samy好友

任务2:使用POST请求的CSRF攻击

登录Samy账号,修改profile,观察请求,获取POST为http://www.csrflabelgg.com/action/profile/edit,同时提交的表单中有ID:
notion image
通过向Alice发送好友申请,得知其ID为42,由此在/var/www/CRSF/Attacker下构造index2.html⽂件:
模拟Alice受到攻击的场景,登录Alice账号,访问www.csrflabattacker.com/index2.html,发现profile被修改

任务3:实现LOGIN的CSRF攻击

同理,登录账户使用插件进行抓包,观察LOGIN操作相关请求信息:
notion image
由此在/var/www/CRSF/Attacker下构造index3.html⽂件:
模拟Alice受到攻击的场景,登录Alice账号,访问www.csrflabattacker.com/index3.html,发现登陆了Samy

任务4:CSRF防御策略

编辑php文件:
文件中找到函数public function gatekeeper($action),注释掉return true:
再次测试上述三种攻击,发现攻击失效

任务5:盗取受害者机器的cookie

更换网址为http://www.xsslabelgg.com,进行后续的实验

登录Samy,在其中的About me字段,先点击Edit HTML:
notion image
添加如下内容:
通过Alice登录,打开Samy主页,用插件进行抓包,发现cookie被发出了,攻击成功
notion image
监听端口,查看结果:

任务6:使用Ajax脚本进行会话劫持

登录Samy,在其中的About me字段,同样先点击Edit HTML,添加如下内容:
通过Alice登录,打开Samy主页,发现profile被修改

任务7:构造XSS蠕虫

登录Samy,在其中的About me字段,先点击Edit HTML,添加如下内容:
通过Alice登录,打开Samy主页,发现profile被修改,aboutme变成了恶意蠕虫

任务8:XSS防御策略

使⽤admin账号登录⽹址,之后点击右上⻆的Account、administation、plugins激活插件,点击Activate,让其变为Deactivate:(点一下这个按钮)
notion image
访问samy主页,点开Samy主页,发现脚本被解析为纯文本,无法产生攻击效果

开启htmlspecialchars防御:
分别去掉php⽂件中对htmlspecialchars()函数调⽤的注释,登录Samy查看脚本,发现特殊符号被转义为其他符号,脚本无法执行
上一篇
信息系统安全实验(2/3)
下一篇
操作系统实验