文章来源:先知社区(Bughunter)
原文地址:https://xz.aliyun.com/t/8375
0x01 使用关键词得到目标源码
某日上午接到临时安排对某公司进行渗透测试,此次渗透给的是一个主域名,并且也没有子域,打开了目标网站先对其进行一波信息收集
最终在login.aspx下面发现后台登录页面,这不猜他一波弱口令??一顿操作过后账号被锁
熟悉的开局,既然如此只能尝试其他方法了。
在主页的html代码中发现了某处信息
设计制作?根据后面的域名访问过去,是一个建站公司那么,入手点来了。
IIS8.5+ASP.NET+建站系统先扫一波备份文件:
https://github.com/broken5/WebAliveScan
在好几个站下面发现web.zip备份文件,下载下来过后,对其目标站点文件进行了对比,基本一致
0x02 拿到代码开始审计多次碰壁
那么开始审计。
在某接口处发现敏感操作WebClient.DownloadFile (远程文件下载),由于该方法需要提供绝对路径。。
比较头疼,但我跟踪相关参数发现,在另一个方法中调用了该方法。
ashx/api.ashx?m=downloadfile&FilePath=asmx.jpg&WebUrl=http://***.cn/
访问地址:
被修复了文件不存在,继续回到代码中,审计其他漏洞在其他接口中,也均存在多个漏洞,如ueditor远程抓取漏洞
文件重命名可Getshell
但是这些接口都需要登录
这就很头疼了,打算在一些无需登录的接口中尝试寻找SQL注入,最终在某处发现SQL拼接。
但是这里调用了IsSafeSqlString检测
常见符号基本被卡的死死的
0x03 拿下开发商寻找通用账号逆向加解密算法
由于都是使用了相同的建站程序,怀疑有程序内置账户,于是准备通过刚才审计出来的漏洞从同程序的站点入手,最终在某个站点成功拿到Webshell,看了下相关信息
根目录下有zip网站备份和sql数据库备份,如果说目标站点是直接搬迁过去的,那么后台账户密码应该是一样的。
将其SQL文件下载下来,再其中搜索相关信息
cmd5解不开,看了下密文是33位加密。
但是登录过程中,密码是RSA加密过后传输的,而后端居然是33位的md5加密
密码传入后,调用了CommFun.EnPwd进行了一次加密。追踪EnPwd方法
可以看到,传入进来的密码是RSA类型,先进行了一次RSA解密,然后进行了一次DES加密。
追踪DESEncrypt.Encrypt方法。
0x04 柳暗花明拿下目标shell
已经下午4点了,还是一无进展,准备尝试绕过SQL过滤。就在这时候,我发现了一处SQL注入点。
终于进来了!!!!
经过之前的审计,发现了很多接口都存在漏洞,现在成功登录了。岂不是随便getshell?直接ueditor带走。
如果你是一个长期主义者,欢迎加入我的知识星球(优先查看这个链接,里面可能还有优惠券),我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
笔者自己录制的一套php视频教程(适合0基础的),感兴趣的童鞋可以看看,基础视频总共约200多集,目前已经录制完毕,后续还有更多视频出品
https://space.bilibili.com/177546377/channel/seriesdetail?sid=2949374
技术交流请加笔者微信:richardo1o1 (暗号:growing)