linux、渗透测试、网络安全、CTF、windows

点击163的超级连接自动登陆163

场景一:从本地一个html文件编辑一个超链,点击连接实现登陆。等同于直接把链接放到地址栏中回车登陆。html实例代码如下:

<html>
<body>
<a href="#" onclick="window.open('https://reg.163.com/CheckUser.jsp?username=aaaa@163.com&password=123456')">163</a>
</body>
</html>

以上代码是可以直接登陆的。

场景二:

从你自己的网站中的一个链接,点击直接登陆,就会出项错误提示。

思考:

1、如果你不是大神,没有想到是由于两次提交的referrer的不同造成的。那就教你怎样发现不同的

2、通过使用burpsuit软件,抓取两次提交的数据包,然后比较数据包的不同,你会发现:从本地提交的没有referrer这个头,而从你自己的网站或别的网站的数据包中包含referrer,并且referrer你的网站或别的网站的地址。这样就造成了referrer的不同

3、由此可以,网易是会通过检测referrer的值来判断是否来自网易的或空的,如果是网易的地址或空,那么就验证通过。如果不是就返回错误

4、那么要想完成这个场景中的功能就只能给referrer的值了。可以通过javascript来实现,百度一下你可以了解的更多

实现:

代码如下:

<html>
<body>
<a href="#" onclick="window.open_window('https://reg.163.com/CheckUser.jsp?username=lolxiaoguai@163.com&password=sb123456')">163</a>
<script type=text/javascript>
function open_window(link){
var arg = '\u003cscript\u003elocation.replace("'+link+'")\u003c/script\u003e';
window.open('javascript:window.name;', arg);
}
</script>
</body>
</html>

我的个人分析,有可能错误,由于没有见过window.open的参数出现javascript代码的情况

原理是: window.open打开第一个javascript:window.name;的值为NULL,就没有打开任何网页只是打开一个新的

标签页,然后是\u003cscript\u003elocation.replace("'+link+'")\u003c/script\u003e执行javascript的代码,replace替换当前NULL的url,打开link。那么这样的referrer就是NULL了,这样就实现了自动登陆了


总之完成了这样的功能。


参考:

https://www.cnblogs.com/sofiawang/articles/1544631.html

https://www.w3school.com.cn/jsref/met_win_open.asp

https://www.shangxueba.com/jingyan/1900229.html

https://www.jquerycn.cn/a_11559

评论

© redboy | Powered by LOFTER