ShowDoc ≤ v3.9.2 RCE

ShowDoc ≤ v3.9.2 的注册接口 registerByVerify 对 username 参数仅做 trim() 处理,无字符类型校验,任何字符串原样写入 SQLite 数据库。该数据库文件路径为 Sqlite/showdoc.db.php,以 .php 结尾(原为防下载设计),Web 服务器将其交给 PHP 解析。攻击者注册形如 <?php system($_REQUEST[“cmd”]); __halt_compiler(); 的用户名后,访问 /Sqlite/showdoc.db.php?cmd=xxx 触发代码执行——文件头二进制位于 PHP 标签外,仅作内联输出;payload 为文件内首个 <?php 标签,直接执行;__halt_compiler() 终止后续编译,规避数据库二进制引发的 parse error。全程无需认证,v3.9.3 通过用户名格式正则修复。

 

靶场地址:https://bdziyi.com/ulab/lab.html?page=target-detail&id=293

65e108f09520260912023027

 

请登录后发表评论

    请登录后查看回复内容