前言
上次护网打点shell的一次记录。
正文
开始是常规的信息收集。在收集的信息中发现几个登入系统,其中一个登入系统输入不存在的用户就会回显不存在用户。考虑到是目标的XX登入管理系统,推测账户很可能是员工的工号,再加上之前信息收集时候在乌云的历史漏洞看到了目标很多的信息泄露,包括员工的信息。于是收集起来,并爆破,成功爆破到一个普通的账户,登入系统。
但是权限少的可怜,几乎没有什么功能可以使用,把功能点击一遍之后,观察burp历史请求,发现在个人信息处,会发送请求包,包含传入ID编号,而返回包携带用户的密码的MD5。尝试改成其他的ID,成功返回用户信息。遂.........很惊奇。

经过一段时间的遍历后,拿到管理员账户之后,在一处地方看到有上传

对目标进行测试,发现上传会检测文件名后缀、代码内容。
经过测试,发现该系统上传是重命名格式是:用户ID.文件名后缀。
于是直接修改burp,不写后缀,在用户ID处修改xxx.aspx

但是文件内容却不好过,因为这个代码检测一旦检测到<%@ + = 就死了,就连一个正常的asp都直接拦截掉,于是卡在这试了好久。
正当我一筹莫展的看着电脑,看着这个界面就烦。
重点来了,我当时就看着这个界面就很烦,然后一直一直按burp的发包,是的你没看错,我一直看burp发包,即使它waf拦截了我,没想到突然返回出来一个Success。上传成功了。


这里我想了几个原因:第一个是:可能目标是自写的waf,正常的上传是数据要经过流量的,但是开发觉得如果多人一起上传,也就是存在多个线程一起上传,如果每一个流量包都要经过waf,那么上传过程会变得很缓慢,所以在多人上传的时候就取消了waf检测这一部分,因此我们可以使用条件竞争来尝试绕过。
当然,至于原理,没时间深究,因为这是hw,时间短,节奏快。这里也欢迎各位大哥集思广益,一起思考思考。
本文迁移自知识星球“火线Zone”