学习路线:
这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
- 非同源,不能共享Cookie等
- 非同源,DOM和JS对象无法获得
- 非同源,Ajax请求被禁止
那什么又是同源呢?
同源大概要满足三个条件,即同协议、同域名、同端口。
但为了保证加载一些跨域资源,以下标签是不受同源策略限制的:
<script src="url"> //加载本地js执行
<img src="url> //图片
<link href="url"> //css
<iframe src="url"> //任意资源
JSONP简介
JSONP是基于JSON格式的为解决跨域请求资源而产生的解决方案。实现的基本原理就是动态创建
JSONP有两部分组成:回调函数和数据。回调函数就是当响应到来时应该在页面中调用的函数。数据就是传入回调函数中的JSON数据。
JSONP劫持漏洞
漏洞原理
如果服务端对JSONP的请求来源校验不严格,那么攻击者可以构造恶意的JSONP调用页面,诱导被攻击者访问来达到截取用户敏感信息的目的。
JSONP与CSRF类似,都是需要用户登录账号,身份认证还没有被消除的情况下访问攻击者精心设计好的页面。而且同样的是需要用户去访问有恶意的页面。只不过JSONP需要攻击者寻找敏感JSON数据API接口,构造恶意的代码。
漏洞利用过程
1、比如,用户在网站B注册并登录,网站B包含了用户的id、name等信息;
2、用户通过浏览器向网站A发出URL请求;
3、网站A向用户返回响应页面,响应页面中包含了JavaScript的回调函数和向网站B请求
<script type="text/javascript">
function Callback(result)
{
alert(result.name);
}
</script>
<script type="text/javascript" src="http://B.com/user?jsonp=Callback"></script>
4、用户收到跨域响应,解析JS代码,将回调函数作为参数向网站B发出请求;
5、网站B接收到请求,解析请求URL,以JSON格式生成数据,封装好用户的信息的JSON数据作为回调函数的参数返回浏览器:
Callback({"id":1,"name":"test","email":"test@test.com"})
6、网站B数据返回后,浏览器则自动执行Callback函数对步骤4返回的JSON格式数据进行处理,通过alert弹窗展示了用户在网站B的注册信息。另外也可将JSON数据回传到网站A的服务器,这样网站A利用网站B的JSONP漏洞便获取到了用户在网站B注册的信息。
利用工具
可以使用一个工具pocbox: pocbox
将url和jsonp类型放入pocbox,就可以生成js。然后用Tomcat或者其他拉一个html就好。
JSONP漏洞挖掘思路
常用关键词:
callback
jsoncallback
jsonpcallback
jsoncall
jsonpcall
cb
jsoncb
jsonpcb
=json
=jsonp
=jQuery
可以在Google等有高级语法使用高级语法搜索:
inurl:json
inurl:callback=
site:a.com inurl:json
可以使用手工测试:
f12 , network , 勾选Preserve log , 防止页面刷新跳转的时候访问记录被重置
然后 F5 刷新,进入 NetWork 标签 ,CTRL+F 查找一些关键词 如 callback json jsonp jsonpcallback
然后找响应中存在敏感信息的 , 然后构建 poc测试
JSONP防御
- 尽量避免跨域的数据传输,如果要进行跨域的数据传输,必须要对敏感的数据获取做权限认证;
给大家的福利
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料
需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!