首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

两次前端绕过渗透小结

一直想发一些渗透过程的东西和大家分享,可是渗透成功呢要过很久才能发布,然后就忘记了,最近遇到了两次和前端JS对抗的渗透过程。虽然最终没有成功,不过蛮有意思的,和大家分享一下。

ONE

先上URL地址http://www.XXXXXX.com/fastreg.html?to=w2i&css=www.wanmei.com/public/style/fastreg/skin1.css&wmrid=RP42970167

看到url中有一个css链接加上css这个关键属性字眼,于是等待网页加载结束后,直接右键查看源代码。

js代码很简洁简单就不多加介绍,就是看URLcss的参数链接里是不是没有特殊符号且域属于173和wanmei,有的话就不应用url中的css,用其自带的一个style。至此,感觉是过滤的非常严格了,如果没有\反斜杠过滤还可以构造xxx.xxx\.173.com/1.css,可是它过滤了除/意外的任何特殊字符,于是我便想,如果在173或者wmei上传一个含有恶意代码css代码的话,那是不是就可以无视这套规则了呢?可是上传一个css文件肯定是很困难的,那如果后缀是jpg的文件呢?浏览器会不会解析呢?于是先本地测试了一下,是成功解析了的。背景已经被换成了我们想要的颜色,css文件是jpg结尾的

然后去找173或者wanmei的上传点,发现对jpg的头部二进制标志有着很严格的限制,只改后缀是不行的,这时候又有一个新的问题,如果说用了二进制标志,那么css样式文件就会出错,一开始是想在头尾加上/**/注释掉再在尾巴加上style样式,可是现在头部写死了必须要用jpg的标示开头,这就陷入了一个死结。找了几个图片上传点,发现都是严格测试了jpg的头部,突然又想到另外一个版本,如上图,在头部标示后加上{}表示这是一个正常的css代码,前面的表示是其选择器的属性,然后再加上/*的注释符号尾部加上*/来结束并且写入我们要构造的恶意style代码,在本地构造参数测试成功后上传,却发现style文件并没有执行。浏览器解析后发现是0个规则,打开控制台发现错误报告,说返回的类型不是css,所以本地可以而上传到了网站就失效的原因。因为要控制返回头的类型不是很容易,所以这条路子基本上难以往下,不过构造payload和一些大胆的猜测其实还是有必要的,虽然这次疏忽了返回头这个点,至少下次就可以记住不能疏忽这个地方(tip:ie8是可以的。。。)

Two

这是一个注册页面,随便输入一个的昵称,可以看到如下图所示的界面,burpsuit没有任何的ajax请求,直接弹出了不正确

所以这个验证肯定是前端方面的验证,先构造一个符合标准的数据进行提交看看他的POST包长什么样

可以看到所有的数据都进行了加密,一开始我以为是都进行了md5加密,然后去md5加密网站把密码加密对比了一下,发现并不是md5,而是一种前端的验证。感觉游戏,因为前端验证严格的后段可能就忽略了,所有用浏览器审计一下

先全局查找一下按钮的id看看绑定的是什么事件,可以看到是validateregisterfrom事件,跟进去查找一下就出来了这个函数

发现他在前端设置flag,然后最后提交的时候眼flag是不是为true,是的话就利用加密函数加密所有信息,然后提交表单。

这里有两种办法可以绕过去,一种是浏览器打断点,把flase改成true就可以绕过这个验证,或者先输入正确的最后在上传的那个ajax语句前打断点修改表单数据,如下图

还可以把加密的函数拉出来写在自己本地的html里面或者本地html应用js文件通过调用encrypt函数,获得某个字符串加密后的数据,直接修改post数据包。

之后就是去找输出点了,这种昵称可以写数据的危害比较大,因为输出点比较多 一旦有一个地方没过滤好就GG不过我还没有找到。

总结

很多时候基础才是最重要的,基础决定你少走的不必要的弯路的让你找漏洞更加猥琐,想必那些大佬们基础一定磅礴到我们无法相信的地步了。

如果每天都坚持,心中有信仰,有目标,并且沉淀下来,不断的打牢固基础,最后一定可以成为你心中的那个人,那个独当一面的人。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180104B0LM5300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券