某商城系统(V1.3-2020-01-10)前台命令执行漏洞

漏洞文件:

./inc/module/upload_img.php 

 先跟进 del_file 函数:

 在 del_file 函数中首先执行了unlink操作,然后接着进行了file_exists 判断。

 这是为了删除权限不够的文件,我们应该是没办法找到这类文件。那么如何绕过这么点呢?

unlink:是删除文件,如果是文件夹则会删除失败。

file_exists:则会判断 文件 或 文件夹 是否存在。所以当我们传递一个文件夹的时候既可以绕过。

最开始还有一个对时间的检测,绕过如下:

./inc/module/upload_img.php 该文件 默认是上传文件操作,我们可以在会员中心->编辑头像处上传文件,这样会导致创建一个以 年月日 命名的文件夹,就可以用来绕过第一个点了。

 不过我们可以控制文件夹为这三个目录,相对来说会好一些:

 

 然后就可以成功进入到 system 函数进行命令执行了。

 多条命令用&连接,如果前面有一条命令错误,都会导致后面的执行失败。

 也就是说我们必须要真正删除文件,然后在执行我们的命令。

 最终exp为:

  请勿用于非法操作,exp已去掉。

 修改对应的文件路径。可以直接修改为你上传的那个头像路径,右键就可查看你头像的路径了。

效果如图:

还有一处老问题注入:

./inc/module/user.php 

 getip函数:./inc/function/functions.php

 

 

 因为使用的PDO拓展,所以支持多语句执行。

 这注入应该算修复失败遗留的注入。

 原来的修复方式:./inc/function/global_admin.php

 而且我们前台加载的公共函数库是 ./inc/function/functions.php 这个文件。修复到了后台加载的函数库。

原文地址:https://www.cnblogs.com/xiaozhiru/p/12347876.html