黑客19引领实战潮流,回归技术本质,以行动推动行业技术进步
唯一的联系方式[email protected] 和 [email protected]
欢迎转载,但请注明原始链接,谢谢!
S2-020引发的血案
本文分为两部分,第一部分是利用S2-020 任何文件上传漏洞的渗透过程已于去年9月提交给学校并修复,并已放入内网。第二部分是审计源代码中发现的一方通用漏洞的复制过程。
一、校内网站测试——漏洞网站:http://**. **.edu.cn, (很久以前写的,直接复制)是某个学生的工作管理系统
漏洞一:前端js过滤文件上传黑名单

查看网页,发现在第二课堂->文件上传到活动补录申请、党团建设、综合成绩办公室。试用后,综合成绩只能上传xlsx模板,其余两个栏目过滤文件类型的黑名单,试图上传jsp弹框出现在文件中:

burpsuite拦截未出现url请求,解释为前端js过滤,问题简单,chrome管理者工具下的断点调试发现comm/fileupload/jmf.js以下代码如下:
if(ERROR!=Handle error MultiFile.error(ERROR); 2007-06-24: BUG FIX - Thanks to Adrian Wr骲el <adrian [dot] wrobel [at] gmail.com> Ditch the trouble maker and add a fresh new element MultiFile.n--; MultiFile.addSlave(newEle[0],slave_count); slave.parent().prepend(newEle); slave.remove();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;return false; ;burp拦截,直接删除该代码if前加上:ERROR=”;成功绕过js过滤,可以上传任何类型的文件。(这里不修改后缀,因为这种方法上传超时后会报错,不想和系统拼手)
但问题显然还没有结束。
任意上传一个jsp文件发现后一直在显示处理,

点击下载抓包

fid=undefined,其他文件上传成功后会自动生成fid,说明没有成功上传,用开发者工具调试后,发现在某个工具上js文件下的setTimeout(post(servlet),**)突然出现在方法中400Bad Request请求,推测后台仍然过滤文件内容或文件头,然后猜测文件和网站不在同一目录下,即使上传成功,也不能有效使用,所以暂时放弃这个漏洞。
漏洞2:越权更改任何用户名密码漏洞
观察网站url,尝试访问http://** .** .edu.cn/xgxt/login.jsp,果然,有一个跳转,返回教务管理系统登录页面,返回页面如下直接访问网站的根路径将跳转到统一的身份认证界面,相当于页面是一个废弃的登录界面,但具体的废弃,以下见:

随便试了下sql注入,果然不存在。点击忘记密码,随意输入用户名,弹出提示:

成了,直接burp抓包,爆出三个有效用户名:qwe,zf,99··好多个··9,尝试下一步验证信息,弹出提示框:

继续审查url:<http://** .** .edu.cn/xgxt/mmzhgl_mmzh.do?method=checkYh&type=view>,找到页面依据method直接反馈,结构url:<http://** .** .edu.cn/xgxt/mmzhgl_mmzh.do?method=xgmm>,跳转到修改密码页面:

发现用户名列不能直接输入url里加上yhm=qwe,密码修改成功:

返回前台登录,使用修改后的密码登录仍然失败,说明登录页面已废弃,sigh。。。所以直接删除该删除的东西,否则。。它不会引出一个大方。
有了管理员的账户密码,可以直接登录网站后台进行提权和绩效操作。至于内网渗透和备份漫游,请参阅我们的内部技术共享!
这个渗透教程到此结束!希望大家看看借鉴。如果您有技术咨询,请联系我们
黑客19引领实战潮流,回归技术本质,以行动推动行业技术进步
唯一的联系方式[email protected] 和 [email protected]
欢迎转载,但请注明原始链接,谢谢!