防御策略
过滤判断换referer头,添加tocken令牌验证,白名单
CSRF攻击和XSS比较
相同点:都是欺骗用户
不同点:
XSS有攻击特征,所有输入点都要考虑代码,单引号过滤
CSRF没有攻击特征,利用的点是,用户或者管理员登录状态打开,如果没token和referer验证就有可能有漏洞
示例实验,先搭建一个实验网站
搭建一个discuz论坛网站,设置下管理员账户密码,数据库密码
进入管理中心,添加两个分区
添加一个普通用户
登录UCenter更新缓存
备份
如果备份,备份的文件路径如下,路径upload\uc_server\data\backup\backup_230921_IoXzTQ是随机产生的,230921_wvKcrM-1.sql是备份的文件
下面来拆解下构造攻击代码原理
http://192.168.246.11/upload/admin.php是刚才UCenter点备份那个网址
链接设置为:蓝色是BP抓包的地址,抬头,红色是自己构造的文件名。
http://192.168.246.11/upload/uc_server/admin.php?m=db&a=operate&t=export&appid=0&backupdir=xxxx%26backupfilename%3Daaaa
这个网址就能在刚才那个备份网址备份的文件夹backup里面创建一个xxxx的备份文件夹,备份的数据库叫aaaa-1.sql,有-1是因为超过2M系统自动拆分成-1,-2,-3
把上面这个xxxx文件删掉,通过上面已经知道构建的那个链接可以创建数据库
用test账户登录上传带链接的图片
发帖时,一定要添加一个网络图片,链接设置为
演示管理员点击这个有问题的评论
只要是网站管理员在admin登录状态下,点了那个评论。即使管理员没有在Ucenterd点数据备份,那个备份的地方里面也会有构造的那个xxxx备份文件
查看构建的网址:http://192.168.246.11/upload/uc_server/data/backup/xxxx/aaaa-1.sql
就可以获取已经备份的文件。有插入的地方都容易产生钓鱼漏洞
注意:discuz是开源网站,可以查到目录