标签 web安全 下的文章

前端安全--几种跨域方法小记


0x00 前言

同源策略(Same Origin Policy, SOP):是Web应用程序的一种安全模型,它控制了网页中DOM之间的访问(协议,端口,主机名都相同时认为时同源)。
由于同源策略限制了网页间的相互访问,当需要加载外部资源的时候就会用到跨域进行信息的交互。

<html>    
<script>
function loadUrl(uri,callback){  
    if(typeof callback!='function'){  
        callback=function(uri){  
            console.log(uri);  
        }  
    }  
    var xhr = new XMLHttpRequest();  
    xhr.responseType = 'text';  
    xhr.onload = function() {  
        callback(xhr.response);  
    }  
    xhr.open('GET', uri, true);  
    xhr.send();  
}  
  
var url = 'http://sp4rk.cn/test.js';  
loadUrl(url,function(data){  
    alert('test success');
});  
</script>
</html>


1.html中,当我们用XMLHttpRequest正常加载外部资源的时候,可以发现同源策略的限制

0x01 JSONP实现跨域




XXE漏洞攻击与防御


XXE漏洞是XML外部实体化注入,解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,可造成文件读取、命令执行、ssrf、DDOS等漏洞,外部实体化和DTD的外部实体化方式有关。

0x01 XML,DTD基础

1.教程

XML教程:XML教程
DTD教程:DTD教程

2.DTD外部实体

语法为:
<!ENTITY name SYSTEM "URL/URI">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE address SYSTEM "address.dtd">
<address>
   <name>sp4rk</name>
   <email>admin@sp4rk.cn</email>
</address>

address.dtd为:
<!ELEMENT address (name, email)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT email (#PCDATA)>

参数实体:
<!ENTITY % ename "entity_value">
<!--entity_value is any character that is not an '&', '%' or ' " -->
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE address [
    <!ENTITY % name SYSTEM "file:///etc/passwd">
    %name;
]>


浅谈php伪协议


这次校赛,学长出的一道tomcat提权的题目,需要用伪协议去读文件和getshell,所以记录下常见的几种伪协议及其安全问题。

0x01 php://filter

php://filter是一种元封装器,设计用于数据流打开时的筛选过滤应用,这里可造成LFI

<?php   //test.php
phpinfo();
?>
<?php   //1.php
include($_GET['a']);
?>

http://127.0.0.1/1.php?a=php://filter/read=convert.base64-encode/resource=index.php

base64 decode一下就是test.php的源码
allow_url_include:on 可以造成RFI

0x02 zip和phar协议